当我按照这里的教程启用 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
ScriptAlias /php5-cgi /var/http/htdocs/cgi-bin/php-cgi
应该是ScriptAlias /php5-cgi /srv/http/htdocs/cgi-bin/php-cgi
。很抱歉浪费了您的时间。你的
cgi-bin
目录和 PHP fastcgi 包装脚本的权限是什么样的?cgi-bin
根据我的经验,suEXEC 403 错误通常是因为脚本的所有者/组与目录的所有者或它上面的目录不匹配。编辑:好的。不知道这里发生了什么...新信息让我有点困惑 :-) 您是否尝试过
LogLevel Debug
在 httpd.conf 中进行设置,并在尝试在浏览器中加载 PHP 脚本时检查 error_log 中出现的内容?