SharePoint Alfresco PHP MySQL
О сайте Контакты
воскресенье, 21 августа 2011 г.

Установка PHP4 и PHP5 одновременно на один Apache2.2

Часто возникает задача, когда требуется протестировать работу сайтов одновременно в двух версиях PHP: четвертой и пятой. Для этого многие использовали хитроумные способы, вроде установки двух Apache 1.3 и 2.2, где под Apache 1.3 крутился PHP4, а под Apache 2.2 – PHP5. Но Apache 1.3 уже давно устарел и не поддерживается, поэтому резонно использовать последнюю стабильную версию Apache из ветки 2.2. В данной статье я расскажу, как заставить работать на одной машине несколько экземпляров Apache 2.2 с целью запуска PHP различных версий.

Рассмотрим поэтапно процедуры, которые необходимо проделать:

1) Скачать последнюю версию Apache 2.2 (http://httpd.apache.org/download.cgi)

2) Установить на сервер в директорию D:\Apache2.2 (для примера)

3) Убедиться в том, что Apache корректно работает, проверить его запуск/останов в менеджере сервисов

4) Удалить текущий сервис Apache2.2, который установился по умолчанию:

httpd –k uninstall –n Apache2.2

Удаление необходимо для того, чтобы можно было в будущем легко идентифицировать, какой экземпляр Apache относится к PHP4, а какой к PHP5. По умолчанию в сервисах будет безликий Apache2.2

5) Создать заготовки конфигурационных файлов для будущих экземпляров сервисов Apache: httpd_php4.conf и httpd_php5.conf

6) Запустить командную строку с правами администратора. Для этого создать ярлык с командой cmd, нажать на него правой кнопкой мыши и выбрать «Запуск от имени администратора». Иначе не хватит привилегий для создания новых сервисов.

7) Установить новые экземпляры сервисов. Дадим имена новым сервисам PHP4 и PHP5:

httpd –k install –n PHP4 –f "D:\Apache2.2\conf\httpd_php4.conf"
httpd –k install –n PHP5 –f "D:\Apache2.2\conf\httpd_php5.conf"

8) В менеджере сервисов убедиться, что появились новые сервисы PHP4 и PHP5

9) Убедиться, что конфигурационные файлы разных экземпляров используют различные порты. Стараться не занимать системные порты (81,82 и прочие с коротким номером). В httpd_php4.conf прописать Listen 127.0.0.1:20082, в httpd_php5.conf прописать Listen 127.0.0.1:20081

10) Запустить сервисы PHP4 и PHP5, убедиться в их работоспособности

11) Скачать и установить версии PHP в папки соответственно D:\PHP4 и D:\PHP5

12) Для PHP4 скачать дополнительно файл php4apache2_2.dll, так как он не входит в стандартную поставку. Скопировать его в D:\PHP4

13) Добавить в PATH строку D:\PHP5\;D:\PHP4\;

14) Подключить модули PHP в конфигурационных файлах

В httpd_php5.conf добавить:

PHPIniDir "D:/PHP5/"
LoadModule php5_module "D:/PHP5/php5apache2_2.dll"

В httpd_php4.conf добавить:

PHPIniDir "D:/PHP4/"
LoadModule php4_module "D:/PHP4/php4apache2_2.dll"

Обратите внимание на слеши. В PHPIniDir они должны быть именно такими, иначе Apache не подцепит нужный php.ini, и PHP4 будет использовать php.ini от PHP5.

15) Запустить сервисы PHP4 и PHP5, через функцию phpinfo() убедиться, что каждая версия PHP использует свой php.ini

Sergey Lysenko, воскресенье, 21 августа 2011 г.

Комментарии: