Configuration HTTPD de CentOS Apache (403 interdit)


8

C'est ce que j'ai dans mon 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>

Lorsque je visite le site Web, j'obtiens une erreur interdite 403, les fichiers sont ajoutés avec vsftpd et ont les autorisations drwxr-xr-x

Réponses:


12

Vous utilisez une installation standard de CentOS, si cela est correct, vérifiez que si SELinux est en mode Enforcing

getenforce

si le résultat est "Enforcing"

le changer temporairement en permissif

setenforce 0

et réessayez, vous pouvez également guider l'état du contenu Web vers les fichiers de votre répertoire personnel.


Cela a fait l'affaire dans mon cas. Mais si je renforce par la suite (avec setenforce 1 ), l'erreur 403 n'apparaît plus, même si la configuration est la même qu'avant, quand elle apparaissait auparavant.
damix911

ce n'est rien de plus qu'un hack sale. Ce n'est certainement pas la bonne façon de désactiver simplement les fonctions de sécurité. Vous devez plutôt les configurer.
The Fool

9

Désactiver SELinux ou exécuter dans 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

La réponse de Freaktor sur 'setenforce 0' a "fonctionné" pour moi (merci!)

Mais pour le faire fonctionner et réactiver SELinux, je devais

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

... cela a donné à mon répertoire et à tous les fichiers et répertoires qu'il contient le contexte de sécurité de "httpd_t" qui est une façon maladroite de dire que SELinux a laissé httpd lire ces fichiers.

l'activation de selinux était aussi simple que

setenforce 1

2
C'est juste temporaire; tout nouveau fichier que vous créez aurait son contexte d'origine et SELinux refuserait toujours l'accès aux nouveaux fichiers. Pour une solution permanente, consultez cette réponse .
Michael Hampton

3

Vous avez probablement un refus tout quelque part dans la configuration globale. Essayez d'ajouter ceci à la strophe vhost:

<Directory /home/mcmoddr/www>
  Order allow,deny
  Allow from all
</Directory>

+1, Aussi @ Spero78 devrait s'assurer qu'aucun fichier .htaccess n'est à la racine de votre vhost avec des directives restrictives

0

vous devez utiliser le <Directory>conteneur comme indiqué ci-dessus.

Et puis vous devez vérifier à partir de votre DocumentRootchemin, chaque répertoire doit avoir une autorisation de lecture pour que l'utilisateur du service apache puisse y accéder.

vous pouvez vérifier en utilisant ls -ld


-1

Veuillez ajouter la ligne ci-dessous dans votre code existant.

restorecon -r /home/mcmoddr/www/

Cela devrait résoudre votre problème.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.