Debian php 5.2

Материал из poiuty wiki
Перейти к: навигация, поиск

Потребовалось сделать две версии PHP на сервере Debian 7 + ISPmanager 4.
Одна будет из репозитория (5.4), вторую соберем сами (5.2) => про нее подробнее.
Устанавливаем пакеты, необходимые для компиляции.

apt-get install libxml2-dev libpcre3-dev libbz2-dev libcurl4-openssl-dev libdb4.8-dev libjpeg-dev libpng12-dev libxpm-dev libfreetype6-dev libmysqlclient-dev postgresql-server-dev-9.1 libt1-dev libgd2-xpm-dev libgmp-dev libsasl2-dev libmhash-dev unixodbc-dev freetds-dev libpspell-dev libsnmp-dev libtidy-dev libxslt1-dev libmcrypt-dev

Скачиваем PHP 5.2.17

cd /usr/src/ 
wget http://museum.php.net/php5/php-5.2.17.tar.bz2
tar jxf php-5.2.17.tar.bz2

Так как эта версия PHP больше официально не поддерживается, то нужно дополнительно ее пропатчить.
Сначала накладываем патчи php52-backports.

cd /usr/src/php-5.2.17/
wget http://php52-backports.googlecode.com/files/php52-backports-20130717.patch
patch -p1 < php52-backports-20130717.patch

Далее запрещаем SSLv2.

wget --content-disposition "https://bugs.php.net/patch-display.php?bug_id=54736&patch=debian_patches_disable_SSLv2_for_openssl_1_0_0.patch&revision=1305414559&download=1"
patch -p1 < debian_patches_disable_SSLv2_for_openssl_1_0_0.patch.patch.txt

В этой версии нет maillog. Добавить этот функционал можно с помощью этого патча. У меня он нормально не пропатчил. По-этому добавлял сам, руками.
После того, как добавили все патчи - осталось скомпилировать PHP. Возможные ошибки при компиляции - можно посмотреть здесь.

./configure --prefix=/opt/php-5.2.17 --with-config-file-path=/opt/php-5.2.17 --with-libdir=/lib/x86_64-linux-gnu --with-pdo-pgsql --with-zlib-dir --with-freetype-dir --enable-mbstring --with-libxml-dir=/usr --enable-soap --enable-calendar --with-curl=/usr/bin --with-mcrypt --with-zlib --with-gd --with-pgsql --disable-rpath --enable-inline-optimization --with-bz2 --with-zlib --enable-sockets --enable-sysvsem --enable-sysvshm --enable-pcntl --enable-mbregex --with-mhash --enable-zip --with-pcre-regex --with-mysql --with-mysql-sock=/var/run/mysqld/mysqld.sock --with-pdo-mysql --with-mysqli --with-jpeg-dir --with-png-dir --enable-gd-native-ttf --with-openssl --enable-ftp --with-imap --with-imap-ssl --with-kerberos --with-gettext --enable-cli --enable-fastcgi --enable-discard-path --enable-force-cgi-redirect --enable-cgi --enable-bcmath
make
make install

Так как сайтов, которые работают на PHP 5.2 было мало - не стал делать никакую визуальную часть в панели управления.
Переключение между версиями происходит в файле /var/www/php-bin/USER/php
Когда нужно PHP 5.2

#!/opt/php-5.2.17/bin/php-cgi

Когда 5.4

#!/usr/bin/php-cgi

Крайней не рекомендую использовать PHP 5.2 => лучше перепишите свой сайт и используйте актуальные версии.