Изменение имени обработчика 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 для этих двух строк, и вот что я нашел:

Было бы безопасно заменить эти строки новым именем обработчика и номером версии, или есть более широко используемый (или фактически задокументированный) способ изменить имя обработчика?

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>
Другие вопросы по тегам