Apache-2.2

作為 cgi 執行的多個 PHP 版本

  • October 29, 2012

我正在嘗試安裝 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

您需要告訴 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>

引用自:https://serverfault.com/questions/442188