Несколько версий PHP под одним Apache на Windows (v2)

в 13:42, , рубрики: Apache, php, php5, php7

Данный туториал нам не подошел, потому что на фирме действует документ, регламентирующий структуру директорий на локалке, и все сайты (около 250) у нас лежат в одной директории. Понимаю и не устаю повторять, что данный документ это полный бред, но начальство не переубедишь. Поэтому возникла необходимость быстро переключаться между версиями PHP ничего никуда не перемещая, без «этих ваших денверов и опынсерверов и прочего, все должно быть с коробки, приду правэрю, иначе уволю!».

И так, структура директорий:

C:ServerApache24
C:ServerPHP55
C:ServerPHP56
C:ServerPHP57
C:Serverhome тут директории с сайтами

В C:ServerApache24conf копируем/вставляем 3 копии httpd.conf и переименовываем их в httpd55.conf, httpd56.conf и httpd7.conf, каждый файл конфигурации для своей версии PHP соответственно. Я сначала сконфигурировал один конфиг апача, затем после его копипасты на 3 файла подключил в каждом файле:

свои версии PHP
#конфиг httpd55.conf
LoadModule php5_module "C:/Server/PHP55/php5apache2_4.dll"
<IfModule php5_module>
AddHandler application/x-httpd-php .php
PHPIniDir "C:/Server/PHP55"
</IfModule>

#конфиг httpd56.conf
LoadModule php5_module "C:/Server/PHP56/php5apache2_4.dll"
<IfModule php5_module>
AddHandler application/x-httpd-php .php
PHPIniDir "C:/Server/PHP56"
</IfModule>

#конфиг httpd7.conf
LoadModule php7_module "C:/Server/PHP7/php7apache2_4.dll"
<IfModule php7_module>
AddHandler application/x-httpd-php .php
PHPIniDir "C:/Server/PHP7"
</IfModule>

Далее через консоль создаем 3 сервиса Windows для каждой версии PHP, указывая какой конфиг будет использовать апач:


C:ServerApache24binhttpd.exe -k install -n "Apache PHP5.5" -f "C:ServerApache24confhttpd55.conf"
C:ServerApache24binhttpd.exe -k install -n "Apache PHP5.6" -f "C:ServerApache24confhttpd56.conf"
C:ServerApache24binhttpd.exe -k install -n "Apache PHP7" -f "C:ServerApache24confhttpd7.conf"

Не забудьте оставить автозапуск только у одной службы Апача. У меня стоит только у PHP5.6, на PHP5.5 и PHP7 переключаюсь по необходимости.

Результат:

Несколько версий PHP под одним Apache на Windows (v2) - 1

  • можно конфигурировать каждый Apache сервер под свой PHP
  • для смены версии PHP достаточно остановить один сервер и запустить другой из ApacheMonitor

P.S. За этот костыль мне даже премию выдали :)

Автор: infolex

Источник

Поделиться новостью

* - обязательные к заполнению поля