Разные версии PHP на разных сайтах на одном сервере
Бывают ситуации, когда необходимо для одного или нескольких сайтов на хостинге подключить другую версию PHP. Например, ситуация, когда собрали веб-сервер с PHP-7.x (актуально на момент написания), а у вас есть сайт который может работать максимум с версией PHP 5.х. Яркий пример сайт на Joomla 1.5.
В этой ситуации решение я нашел для себя следующее:
1. Для начала собираем WEB-Server с 2-мя установленными версиями PHP.
2. Ставим вторую версию PHP - PHP-5.6 (на момент написания максимальная версия ветки), ставится с расширением php5.6-cgi.
# apt-get install php5.6 php5.6-cgi php5.6-mysql libapache2-mod-php5.6 php5.6-mbstring php5.6-zip php5.6-gd php5.6-xml php5.6-curl
3. Проверим наличие установленных версий и версию по умолчанию.
# update-alternatives --config php
4. Проверим наличие скомпилированного фала php5.6 в /usr/lib/cgi-bin/.
5. Запускаем модуль апача для работы с cgi и перезапускаем.
# a2enmod actions
# service apache2 restart
# a2enmod cgi
# service apache2 restart
В этой ситуации решение я нашел для себя следующее:
1. Для начала собираем WEB-Server с 2-мя установленными версиями PHP.
2. Ставим вторую версию PHP - PHP-5.6 (на момент написания максимальная версия ветки), ставится с расширением php5.6-cgi.
# apt-get install php5.6 php5.6-cgi php5.6-mysql libapache2-mod-php5.6 php5.6-mbstring php5.6-zip php5.6-gd php5.6-xml php5.6-curl
3. Проверим наличие установленных версий и версию по умолчанию.
# update-alternatives --config php
5. Запускаем модуль апача для работы с cgi и перезапускаем.
# a2enmod actions
# service apache2 restart
# a2enmod cgi
# service apache2 restart
6. и включим конфиг апача serve-cgi-bin
# a2enconf serve-cgi-bin
# service apache2 restart
Осталось настроить наши виртуальные хосты для работы с другой версией (не по умолчанию) PHP.
7. В файл /etc/apache2/sites-available/*-default.conf (там находятся все виртуал хосты) добавляем строчки для запуска PHP-5.6 в настройки необходимого хоста, т.е. между
<VirtualHost>
</VirtualHost>
<FilesMatch \.php$>
SetHandler application/x-httpd-php5.6
</FilesMatch>
AddHandler application/x-httpd-php5.6 .php
Action application/x-httpd-php5.6 /cgi-bin/php5.6
8. Перезапускаем Apache и все должно работать.
# service apache2 restart
Заметка:
Переключение между версиями по умолчанию
php5.6 -> php7.0
# a2dismod php5.6 ;
# a2enmod php7.0 ;
# service apache2 restart
# update-alternatives --set php /usr/bin/php7.0
php7.0 -> php5.6 :
# a2dismod php7.0 ;
# a2enmod php5.6 ;
# service apache2 restart
# update-alternatives --set php /usr/bin/php5.6
Комментарии
Отправить комментарий