PHP5 будем собирать из исходников.
Для начала установим несколько вспомогательных программ, если они еще не установлены:
apt install build-essential
apt install zip unzip
apt install pkg-config
apt install autoconf
Переходим во временную директории, скачиваем PHP, патч для работы с OpenSSL-1.1.0 и патч для freetype (c freetype я больше всего намучался, получая ошибку "freetype-config not found"):
cd /tmp
wget -O php-5.6.36.tar.gz http://nl1.php.net/get/php-5.6.36.tar.gz/from/this/mirror
wget http://zettasystem.com/PHP-5.6.31-OpenSSL-1.1.0-compatibility-20170801.patch
wget -O freetype.path https://git.archlinux.org/svntogit/packages.git/plain/trunk/freetype.patch?h=packages/php
Распаковываем архив с PHP, переходим внутрь, применяем патчи и заново генерируем configure:
tar -xvf php-5.6.36.tar.gz
cd php-5.6.36
patch -p1 < ../PHP-5.6.31-OpenSSL-1.1.0-compatibility-20170801.patch
patch -p1 < ../freetype.path
autoconf
Устанавливаем необходимые модули:
apt install libxml2-dev zlib1g-dev libcurl4-openssl-dev libssl-dev libmcrypt-dev libxslt1-dev libreadline-dev libtidy-dev libgd-dev libfreetype6-dev
Сосздаем символическую ссылку на curl:
cd /usr/local/include
ln -s /usr/include/x86_64-linux-gnu/curl curl
cd /tmp/php-5.6.36
Пробуем configure:
./configure \
--with-config-file-path=/etc/php/5.6/php.ini \
--with-gd \
--with-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--enable-mbstring \
--enable-ftp \
--enable-pdo \
--enable-soap \
--enable-sockets=shared \
--enable-zip \
--with-readline \
--with-tidy \
--with-zlib \
--with-mcrypt \
--with-vpx-dir \
--with-jpeg-dir \
--with-png-dir \
--with-xpm-dir \
--with-openssl \
--with-curl \
--with-pear \
--with-xsl \
--with-freetype-dir=/usr/include/freetype2 \
--enable-gd-native-ttf \
--enable-cli
Если есть ошибки, с помощбю Гугла доустанавливаем недостающие пакеты. Затем:
make
make install
Копируем получившиеся бинарники:
cp /usr/local/bin/php-cgi /usr/lib/cgi-bin/php5
cp /usr/local/bin/php /usr/lib/cgi-bin/php5-cli
Зачем их два. Первый будет использоваться для Apache, второй - для работы в командной строке с composer.
Далее настройка Apache. В нужный хост добавить:
<FilesMatch \.php$>
SetHandler application/x-httpd-php5
</FilesMatch>
AddHandler application/x-httpd-php5 .php
Action application/x-httpd-php5 /cgi-bin/php5
Включить serve-cgi-bin:
a2enconf serve-cgi-bin
service apache2 restart
Если ругается Invalid command 'Action', то включить модуль Action:
a2enmod actions
Возможно, потребуется включить модуль:
a2enmod cgi