作为 cgi 运行的多个 PHP 版本

作为 cgi 运行的多个 PHP 版本

我正在尝试安装 PHP 的第二个版本,以便与当前版本的 php 一起运行。我已经从 github (5.5-DEV) 编译了最新的 php 源代码,并尝试将其作为 CGI 运行。

这是我的虚拟主机配置:

<VirtualHost *:8055>
    DocumentRoot /Library/WebServer/Documents/
    ScriptAlias /cgi-bin/ /usr/local/php55/cgi

    Action php55-cgi /cgi-bin/php-cgi
    AddHandler php55-cgi .php

    <Directory /Library/WebServer/Documents/>
        Options Indexes FollowSymLinks Includes ExecCGI
        AllowOverride All
        Order Allow,Deny
        Allow from all
    </Directory>

    DirectoryIndex index.html index.php
</VirtualHost>

但是当我转到http://127.0.0.1:8055/info.php 时,出现以下错误:

禁止

You don't have permission to access /cgi-bin/php-cgi/info.php on this server

编辑

我现在正在切换

LoadModule php5_module        /usr/local/php54/libphp5.so

LoadModule php5_module        /usr/local/php55/libphp5.so

目前它可以工作,但并不理想。我希望在不同的虚拟主机上安装不同版本的 php

答案1

您需要告诉 Apache 如何处理系统的新/usr/local/php55目录。

<Directory /usr/local/php55/cgi>
    Allow from all
</Directory>

您可能需要添加额外的“/“在最后ScriptAlias分配,或者Action可能解析为

Action php55-cgi /usr/local/php55/cgiphp-cgi

因此你的 vhost 块将会被读成这样:

<VirtualHost *:8055>
    DocumentRoot /Library/WebServer/Documents/
    ScriptAlias /cgi-bin/ /usr/local/php55/cgi/

    Action php55-cgi /cgi-bin/php-cgi
    AddHandler php55-cgi .php

    <Directory /usr/local/php55/cgi>
        Allow from all
    </Directory>

    <Directory /Library/WebServer/Documents/>
        Options Indexes FollowSymLinks Includes ExecCGI
        AllowOverride All
        Order Allow,Deny
        Allow from all
    </Directory>

    DirectoryIndex index.html index.php
</VirtualHost>

相关内容