Configuração HTTPD do CentOS Apache (403 Proibido)

8

Isto é o que eu tenho no meu httpd.conf

<VirtualHost *:80>
        ServerAdmin [email protected]
        ServerName mcmoddr.com
        ServerAlias www.mcmoddr.com
        DocumentRoot /home/mcmoddr/www/
        ErrorLog /mcmoddr/logs/error.log
        CustomLog /mcmoddr/logs/accesslog combined
</VirtualHost>

Ao visitar o site, recebo um erro 403 Proibido, Os arquivos são adicionados com vsftpd e possuem as permissões drwxr-xr-x

Patt-tom McDonnell
fonte

Respostas:

12

Você está usando uma instalação de estoque do CentOS; se estiver correto, verifique se o SELinux está no modo de imposição

getenforce

se o resultado for "Execução"

temporariamente alterá-lo para permissivo

setenforce 0

e tente novamente, você também pode orientar a condição do conteúdo da web para os arquivos no diretório inicial.

Freaktor
fonte
Isso fez o truque no meu caso. Porém, se subsequentemente reforçar novamente (com o setenforce 1 ) o erro 403 não aparecerá mais, mesmo que a configuração seja a mesma de antes, quando costumava aparecer.
damix911
isso nada mais é do que um truque sujo. Certamente não é a maneira correta de simplesmente desativar os recursos de segurança. Você deve configurá-los.
The Fool
9

Desative o SELinux ou execute no ROOT

setsebool -P httpd_enable_homedirs on
chcon -R -t httpd_sys_content_t /home/
chcon -R -t httpd_sys_rw_content_t /home/
IgoRRius
fonte
5

A resposta do Freaktor de 'setenforce 0' funcionou para mim (obrigado!)

Mas, para mantê-lo funcionando e reativar o SELinux, eu precisava

sudo chcon -Rv --type=httpd_t /path/to/my/files

... isso deu ao meu diretório e a todos os arquivos e diretórios nele o contexto de segurança do "httpd_t", que é uma maneira desajeitada de dizer que o SELinux permite que o httpd leia esses arquivos.

ativar o selinux novamente foi tão simples quanto

setenforce 1
jg3
fonte
2
Isso é apenas temporário; todos os novos arquivos criados terão seu contexto original e o SELinux ainda negará o acesso aos novos arquivos. Para uma solução permanente, consulte esta resposta .
Michael Hampton
3

Você provavelmente tem uma negação em algum lugar da configuração global. Tente adicionar isso à estrofe do vhost:

<Directory /home/mcmoddr/www>
  Order allow,deny
  Allow from all
</Directory>
Alex Howansky
fonte
+1, também @ Spero78 deve fazer arquivo certeza não .htaccess está na raiz do seu vhost com as diretrizes restritivas
0

você precisa usar o <Directory>contêiner como mencionado acima.

E, em seguida, você precisa verificar no seu DocumentRootcaminho, Cada diretório deve ter permissão de leitura para que o usuário do serviço apache possa acessar.

você pode verificar usando ls -ld

user533968
fonte
-1

Por favor, adicione a linha abaixo no seu código existente.

restorecon -r /home/mcmoddr/www/

Deve corrigir o seu problema.

Niranjay singh
fonte