我正在尝试安装 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.ph
p 时,出现以下错误:
禁止
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>