使用 CGI 在 PHP 5.3 上运行单个 Apache Vhost,其他站点在 Apache 模块上使用 PHP 5.2

使用 CGI 在 PHP 5.3 上运行单个 Apache Vhost,其他站点在 Apache 模块上使用 PHP 5.2

我一直在尝试使用 PHP 5.3.14 设置我的开发服务器,以便通过 CGI 为我的一个 Apache 虚拟主机提供服务。

我设置的 Apache 服务器是 Apache 2.2.3,其中 PHP 5.2.10 作为 Apache 模块运行。操作系统是 CentOS 5.5。其中一个网站使用仅在 PHP 5.3 中可用的功能,而我的网站需要 5.2,因此我只想通过 CGI 运行需要 PHP 5.3 的网站。

我按照几个教程操作,直到安装好 Apache/PHP 5.2 并作为模块运行为止。我还成功下载并编译了 PHP 5.3.14,直到构建好 php-5.3.14/sapi/cgi/php-cgi 可执行文件并准备就绪为止。如果我使用脚本运行它,它会正常工作。但是,在向 VirtualHost 添加了我认为正确的指令后,该网站仍然没有使用 PHP 5.3,它继续工作,使用 PHP 5.2(设置为 Apache 模块的版本)。

这是我的 Vhost 配置:

<VirtualHost *:80>
 ServerName utfl.peapoddev.com
 ServerAlias elegal.utfl.peapoddev.com subsite.utfl.peapoddev.com library.utfl.peapoddev.com
 DocumentRoot /var/www/utfl/drupal
 DirectoryIndex index.html index.php

 SetEnv PHPRC /var/www/cgi-bin/php_5_3_14/
 ScriptAlias /php-5-3-14/ /var/www/cgi-bin/php_5_3_14/
 Action application/x-httpd-php-5-3-14 /php-5-3-14/php-cgi
 AddType application/x-httpd-php-5-3-14 .php .inc
 <Directory "/var/www/cgi-bin/php_5_3_14">
   <Files "php-cgi">
     Allow from all
   </Files>
 </Directory>

 <Directory "/var/www/utfl/drupal">
   Options Indexes Includes FollowSymLinks
   AllowOverride None
   Order allow,deny
   Allow from all
   AllowOverride All
 </Directory>

 LogLevel Debug
 ErrorLog /var/www/utfl/logs/error_log
 CustomLog /var/www/utfl/logs/access_log combined

如果您需要更多信息,请告诉我。我做错了什么?

答案1

我在 CentOS-5.9 上使用以下配置

<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot /vhosts/php53.example.net/
    ServerName php53.example.net

    ScriptAlias /php-fastcgi/ /usr/local/php-5.3.26/bin/

    AddHandler php-fastcgi .php
    AddType application/x-httpd-php .php
    Action php-fastcgi /php-fastcgi/php-cgi

    <Directory /vhosts/php53.example.net/>
        DirectoryIndex index.php
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot /vhosts/php52.example.net/
    ServerName php52.example.net

    <Directory /vhosts/php52.example.net/>
        DirectoryIndex index.php
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

php-5.3 配置了以下选项

# # ./configure --prefix=/usr/local/php-5.3.26/ --enable-force-cgi-redirect --enable-pcntl --with-imap=shared --with-imap-ssl --enable-mbstring=shared --enable-mbregex --with-gd=shared --enable-bcmath=shared --enable-dba=shared --with-db4=/usr --with-xmlrpc=shared --with-ldap=shared --with-ldap-sasl --with-mysql=shared,/usr --with-mysqli=shared --enable-dom=shared --with-pgsql=shared --enable-wddx=shared --with-snmp=shared,/usr --enable-soap=shared --with-xsl=shared,/usr --enable-xmlreader=shared --enable-xmlwriter=shared --with-curl=shared,/usr --enable-fastcgi --enable-pdo=shared --with-pdo-odbc=shared,unixODBC,/usr --with-pdo-mysql=shared --with-pdo-pgsql=shared,/usr --with-pdo-sqlite=shared,/usr --with-pdo-dblib=shared,/usr --enable-json=shared --enable-zip=shared --without-readline --with-libedit --with-pspell=shared --enable-phar=shared --with-mcrypt=shared,/usr --with-tidy=shared,/usr --with-mssql=shared,/usr --enable-sysvmsg=shared --enable-sysvshm=shared --enable-sysvsem=shared --enable-posix=shared --with-unixODBC=shared,/usr --enable-fileinfo=shared --enable-intl=shared --with-icu-dir=/usr --with-enchant=shared,/usr --with-libdir=lib64 --with-kerberos --with-sqlite=shared

相关内容