Apache 2 Fast CGI php 问题

Apache 2 Fast CGI php 问题

我正在尝试将 php5.6.23 设置为我的服务器上的快速 CGI,以便使用 php7 作为主版本

但在我的一个域中,我收到此错误:

The requested URL / was not found on this server.

这是我的虚拟主机配置:

ScriptAlias / /usr/lib/cgi-bin
DocumentRoot "/home/ue4xxxx/www"

<Directory "/home/ue4xxxx/www">
        Options Indexes FollowSymLinks Includes ExecCGI
        AllowOverride All
        Order allow,deny
        Allow from all

        AddHandler php-cgi .php
        Action php-cgi /cgi-bin/php-cgi-5.6.23
        <FilesMatch "\.php*">
                SetHandler php-cgi
        </FilesMatch>
</Directory>

ErrorLog ${APACHE_LOG_DIR}/ue4/error.log
CustomLog ${APACHE_LOG_DIR}/ue4/access.log combined

我有 php cgi bin 位于/usr/lib/cgi-bin,我想使用 vhost 根目录中的文件/home/ue4xxxx/www

更新:遵循一些建议后,vhost 配置现在是:

<VirtualHost *:80>
    ServerAdmin [email protected]
    ServerName ue4-xxxx.tld
    ServerAlias ue4-xxxx.tld

        ScriptAlias /cgi-bin /usr/lib/cgi-bin
        DocumentRoot "/home/ue4xxxx/www"

        <Directory "/home/ue4xxxx/www">
                Options Indexes FollowSymLinks Includes ExecCGI
                AllowOverride All
                Order allow,deny
                Allow from all

                AddHandler php-cgi .php
                Action php-cgi /cgi-bin/php-cgi-5.6.23
                <FilesMatch "\.php">
                    SetHandler php-cgi
                </FilesMatch>
        </Directory>

    ErrorLog ${APACHE_LOG_DIR}/ue4/error.log
    CustomLog ${APACHE_LOG_DIR}/ue4/access.log combined
</VirtualHost>

进行这些更改后,我收到 404 错误:

The requested URL /cgi-bin/php-cgi-5.6.23/index.php was not found on this server

答案1

这里有一个错误:

<FilesMatch "\.php*">

“*” 是不是通配符,就像您使用的那样,但其含义是“重复上一个匹配项零次或多次”。

您应该查看 Apache 文档常用表达,并将 更改FilesMatch为:

<FilesMatch "\.php">

另外:它看起来像:

ScriptAlias / /usr/lib/cgi-bin

可能是:

ScriptAlias /cgi-bin /usr/lib/cgi-bin

您可以查看 Apache 文档ScriptAlias 指令了解更多使用细节。

相关内容