Разные версии 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

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



Комментарии

Популярные сообщения из этого блога

Microsoft Office. Окно "Давайте начнем"

Импорт - Экспорт пользователей Active Directory