Данный туториал нам не подошел, потому что на фирме действует документ, регламентирующий структуру директорий на локалке, и все сайты (около 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 файла подключил в каждом файле:
#конфиг 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 переключаюсь по необходимости.
Результат:
- можно конфигурировать каждый Apache сервер под свой PHP
- для смены версии PHP достаточно остановить один сервер и запустить другой из ApacheMonitor
P.S. За этот костыль мне даже премию выдали :)
Автор: infolex