任何时候当我尝试访问一个PHP文件时,我都会从Apache获得403访问被拒绝的错误。 HTML文件和文本文件工作正常。 我已经玩过了我能想到的PHP文件(从644到777)的所有可能的权限组合。不会改变任何东西。
我也玩FCGI包装和父文件夹的权限。 用o + x(777,775,773,771),我在浏览器中得到这个:
访问被禁止!
您无权访问请求的对象。 它是读取保护的或不可读的服务器。
…这在虚拟主机错误日志中:
客户端被服务器configuration拒绝:/ srv / www / hostname / fcgid-bin / php-fcgid-wrapper
用牛(776,774,772,770或以下),我在浏览器中得到这个:
被禁止
您无权访问此服务器上的/fcgid-bin/php-fcgid-wrapper/index.php。
此外,尝试使用ErrorDocument处理请求时遇到403禁止错误。
…这在日志中:
(13)权限被拒绝:访问/fcgid-bin/php-fcgid-wrapper/index.php被拒绝
这真是令人难以置信的看到,因为我的设置工作正常,直到我开始得到这个,我不知道我可能会做什么来改变这一点。 /usr/bin/php-cgi和wrapper都可以在直接调用完全相同的input文件时正常工作。
这是我的虚拟主机configuration:
<VirtualHost *:80> ServerAdmin [email protected] DocumentRoot "/srv/www/hostname/public/" ServerName hostname.com ServerAlias www.hostname.com SuexecUserGroup hostname hostname ErrorLog "/srv/www/hostname/logs/error.log" LogLevel debug CustomLog "/srv/www/hostname/logs/access.log" combined <Directory /srv/www/hostname/public> Order allow,deny Allow from all </Directory> # http://www.linode.com/forums/viewtopic.php?t=2982 <IfModule !mod_php5.c> <IfModule !mod_php5_filter.c> <IfModule !mod_php5_hooks.c> <IfModule mod_actions.c> <IfModule mod_alias.c> <IfModule mod_mime.c> <IfModule mod_fcgid.c> AddHandler php-fcgi .php Action php-fcgi /fcgid-bin/php-fcgid-wrapper Alias /fcgid-bin/ /srv/www/hostname/fcgid-bin/ <Location /fcgid-bin/> SetHandler fcgid-script Options +ExecCGI </Location> ReWriteEngine On ReWriteRule ^/fcgid-bin/[^/]*$ / [PT] </IfModule> </IfModule> </IfModule> </IfModule> </IfModule> </IfModule> </IfModule> </VirtualHost>
<Directory /srv/www/hostname/public> Order allow,deny Allow from all </Directory>
那不包括/srv/www/hostname/fcgid-bin/ ; 假设没有Allow应用到你的configuration中的其他地方,这是问题所在。 你需要Allow访问这个位置。