PHP4+PHP5+Apache - совсем запутался

frk

Новичок
PHP4+PHP5+Apache - совсем запутался

Hi,
на серваке стоит PHP4 как модуль апача,
PHP5 решил подключить к апачу через mod_fastcgi
при этом PHP5 скомпилил и установил как cgi (т.е. с флагами --enable-cgi --enable-fastcgi --enable-force-cgi-redirect)
после настройки fastcgi (создал директорию, в которой будут лежать скрипты *.php) и перезапуска апача оказалось, что вместо PHP5-го выполняется PHP4 (т.е. mod_php4 был загружен).
в мануале сказано, что mod_php не должен загружаться одновременно с mod_fastcgi, но тогда, применимо к моей схеме (PHP4 - модуль апача, PHP5 - через fastcgi) PHP4 работать не будет....т.к. mod_php я отключаю (согласно мануалу), а я хочу одновременно использовать обе версии PHP!

Объясните пожалуйста как реализовать эту схему
!?

Еще нашел инфу, в которой говорилось о возможности работы PHP4 и PHP5 как модулей апача одновременно, при этом писали о том, что решение о том, какой версией PHP-интерпретатором производить обработку будет приниматься согласно с расширением файлов, напрмер *.php4 - PHP4, *.php5 - PHP5
можете объяснить как реализовать эту схему....в чем преимущества или недостатки работы в отличии от первой схемы (mod_php, mod_fastcgi)

спасибо.
 

camka

не самка
можно заставить пхп5 работать в режиме четверки. смотри директиву zend.ze1_compatibility_mode.
 

frk

Новичок
Автор оригинала: camka
можно заставить пхп5 работать в режиме четверки. смотри директиву zend.ze1_compatibility_mode.
большое спасибо, еще раз убеждаюсь в том, что нужно почаще (и повнимательнее) читать мануал:)

но, тем не менее, хотелось бы узнать решение первого вопроса
 

frk

Новичок
Автор оригинала: Steamroller
Странно, в чем проблема?
По отдельности ты разобрался, как пускать скрипты в режиме fcgi?
да,
а проблема в том, что когда я загружаю еще и mod_php, скрипты через mod_fastcgi начинает обрабатывать 4-ка, а не 5-ка....а хотелось бы что б было наоборот (5-ка через mod_fastcgi, 4-ка через mod_php)
 

Steamroller

Новичок
Что-то странно как-то.
У тебя mod_php - 4-й версии, которой скомпилил.
Бинарь php-fcgi - пятой.
То есть это не 4-ка скрипты через fastcgi обрабатывает, а вообще она все скрипты обрабатывает, а fastcgi - не используется.

Ты глобально сделал AddType application/x-httpd-php .php ? Или только там, где скрипты на php4?
 

frk

Новичок
Автор оригинала: Steamroller
Что-то странно как-то.
У тебя mod_php - 4-й версии, которой скомпилил.
Бинарь php-fcgi - пятой.
То есть это не 4-ка скрипты через fastcgi обрабатывает, а вообще она все скрипты обрабатывает, а fastcgi - не используется.
ясно, буду пробовать
Ты глобально сделал AddType application/x-httpd-php .php ? Или только там, где скрипты на php4?
угу, так и есть, глобально
 

Steamroller

Новичок
угу, так и есть, глобально
Ну значит надо для той <Directory ...>, где ты скрипты на 5-й версии хочешь пускать - вписать
AddType application/x-httpd-fastphp .php
Action application/x-httpd-fastphp /fcgi-bin/php
А уже на глобальном уровне - задать алиас /fcgi-bin/, и поднять (если надо) статически fcgi-сервер.
 

frk

Новичок
Автор оригинала: Steamroller
Ну значит надо для той <Directory ...>, где ты скрипты на 5-й версии хочешь пускать - вписать
AddType application/x-httpd-fastphp .php
Action application/x-httpd-fastphp /fcgi-bin/php
угу
А уже на глобальном уровне - задать алиас /fcgi-bin/, и поднять (если надо) статически fcgi-сервер.
many thanks!:)

-~{}~ 17.10.05 04:41:

В общем то .... заработало!
теперь php4 (mod_php) и php5 (mod_fastcgi) работают вместе!
вот директивы моего апача для mod_fastcgi+php5_cgi:

конфигурация 1):
-------------------
PHP:
LoadModule fastcgi_module      modules/mod_fastcgi.so
<IfModule mod_fastcgi.c>
    Alias /cgi/ /web/fcgi-bin/
    FastCgiServer /web/fcgi-bin/php
    AddHandler php-fastcgi .php5
    Action php-fastcgi /cgi/php
    <Directory /cgi/php>
        SetHandler fastcgi-script
    </Directory>
</IfModule>
конфигурация 2):
-------------------
PHP:
LoadModule fastcgi_module      modules/mod_fastcgi.so
<IfModule mod_fastcgi.c>
    Alias /cgi/ /web/fcgi-bin/
    FastCgiServer /web/fcgi-bin/php
    AddHandler application/x-httpd-fastphp .php .php5
    Action application/x-httpd-fastphp /cgi/php
    <Directory /cgi/php>
        SetHandler fastcgi-script
    </Directory>
</IfModule>
при этом в первом варианте обрабатываются только файлы *.php5, во втором - все гораздо лучше:)
в этих конфигурациях необходимо сделать жесткую ссылку на php-cgi или скопировать сам бинарник, но при выполнении запроса:
http_://example.com/cgi/php
получается, что php-cgi начинает интерпретировать сам себя, с последующей выдачей кучи ошибок, а это уже фигово!

как с этим справиться? не подскажете?
 

Scud

Новичок
А если mod_rewrite'ом такие пути переписывать, на что-нибудь безобидное?
 
Сверху