If you build your own tailored Apache httpd and PHP, you should take a full backup when you're done, and also fully document which options you selected and modules you included in the build.
You
SHOULD do so, of course ... but it's something that you can overlook all too easily. If you find yourself looking at your own system (or perhaps one you have taken over) and wondering "and what is built into THIS?" there are ways to find out.
The file
config.nice is saved by the
./configure that you'll run prior to building Apache httpd, and it contains a log of the options you selected:
#! /bin/sh
#
# Created by configure
"./configure" \
"--enable-so" \
"--enable-proxy" \
"--enable-proxy-http" \
"--enable-proxy-balancer" \
"--enable-rewrite" \
"--enable-proxy-ajp" \
"--prefix=/usr/local/apache2.2" \
"$@"
If you have an already installed web server (without access to those development directories) the
httpd daemon itself can be called up with the
-l option, to give you a list of compiled-in modules.
This is the same example as the build above, and has been tuned to allow me to install PHP (the so module) and to allow for a variety of rewriting or URLs and proxying on to application servers - further httpds, Tomcats running Java, etc ...
[trainee@crocus ~]$ cd /usr/local/apache2.2
[trainee@crocus apache2.2]$ ./bin/httpd -l
Compiled in modules:
core.c
mod_authn_file.c
mod_authn_default.c
mod_authz_host.c
mod_authz_groupfile.c
mod_authz_user.c
mod_authz_default.c
mod_auth_basic.c
mod_include.c
mod_filter.c
mod_log_config.c
mod_env.c
mod_setenvif.c
mod_proxy.c
mod_proxy_connect.c
mod_proxy_ftp.c
mod_proxy_http.c
mod_proxy_ajp.c
mod_proxy_balancer.c
prefork.c
http_core.c
mod_mime.c
mod_status.c
mod_autoindex.c
mod_asis.c
mod_cgi.c
mod_negotiation.c
mod_dir.c
mod_actions.c
mod_userdir.c
mod_alias.c
mod_rewrite.c
mod_so.c
[trainee@crocus apache2.2]$
So you now know what you've installed in your httpd web server, and you can learn more by looking at the
httpd.conf file, and any other files it includes.
But what about your PHP?
You should find that PHP is configured in via lines in the httpd.conf file:
LoadModule php5_module modules/libphp5.so
AddType application/x-httpd-php .php .phtml
and that the library really is in the modules subdirectory.
For details of the build, use PHP to tell you via a test page that reads as follows:
<?php phpinfo() ?>
(Yes - just that one line) which when you browse to it will give you a long web page report.
You can also run "phpinfo" from PHP on the command line:
bash-3.2$ php -r 'phpinfo();'
PHP Version => 5.2.x
Build Date => Jul 17 2008 07:00:56
Configure Command => './configure' '--with-apxs2=/usr/local/apache2/bin/apxs'
'--with-mysql=/usr/local/mysql' '--with-gd' '--with-png-dir=/usr'
'--with-jpeg-dir=/usr'
Server API => Command Line Interface
Virtual Directory Support => disabled
Configuration File (php.ini) Path => /usr/local/lib
And so on ...
(Note - this is a much trimmed example!)
(written 2008-08-23, updated 2008-08-24)
Associated topics are indexed under
A602 - Web Application Deployment - Apache httpd - Sourcing, Installation, Testing [3426] Automed web site testing scripted in Ruby using watir-webdriver - (2011-09-09)
[2520] Global and Enable - two misused words! - (2009-11-30)
[2184] Choosing the right version of Java and Tomcat - (2009-05-16)
[2096] Where is my new Apache httpd installed - (2009-03-22)
[2080] Using ApacheBench and jconsole to test and monitor Tomcat - (2009-03-14)
[1945] Summary - Apache httpd build on Linux - (2008-12-14)
[1731] Apache httpd, MySQL, PHP - installation procedure - (2008-08-01)
[1707] Configuring Apache httpd - (2008-07-12)
[1455] Connecting to MySQL 5 from PHP on Mac OSX Leopard - (2007-12-03)
[1449] Upgrade Mac OSX to Leopard, Web Server Apache httpd config lost - (2007-11-29)
[1292] DHCP automatic IP address v Static IP - (2007-08-06)
[1095] Apache httpd , browser, MySQL and MySQL client downloads - (2007-02-28)
[982] Notes from the white board - (2006-12-14)
[907] Browser -> httpd -> Tomcat -> MySQL. Restarting. - (2006-10-28)
[660] Stopping and restarting Apache httpd cleanly - (2006-03-29)
[550] 2006 - Making business a pleasure - (2006-01-01)
[526] Apache httpd - serving web documents from different directories - (2005-12-12)
[523] Apache httpd release 2.2 - (2005-12-10)
H114 - Sourcing, installing and configuring PHP [3132] Virtual Hosting with Apache http server - an overall scheme, and avoiding common pitfalls - (2011-01-14)
[2646] Compile but do not run PHP - syntax check only - (2010-02-22)
[2589] Your PHP code does not work? Here is where to start looking. - (2010-01-18)
[2433] Controlling, supressing, enabling PHP error messages - (2009-10-02)
[2317] How to make a Risotto (PHP build style) - (2009-08-02)
[1936] Quick Summary - PHP installation - (2008-12-12)
[1688] cannot restore segment prot after reloc message - PHP / httpd - (2008-06-26)
[1667] Checking server performance for PHP generated pages - (2008-06-06)
[934] Clustering, load balancing, mod_rewrite and mod_proxy - (2006-11-21)
[481] PHP upgrade - traps to watch - (2005-10-31)
[316] Development Environments - (2005-05-19)
[192] Current MySQL and PHP paths and upgrades - (2005-01-28)
Some other Articles
Ken Palm, iTime, and Domain Name TastingMore HowTo diagrams - MySQL, Tomcat and Java3 hours from Milton KeynesJuly child ponders on August childrenWhat is built in to this httpd and PHP?mod_proxy and mod_proxy_ajp - httpdDiagrams to show you how - Tomcat, Java, PHPDialects of English and UnixYank and Push - copy and move in viCo-operating to save, yet we dont