Если у Вас установлен Apache, то сделайте сперва копию папки установленной
программы и аналогично для PHP.
1. Сначала удаляем все, что связано с установками Apache и PHP из реестра.
(панель управления->установка удаление программ (в XP) панель
управления->программы и компоненты (Vista и windows7) удаляем Apache и PHP)
2. Ставим два Apache в разные папки (из копии, не инсталятором .msi). Если нет
копии, то пользуемся инсталлятором apache_2.2.14-win32-x86-no_ssl.msi,
делаем копию установленной программы и снова ее удаляем.
Создаем две папки (например D:\usr\apache22 и D:\usr\apache253) и копируем туда
наш апач. Один Apache настраиваем на порт 8080 (главное не 80), второй на 8088.
Правим httpd.conf, указав правильные пути для корня серверов, каждый для своей
папки и указываем соответствующие порты для прослушивания.
3. Устанавливаем каждый Apache как сервис.
из командной строки:
httpd -n apache22 -k install - под этот апач поставим PHP 5.2
httpd -n apache253 -k install - под этот апач поставим PHP 5.3
4. Ставим PHP 5.2 в папку php (например D:\usr\php) из архива, а PHP 5.3 в
папку php53 (например D:\usr\php53) из архива (обращайте внимание на версии
PHP, они есть и x64, выбирайте необходимую Вам).
5. Прописываем в httpd.conf модули подключения PHP
LoadModule php5_module "D:/usr/local/php53/php5apache2_2.dll"
PHPIniDir "D:/usr/local/php53"
AddType application/x-httpd-php .php
Запускаем Apache. Можно монитором из папки bin ApacheMonitor.exe
или из командной строки:
httpd -n apache22 -k start
httpd -n apache253 -k start
Если Apache при запуске выдал ошибку, не связанную с синтаксисом
(неопознанную), копируем php5ts.dll из директории php в папку apache/bin.
Если в реестре не осталось упоминаний о PHP, то все заработает. Если не
запустилось, проверьте переменные окружения windows на PHPRC. Их не должно быть.
В windows 7 все запустилось без проблем.
6. Теперь для удобства, можно поставить nginx, изменив его конфигурацию
примерно так:
server {
listen *:80;
server_name site.ru;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
server {
listen *:80;
server_name site53.ru;
location / {
proxy_pass http://127.0.0.1:8088;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
Теперь просто можно тестировать обе версии PHP.
На site.ru - ответит apache c PHP 5.2, а на site53.ru - apache PHP 5.3
|