Create a shell script that shall build and compile apache (2.2.25) and php (5.4.17), it should also read from a text file with a list of options. The OS will be CentOS. One or 2 text files may be used.
It should build apache and php from tar source (not an rpm, nor a source rpm, nor from yum), the tar file will already be on the server (file name/version shall be a variable at the top of the program that can be changed for future use).
The script shall be able to build PHP using server API apache, as well as optionally CGI/FastCGI (when apache runs a php script it will run as nobody using the API apache, and as the username of the owner of the script when running with the server API CGI/FastCGI).
Apache should be able to be compiled with or without suexec, and with or without suphp.
The actual modules shall be specified in the configure command, and shortcuts such as the --most option shall not be used, and a bunch of extra modules should not be compiled in.
PHP shall be compiled with any or all of the following options:
'--disable-fileinfo' '--enable-bcmath' '--enable-calendar' '--enable-exif' '--enable-ftp' '--enable-gd-native-ttf' '--enable-libxml' '--enable-magic-quotes' '--enable-mbstring' '--enable-pdo=shared' '--enable-soap' '--enable-sockets' '--enable-wddx' '--enable-zip' '--prefix=/usr' '--with-curl=/opt/curlssl/' '--with-curlwrappers' '--with-freetype-dir=/usr' '--with-gd' '--with-gettext' '--with-imap=/opt/php_with_imap_client/' '--with-imap-ssl=/usr' '--with-jpeg-dir=/usr' '--with-kerberos' '--with-libdir=lib64' '--with-libexpat-dir=/usr' '--with-libxml-dir=/opt/xml2' '--with-libxml-dir=/opt/xml2/' '--with-mcrypt=/opt/libmcrypt/' '--with-mysql=/usr' '--with-mysql-sock=/var/lib/mysql/mysql.sock' '--with-mysqli=/usr/bin/mysql_config' '--with-openssl=/usr' '--with-openssl-dir=/usr' '--with-pcre-regex=/usr' '--with-pdo-mysql=shared' '--with-pdo-sqlite=shared' '--with-pic' '--with-png-dir=/usr' '--with-sqlite=shared' '--with-tidy=/usr' '--with-xmlrpc' '--with-xpm-dir=/usr' '--with-xsl=/opt/xslt/' '--with-zlib' '--with-zlib-dir=/usr'
The script to compile php will read from a text file, with the options listed similar to:
where yes means the module will be included in the compile statement and no means it won't be. If there are any common modules/options those do not have to be in the file and can't be part of the configure command by default.
The paths if neccessary for the option can be hardcoded and can vary from the configure command above.
Apache shall be compiled with any or all of the following options:
These options will be read from a text file, with a yes/no similar to the php section. For common modules, such as modssl, those can be part of the configure command by default and does not have be in the text file.
If I am missing any needed modules for php or apache from the above list, they shall be added to the default command.
The script can rebuild and/or use multiple httpd.conf files where necessary.
2 default users and domains shall be used in virtual hosts sections in the apache config file.
Coder shall create a howto describing how the employer can replicate the setup on another server and assist with the replication if needed.
Any scripts created will be well docuemented and written in bash, perl or python.
Source code and howto will be property of the employer.