Configuration HTTPD de CentOS Apache (403 interdit)

8

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

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

Patt-tom McDonnell
la source

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.

Freaktor
la source
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/
IgoRRius
la source
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
jg3
la source
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>
Alex Howansky
la source
+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

user533968
la source
-1

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

restorecon -r /home/mcmoddr/www/

Cela devrait résoudre votre problème.

Niranjay singh
la source