[an error occurred while processing this directive]

Установка PHP 5.2 и PHP 5.3 для одновременной работы под управлением Apache в Windows
Если у Вас установлен 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
 
20.10.2009 , Автор: Евгений Пономарев
Ключи: php, apache, windows / Лицензия: CC-BY
Раздел:    Корень / Администратору / Сетевые сервисы / WWW, Apache httpd / Редирект, mod_rewrite

[an error occurred while processing this directive]

[an error occurred while processing this directive]