Closed

Read option modules from a file and use it to compile apache and php

This project received 8 bids from talented freelancers with an average bid price of $439 USD.

Get free quotes for a project like this
Employer working
Skills Required
Project Budget
$30 - $250 USD
Total Bids
8
Project Description

Create a shell script that shall build and compile apache ([url removed, login to view]) and php ([url removed, login to view]), 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).

Main features:
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/[url removed, login to view]' '--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:
exif=YES
curlssl=NO
GD=YES
tidy=NO
etc

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:
–suphp
-suexec
–mod_security
-modSSL
–deflate
–ZendGuard
–IonCube
-Asis
-AuthnDefault
-Env
-Expires
-FileProtect
-Headers
-UniqueID
-Version

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 [url removed, login to view] 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.

Looking to make some money?

  • Set your budget and the timeframe
  • Outline your proposal
  • Get paid for your work

Hire Freelancers who also bid on this project

    • Forbes
    • The New York Times
    • Time
    • Wall Street Journal
    • Times Online