Для старого сайта потребовалось установить PHP 5.6 на Debian 9.
Для начала скачать последнюю версию и распаковать:
cd /tmp
wget -O php-5.6.36.tar.gz http://nl1.php.net/get/php-5.6.36.tar.gz/from/this/mirror
tar -xvf php-5.6.36.tar.gz
Однако, эта версия PHP не поддерживает libssl 1.1 и потому не собирается. Решение проблемы - применить патч https://github.com/oerdnj/deb.sury.org/issues/566
wget http://zettasystem.com/PHP-5.6.31-OpenSSL-1.1.0-compatibility-20170801.patch
cd php-5.6.36
patch -p1 < ../PHP-5.6.31-OpenSSL-1.1.0-compatibility-20170801.patch
Теперь можно переходить к сборке:
./configure \
--enable-pdo \
--with-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--enable-mbstring \
--with-gd \
--with-mcrypt \
--with-vpx-dir \
--with-jpeg-dir \
--with-png-dir \
--with-freetype-dir \
--with-xpm-dir \
--with-zlib-dir \
--with-openssl \
--with-pear \
--with-xsl
Возможно, в процессе потребуется установить недостающие пакеты. У меня это было:
apt-get install libvpx-dev libxml2-dev libpcre3-dev libbz2-dev libcurl4-openssl-dev libjpeg-dev libpng-dev libxpm-dev libfreetype6-dev libgd2-dev libgmp-dev libsasl2-dev libmhash-dev unixodbc-dev freetds-dev libpspell-dev libsnmp-dev libtidy-dev libxslt1-dev libmcrypt-dev libssl-dev
Далее
make
checkinstall
Копируем получившийся бинарник куда-нибудь:
cp /usr/local/bin/php-cgi /usr/lib/cgi-bin/php5
Теперь как заставить нужный VirtualHost хост не работать как модуль апача с нашим бинарником. Добавить в нужный VirtualHost:
<FilesMatch \.php$>
SetHandler application/x-httpd-php5
</FilesMatch>
AddHandler application/x-httpd-php5 .php
Action application/x-httpd-php5 /cgi-bin/php5
Возможно, потребуется включить несколько модулей Apache^
a2enmod actions
a2enconf serve-cgi-bin
a2enmod cgi
a2enmod rewrite
sevice apache2 restart