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


8

Isto é o que eu tenho no meu httpd.conf

<VirtualHost *:80>
        ServerAdmin spero78@spero78.com
        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

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.


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/

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

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>

+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


-1

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

restorecon -r /home/mcmoddr/www/

Deve corrigir o seu problema.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.