Изменение имени обработчика Php
На моем сервере Apache я хотел бы запускать несколько версий PHP одновременно, чтобы я мог легко переключаться между ними в зависимости от потребностей проекта. Я заметил, что некоторые провайдеры виртуального хостинга, которые предлагают несколько версий PHP, требуют, чтобы вы указали версию PHP, которая вам нужна в вашем .htaccess
:
AddHandler application/x-httpd-php5 .php
Я хотел бы реализовать что-то вроде этого на моем сервере, чтобы я мог легко переключать версии PHP:
AddHandler application/xhttpd-php53 .php
# .. or ..
AddHandler application/xhttpd-php54 .php
# .. or ..
AddHandler application/xhttpd-php55 .php
Однако все версии PHP, которые я скомпилировал, имеют обработчик с именем application/xhttpd-php
или же php5-script
, Я пытался найти ./configure
флаг, позволяющий изменить имена этих обработчиков, но ничего не появилось.
Я искал репозиторий PHP github для этих двух строк, и вот что я нашел:
/sapi/apache2filter/sapi_apache2.c
( Строки 666-668)/sapi/apache2handler/sapi_apache2.c
( Строки 68-70)/main/php.h
( Строка 242)/sapi/apache/mod_php5.c
( Строка 979)/sapi/apache_hooks/mod_php5.c
( Строка 1408)
Было бы безопасно заменить эти строки новым именем обработчика и номером версии, или есть более широко используемый (или фактически задокументированный) способ изменить имя обработчика?
1 ответ
Вы можете использовать одну из версий php как модуль, а другую версию как cgi. Если вам нужно использовать конкретную версию php в каком-то конкретном проекте (vhost), вы можете использовать что-то вроде
<VirtualHost *:80>
ServerAdmin webmaster@example.net
DocumentRoot /vhosts/php55.example.net/
ServerName php55.example.net
ScriptAlias /php-fastcgi/ /usr/local/php-5.5.1/bin/
AddHandler php-fastcgi .php
AddType application/x-httpd-php .php
Action php-fastcgi /php-fastcgi/php-cgi
<Directory /vhosts/php55.example.net>
DirectoryIndex index.php
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerAdmin webmaster@example.net
DocumentRoot /vhosts/php54.example.net/
ServerName php54.example.net
ScriptAlias /php-fastcgi/ /usr/local/php-5.4.17/bin/
AddHandler php-fastcgi .php
AddType application/x-httpd-php .php
Action php-fastcgi /php-fastcgi/php-cgi
<Directory /vhosts/php54.example.net>
DirectoryIndex index.php
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>