Я расскажу об одном из способов иметь на Windows XP две версии PHP одновременно. В результате у вас будет рабочий компьютер с Apache 2, PHP4 и PHP5. Если у вас уже установлены веб-сервер Apache и обе версии PHP, то переходите к третьему шагу.
Первый шаг: Установка Apache 2.
Скачайте последнюю версию Apache 2.0. На данный момент это версия 2.0.59. Во время установки в качестве хоста укажите localhost, порт 80, электронный адрес webmaster@localhost, место для установки C:\usr\local\apache2.
Программы, которые были портированы с Linux я рекомендую устанавливать в X:\usr\local и придерживаться этого правила. Множество веб-приложений написаны с расчетом на то, что они будут работать под управлением веб-сервера на Linux или FreeBSD. Руководства по установке для таких веб-приложений написаны с учетом отличной от Windows струкруты каталогов. Вам будет проще их настраивать если структруа ваших каталогов будет близка к Linux.Остальные настройки оставьте по-умолчанию. Убедитесь, что Apache будет установлен как сервис.
Второй шаг: Установка PHP.
Скачайте PHP4 (на данный момент 4.4.4) и PHP5 (5.2.0) в zip-архивах. Распакуйте файлы в C:\usr\local\php4 и C:\usr\local\php5 соответственно. Выполните необходимые действия по настройке PHP, описанные в install.txt, глава Manual Installation Steps.
Третий шаг: Включаем обе версии.
Идея заключается в том, что в конфигурационном файле Apache (httpd.conf) можно указать местоположения php.ini с помощью директивы PHPIniDir, а так же из httpd.conf можно загружать другие конфигурационные файлы. Эти два факта позволяют сделать два конфигурационных файла, которые будут отличаться значением LoadModule и PHPIniDir, а остальные директивы (те, которые одинаковы для PHP4 и PHP5) брать из других файлов.
Так как Apache не может загрузить модули PHP4 и PHP5 одновременно, мы сделаем два разных конфигурационных файла: httpd-php4.conf и httpd-php5.conf.
Переименуйте httpd.conf (находится в C:\usr\local\apache2\conf) в httpd-common.conf. Создайте пустой файл httpd-php4.conf и скопируйте в него:
## PHP 4 Apache configuration
#
# ServerRoot: The top of the directory tree under which the server's
# configuration, error, and log files are kept.
#
ServerRoot "C:\usr\local\apache2"
# PHP Settings
PHPIniDir "C:\usr\local\php4"
LoadModule php4_module C:\usr\local\php4\php4apache2.dll
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
# Load default Apache settings
Include conf/httpd-common.conf
Обратите внимание, что файл C:\usr\local\php4\sapi\php4apache2.dll необходимо скопировать в C:\usr\local\php4!
Теперь создайте httpd-php5.conf:
## PHP 5 Apache configuration
#
# ServerRoot: The top of the directory tree under which the server's
# configuration, error, and log files are kept.
#
ServerRoot "C:\usr\local\apache2"
# PHP Settings
PHPIniDir "C:\usr\local\php5"
LoadModule php5_module C:\usr\local\php5\php5apache2.dll
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
# Load default Apache settings
Include conf/httpd-common.conf
Закомментируйте в файле httpd-common.conf сроку с директивой ServerRoot:
...
#
# Do NOT add a slash at the end of the directory path.
#
# ServerRoot "D:/usr/local/Apache2"
...
Теперь настроим сервисы. Остановите Apache если он запущен. Сначала удалим сервис, который был добавлен во время установки веб-сервера (Пуск->Выполнить, наберите cmd, затем нажмите OK):
C:\usr\local\apache2\bin\apache.exe -k uninstall
Установка для PHP4:
С:\usr\local\apache2\bin\apache.exe -n apache2-php4 -f "C:\usr\local\apache2\conf\httpd-php4.conf" -k install
Установка для PHP5:
С:\usr\local\apache2\bin\apache.exe -n apache2-php5 -f "C:\usr\local\apache2\conf\httpd-php5.conf" -k install
Если возникли ошибки, то обратитесь к документации Apache или поищите решение в Google.
Проверим установку. Создайте файл C:\usr\local\apache2\htdocs\info.php:
<?php
phpinfo();
?>
Запустите Apache с PHP4:
net start apache2-php4
Откройте свой браузер и наберите http://localhost/info.php. Вверху сраницы вы увидете текст PHP Version 4.x.x. Теперь запустите Apache c PHP5:
net stop apache2-php4
net start apache2-php5
Обновите страницу в браузере. Вверху сраницы вы увидете текст PHP Version 5.x.x. Вы можете переключаться между версиями вручную либо создать файлы для быстрого переключения.
start-php4.cmd:
net stop apache2-php5
net start apache2-php4
start-php5.cmd:
net stop apache2-php4
net start apache2-php5
Заключение.
С помощью этого метода можно иметь несколько версий Apache и несколько версий PHP в различных комбинациях. Для того, чтобы PHP4 и PHP5 работали одновременно, потребуется сделать копию веб-сервера, например, в C:\usr\local\apache2_another и настройить его на другой IP или порт.
2 комментария:
А можно поставить оба PHP на IIS? Я уже всю голову сломал, как это сделать.
Re: PHP & IIS
Не могу ничего об этом сказать - я живу в мире линуксов и бздей =) Правда, пробовал MS 2003 Server / IIS/ PHP4 и был весьма удручен результатом. Виндовый сервер работал медленнее более слабого сервера под управлением Fedora Core 5. На объективность не претендую. Давно это было.
Отправить комментарий