1. Download php from http://www.php.net/releases/
2. Unpack the tarball to your home directory
tar -xjf php-5.2.10.tar.bz2
3. Get module list
php -m | grep -v -e Modules] -e ^$ > php-default-modules
4. Create a configure script
for i in $(cat php-default-modules); do echo -n "--with-$i ">> phpconfigure.sh ;done
5. Edit phpconfigure.sh and insert these 2 lines to the beginning of the file
#!/bin/bash
./configure
6. Run the configure script
./phpconfigure.sh
7. Correct the errors with the help of this command:
./configure --help
To correct the errors, you may need to replace '--with' with '--enable', and remove those modules that are enabled by default.
8. Add other options that you need, such as --enable-safe-mode
9. Create and run phpinfo.php
echo phpinfo();
10. Grab the configure entries from phpinfo.php. Remember not to include '–with-apxs2=/usr/sbin/apxs', and Make sure to change '–with-config-file-path=/etc' and '–with-config-file-scan-dir=/etc/php.d'.
A sample phpconfigure.sh
#!/bin/bash
./configure --prefix=/usr/share --datadir=/usr/share --libdir=/usr/lib64 --libexecdir=/usr/libexec --localstatedir=/var --sharedstatedir=/usr/com --mandir=/usr/share/man --infodir=/usr/share/info --cache-file=../config.cache --with-libdir=lib64 --includedir=/usr/include --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc --with-config-file-path=/etc/php52 --with-config-file-scan-dir=/etc/php.5.2.d --with-jpeg-dir=/usr --enable-force-cgi-redirect --enable-discard-path --with-bz2 --enable-calendar --enable-exif --enable-ftp --with-gd --with-gettext --with-gmp --with-iconv --enable-mbstring --with-mcrypt --with-mysql=/usr/bin/ --with-mysqli --with-openssl --with-pdo_mysql --with-PDO_ODBC --with-pdo_sqlite --enable-shmop --enable-sockets --with-xmlrpc --with-xsl --enable-zip --with-zlib
11. Run ./phpconfigure.sh again until all errors are fixed.
12. Run 'make'.
13. Fix the errors.
14. Run 'make' again until all errors are fixed.
15. Duplicate php.ini
mkdir /etc/php52/
cp php.ini-dist /etc/php52/php.ini
16. Duplicate the additional .ini files
mkdir /etc/php.5.2.d
cp /etc/php.d/*.* /etc/php.5.2.d/
17. Change permission of the cgi-bin folder
chmod 755 /var/www/vhosts/domain.com/cgi-bin
18. Copy the php-cgi to the cgi-bin folder
cp sapi/cgi/php-cgi /var/www/vhosts/domain.com/cgi-bin/
chown domain.psacln /var/www/vhosts/domain.com/cgi-bin/php-cgi
chmod 755 /var/www/vhosts/domain.com/cgi-binphp-cgi
19 . Create the apache config file
vim /var/www/vhosts/domain.com/conf/vhost.conf
ScriptAlias /cgi-bin/ /var/www/vhosts/domain.com/cgi-bin/
Action php52-cgi /cgi-bin/php-cgi
AddHandler php52-cgi .php
20. Ask Plesk to reconfigure the domain
/usr/local/psa/admin/bin/httpdmng --reconfigure-domain domain.com
Reference:
http://mossiso.com/2009/09/02/multiple-php-instances-with-one-apache.html
http://kb.parallels.com/en/430