Рубрики
Uncategorized

Запуск нескольких версий PHP для экземпляра Apache в системной среде Windows

Автор оригинала: David Wong.

Моя личная машинная среда основана на PHP 5.2/4, работающем в Apache 2.2. Если вы хотите развернуть другие версии PHP или переключиться между несколькими версиями, те же действия выполняются одинаково.

Согласно моей среде, php 5.2 был установлен на компьютере, поэтому сначала создайте службу 5.2:

Если служба веб-сервера уже запущена на вашем компьютере, вы можете приостановить ее и настроить на ручное выполнение (поскольку в будущем мы не будем запускать эту службу по умолчанию). Отредактируйте файл конфигурации httpd.conf и добавьте следующее содержимое


 #Provide the path of php5.2 DLL called by Apache
 LoadModule php5_module "e:/AppServ\php5\php5apache2_2.dll"
 #Php.ini path of your php5.2 version
 PHPIniDir "C:/Windows/php.ini"

Откройте командную строку CMD, перейдите в каталог Apache bin и выполните следующую команду httpd.exe -k установить -n Apache_php5.2-D php5.2 Теперь вы можете перезапустить новую службу с именем apache_php5.2 и распечатать phpinfo () в PHP, чтобы проверить, правильно ли она работает, Если описанный выше процесс верен, вы можете продолжить настройку PHP 5.4. Вы почувствуете себя знакомым

Загрузите двоичную версию PHP 5.4 и извлеките ее в каталог, который вы хотите разместить (путь на моей машине: e:/AppServ/php-5.4.37) Снова отредактируйте файл конфигурации httpd.conf и добавьте следующее содержимое


 LoadModule php5_module "E:/AppServ/php-5.4.37/php5apache2_2.dll"
 #Ini path of php5.4 (note that php.ini-production/development files will exist by default in php5.4, and the individual has been renamed)
 PHPIniDir "E:/AppServ/php-5.4.37/php.ini"

Откройте командную строку CMD и создайте службу Apache службы php5.4

httpd.exe -k install -n Apache_php5.4 -D php5.4

С помощью этой конфигурации мы можем переключаться между различными версиями PHP. Для удобства ежедневной работы мы также можем записывать файлы bat для быстрого и автоматического переключения.

@echo off
@sc query apache_php5.4 | find /i "running" > null
if %ERRORLEVEL% == 0 (
    net stop apache_php5.4
    net start apache_php2.2
) else (
    net stop apache_php2.2
    net start apache_php5.4
)
pause

Теперь все кончено!