更改 Php 的处理程序名称

更改 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。如果您需要在某些特定项目 (vhost) 中使用特定 php 版本,则可以使用类似

<VirtualHost *:80>
    ServerAdmin [email protected]
    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 [email protected]
    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>

相关内容