- Apache HTTP Server 2.2.21 com VirtualHosts sob SuExec
- PHP 5.3.8 via fcgid
- Arch Linux 2011.08.19
Estou recebendo 403 erros de acesso negado do Apache sempre que tento acessar um arquivo PHP. Arquivos HTML e arquivos de texto funcionam bem. Eu joguei com todas as combinações possíveis de permissões nos arquivos PHP que eu posso imaginar, do 644 ao 777. Não muda nada.
Eu também joguei com as permissões no wrapper FCGI e na pasta pai. Com o + x (777, 775, 773, 771), recebo isso no navegador:
Access forbidden!
You don't have permission to access the requested object. It is either
read-protected or not readable by the server.
… e isso no log de erros do vhost:
client denied by server configuration: /srv/www/hostname/fcgid-bin/php-fcgid-wrapper
Com o-x (776, 774, 772, 770 ou inferior), recebo isso no navegador:
Forbidden
You don't have permission to access
/fcgid-bin/php-fcgid-wrapper/index.php on this server.
Additionally, a 403 Forbidden error was encountered while trying to
use an ErrorDocument to handle the request.
… e isso no log:
(13)Permission denied: access to /fcgid-bin/php-fcgid-wrapper/index.php denied
Isso é realmente incompreensível, já que minha configuração estava funcionando bem até eu começar a entender isso e não sei o que eu poderia ter feito para mudar isso. /usr/bin/php-cgi
e o wrapper funcionam bem com os mesmos arquivos de entrada quando chamados diretamente.
Aqui está minha configuração vhost:
<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>