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

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

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

C:\Server\Apache24
C:\Server\PHP55
C:\Server\PHP56
C:\Server\PHP57
C:\Server\home тут директорії з сайтами
У C:\Server\Apache24\conf\ копіюємо/вставляємо 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:\Server\Apache24\bin\httpd.exe -k install -n "Apache PHP5.5" -f "C:\Server\Apache24\conf\httpd55.conf"
C:\Server\Apache24\bin\httpd.exe -k install -n "Apache PHP5.6" -f "C:\Server\Apache24\conf\httpd56.conf"
C:\Server\Apache24\bin\httpd.exe -k install -n "Apache PHP7" -f "C:\Server\Apache24\conf\httpd7.conf"

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

Результат:

  • можна конфігурувати кожен сервер Apache під свій PHP
  • для зміни версії PHP досить зупинити один сервер і запустити інший з ApacheMonitor
P. S. За цей милицю мені навіть премію видали :)

Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.