当我按照以下方式启用 suEXEC 时教程在这里,我能够让 PHP 在 cgi 模式下通过 Apache 运行,但是当我开始尝试使用 suEXEC 时,我得到了 403,并且错误日志中出现以下错误“服务器配置拒绝客户端”。 suEXEC 日志是空的。我该如何让它工作?我的最终目标是使用 suexec 运行 fastcgi,这个错误让我每次都无法成功。
httpd.conf 的相关部分:
ScriptAlias /php5-cgi /usr/bin/php-cgi
Action php5-cgi /php5-cgi
AddHandler php5-cgi .php
<Directory /usr/bin>
Order allow,deny
Allow from all
</Directory>
<VirtualHost *:80>
ServerName skylords.com
ServerAlias www.skylords.com en.skylords.com lt.skylords.com nl.skylords.com
DocumentRoot /srv/http/htdocs
SuexecUserGroup skylords skylords
AddHandler php5-cgi .php
ScriptAlias /php5-cgi /var/http/htdocs/cgi-bin/php-cgi
ErrorDocument 404 /srv/http/htdocs
ErrorLog /srv/http/logs/apache_error.log
<Directory "/srv/http/htdocs">
AllowOverride All
Order allow,deny
Allow from all
Options Indexes +FollowSymLinks +ExecCGI
</Directory>
</VirtualHost>
文件权限:
-rwxr-xr-x 1 skylords skylords 7207288 Apr 1 06:00 php-cgi
drwxr-xr-x 2 skylords skylords 4096 Apr 1 06:13 cgi-bin
drwxr-xr-x 17 skylords skylords 4096 Apr 1 06:19 htdocs
drwxr-xr-x 11 skylords skylords 4096 Apr 1 06:13 http
drwxr-xr-x 4 root root 4096 Apr 1 05:57 srv
答案1
您的目录和 PHP fastcgi 包装器脚本的权限是什么cgi-bin
样的?根据我的经验,suEXEC 403 错误通常是因为脚本的所有者/组与目录的所有者cgi-bin
或其上级目录不匹配。
编辑:好的。不确定这里发生了什么……新信息让我有点困惑 :-) 您是否尝试过LogLevel Debug
在 httpd.conf 中进行设置,并检查在浏览器中尝试加载 PHP 脚本时 error_log 中出现了什么内容?
答案2
ScriptAlias /php5-cgi /var/http/htdocs/cgi-bin/php-cgi
应该是ScriptAlias /php5-cgi /srv/http/htdocs/cgi-bin/php-cgi
。很抱歉浪费了你的时间。