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 as below, or enter http://melksh.am/nnnn for individual articles
H114 - Sourcing, installing and configuring PHP [192] Current MySQL and PHP paths and upgrades - (2005-01-28)
[316] Development Environments - (2005-05-19)
[481] PHP upgrade - traps to watch - (2005-10-31)
[934] Clustering, load balancing, mod_rewrite and mod_proxy - (2006-11-21)
[1667] Checking server performance for PHP generated pages - (2008-06-06)
[1688] cannot restore segment prot after reloc message - PHP / httpd - (2008-06-26)
[1731] Apache httpd, MySQL, PHP - installation procedure - (2008-08-01)
[1936] Quick Summary - PHP installation - (2008-12-12)
[2317] How to make a Risotto (PHP build style) - (2009-08-02)
[2433] Controlling, supressing, enabling PHP error messages - (2009-10-02)
[2589] Your PHP code does not work? Here is where to start looking. - (2010-01-18)
[2646] Compile but do not run PHP - syntax check only - (2010-02-22)
[3132] Virtual Hosting with Apache http server - an overall scheme, and avoiding common pitfalls - (2011-01-14)
[3635] Parse error: parse error, unexpected T_STRING on brand new web site - why? - (2012-03-03)
[3955] Building up from a small PHP setup to an enterprise one - (2012-12-16)
[4319] PHP - some quick fixes if scripts have issues, and how to use our support - (2014-11-19)
[4437] Adding a PHP build option, rotating an image based on camera data, and a new look at thumbnails in PHP - (2015-02-22)
A602 - Web Application Deployment - Apache httpd - Sourcing, Installation, Testing [523] Apache httpd release 2.2 - (2005-12-10)
[526] Apache httpd - serving web documents from different directories - (2005-12-12)
[550] 2006 - Making business a pleasure - (2006-01-01)
[660] Stopping and restarting Apache httpd cleanly - (2006-03-29)
[907] Browser -> httpd -> Tomcat -> MySQL. Restarting. - (2006-10-28)
[982] Notes from the white board - (2006-12-14)
[1095] Apache httpd , browser, MySQL and MySQL client downloads - (2007-02-28)
[1292] DHCP automatic IP address v Static IP - (2007-08-06)
[1449] Upgrade Mac OSX to Leopard, Web Server Apache httpd config lost - (2007-11-29)
[1455] Connecting to MySQL 5 from PHP on Mac OSX Leopard - (2007-12-03)
[1707] Configuring Apache httpd - (2008-07-12)
[1945] Summary - Apache httpd build on Linux - (2008-12-14)
[2080] Using ApacheBench and jconsole to test and monitor Tomcat - (2009-03-14)
[2096] Where is my new Apache httpd installed - (2009-03-22)
[2184] Choosing the right version of Java and Tomcat - (2009-05-16)
[2520] Global and Enable - two misused words! - (2009-11-30)
[3426] Automed web site testing scripted in Ruby using watir-webdriver - (2011-09-09)
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