Aynı sunucu üzerinde PHP4 ile PHP5 kurulumu

Genelde yaşadığım problemlerden biridir: PHP4 ile gelen XML fonksiyonlarını kullanarak yazılmış bir PHP yazılımı, PHP5 çalıştıran bir sunucuda çalışmaz, hatalarla uğraşmak programı yeniden yazmaktan zor gelir. Programı yeniden yazmak ise ölümdür. Bu durumda en mantıklı çözüm, ya iki ayrı web sunucu kullanmak (farklı portlarda çalışan iki ayrı web server instance) veya PHP4 ve PHP5’i aynı sunucuya yüklemek.

İşte aynı sunucu üzerinde ikinci bir web sunucu çalıştırmadan, aynı web sunucu üzerinde hem PHP4 hem PHP5 kullanabilmek için yapılacaklar. Sunucu olarak RHEL 5/CentOS 5 kullandığım için bu dağıtıma göre anlattım.

RHEL5/CentOS5 kurduğunuzda eğer web sunucu/php kurulmasını istemişseniz PHP5.x kurulacaktır. Öncelike PHP5 kurduktan sonra sonra PHP4 kurulacaktır. PHP5’i normal bir şekilde RPM ile kurun.

Daha sonra, http://tr.php.net adresinden PHP4 source kodunu indirin ve kaynak kodu uygun bir geçici dizine açın. Ben bu örnekte PHP 4.4.9 kullandım. (Copy/Paste yapabilirsiniz.)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
cd /usr/local/src/
wget http://tr.php.net/get/php-4.4.9.tar.gz/from/a/mirror
tar -zxf php-4.4.9.tar.gz
cd php-4.4.9
./configure --prefix=/usr/local/php4 --enable-force-cgi-redirect --enable-fastcgi --with-config-file-path=/usr/local/etc/php4/cgi --with-curl
--with-curl-dir=/usr/local/lib --with-gd --with-gd-dir=/usr/local/lib --with-gettext --with-jpeg-dir=/usr/local/lib --with-kerberos --with-mcrypt
--with-mhash --with-mysql=/usr --with-pear --with-png-dir=/usr/local/lib --with-xml --with-zlib --with-zlib-dir=/usr/include --with-zip
--enable-bcmath --enable-calendar --enable-ftp --enable-magic-quotes --enable-sockets --enable-track-vars --enable-mbstring --enable-memory-limit

make
make install

mkdir -p /usr/local/etc/php4/cgi
cp /usr/local/src/php-4.4.9/php.ini-dist /usr/local/etc/php4/cgi/php.ini
cp /etc/httpd/conf.d/php.conf /etc/httpd/conf.d/php4.conf

echo "DirectoryIndex index.php4 index.php3" >> /etc/httpd/conf.d/php4.conf
echo "Action php4-script /cgi-bin/php4" >> /etc/httpd/conf.d/php4.conf
echo "AddHandler php4-script .php3 .php4" >> /etc/httpd/conf.d/php4.conf

cd /var/www/cgi-bin/
ln /usr/local/php4/bin/php php4

/etc/httpd/conf.d/php4.conf dosyasındaki “LoadModule php5…” satırını kapatın ya da sildikten sonra Apache web sunucusunu yeniden başlatın ve PHP4’u test edin. Test için iki ayrı php dosyası kullanın ve her birinin içinde phpinfo() fonksiyounu çağırın. Fonksiyon çıktılarında PHP4 CGI, PHP5 ise DSO olarak çalışacaktır.

1
2
3
4
5
6
/var/www/html/info.php4
/var/www/html/info.php

< ?
phpinfo();
?>

Artık web sunucunuzda .php3 ve .php4 uzantılı PHP dosyalarınız PHP4 kullanılarak, .php uzantılı PHP dosyalarınız ise PHP5 kullanılarak çalıştırılacaktır.

Leave a Reply


*