Primeiro, verifique se a conta de usuário que o Apache está executando tem acesso à sua pasta website
(também será necessário acessar transversalmente todas as pastas acima dela no caminho):
ps aux | grep httpd
Você deve ver linhas como:
apache 1336 0.0 1.1 282772 6008 ? S 03:24 0:00 /usr/sbin/httpd
apache 1338 0.0 1.1 282772 6008 ? S 03:24 0:00 /usr/sbin/httpd
A primeira coluna é a conta de usuário que precisa ter acesso às suas pastas.
Se tudo isso parece bom, verifique se você está executando o SELinux. Em caso afirmativo, o diretório /var/website
provavelmente ainda está no contexto default_t
security. Verifique com:
ls -Z /var/website
Você provavelmente verá algo assim:
drwxr-xr-x root root user_u:object_r:default_t website
Nesse caso, você pode alterar o contexto de segurança com o comando chcon
:
chcon -Rv --type=httpd_sys_content_t /var/website
Alternativamente, você pode desativar o SELinux para o Apache (como root):
- Edite
/etc/selinux/targeted/booleans
e definahttpd_disable_trans
igual a 1. - Execute
setsebool httpd_disable_trans 1
para garantir que o valor booleano esteja definido para sua sessão atual. - Reinicie o apache com
service httpd restart
.
Ou, se este é um servidor de desenvolvimento e você não se preocupa em executar o SELinux, você pode efetivamente desativá-lo configurando-o para o modo "permissivo" (como root):
- Edite
/etc/selinux/config
e definaSELINUX
igual apermissive
. - Reinicialize.
- Execute
getenforce
para verificar se o SELinux está no modo permissivo.
No seu caso, o problema é esta linha:
[root@srv2 website]# ls -la
total 17536
drwx------ 10 kvdp kvdp 4096 Nov 26 23:01 .
Isso significa que somente sua conta de usuário ( kvdp
) tem acesso à pasta. Execute o seguinte comando na sua pasta /var/website
para corrigir a situação:
chmod go+rx .