sous Apache sous Ubuntu, j'ai configuré un vhost, mais dans le navigateur, l'erreur «403 Accès interdit» est générée. le journal indique " Client refusé par la configuration du serveur: / home / remix / ".
À la recherche de la solution en ligne, j’ai trouvé de nombreux articles sur l’accès au répertoire (Autoriser de tout, etc.), mais pour autant que je sache, j’avais déjà fait cela. Dans httpd-vhosts.conf il y a le code suivant:
NameVirtualHost *:80
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot "/opt/lampp/htdocs/"
ServerName localhost
ServerAlias localhost
ErrorLog "logs/dummy-host.example.com-error_log"
CustomLog "logs/dummy-host.example.com-access_log" common
</VirtualHost>
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot "/home/remix/"
ServerName testproject
ServerAlias testproject
<Directory "/home/remix/">
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
J'ai aussi ajouté
127.0.0.1 testproject
dans le fichier / etc / hosts.
De plus, le dossier / home / remix / contient un fichier index.html et les hôtes virtuels sont activés dans httpd.conf.
Y a-t-il quelque chose que je ne vois pas?
Edit: Ceci est l'entrée Apache error_log:
[Sat Aug 18 09:15:32.666938 2012] [authz_core:error] [pid 6587]
[client 127.0.0.1:38873] AH01630: client denied by server configuration: /home/remix/
Réponses:
Changez votre configuration d'autorisation:
... à la version Apache 2.4 de la même chose.
Consultez le document de présentation de la mise à niveau pour obtenir des informations sur les autres modifications à apporter. Notez que la plupart des exemples de configuration et de l'aide que vous trouvez sur Google (ainsi que sur ce site) font référence à 2.2.
la source
Vérifiez les autorisations sur le répertoire. Je parierais qu'il est prévu de refuser l'accès à quiconque sauf vous-même, par exemple:
Si vous voyez
drwx------
exactement, alors c'est le cas. Corrigez-le en exécutant:la source
Assurez-vous que l'utilisateur qui exécute le
httpd
service a accès à ces répertoires.la source
User
param."client refusé par la configuration du serveur" signifie que le serveur Linux lui-même interdit l'accès au fichier, pas Apache.
Si la fourniture d'un accès par le biais de modifications des autorisations / de la propriété / du groupe ne résout pas le problème, la cause de la route peut être SELinux qui interdit l'accès à tout dossier ne disposant pas du contexte SE Linux approprié, comme expliqué dans la section "Déplacement d'un Apache DocumentRoot sous Selinux" .
setenforce 0
rendant le fichier accessiblesetenforce 0
rend à nouveau le fichier inaccessibleEnsuite, SELinux interdit l'accès, quelles que soient les autorisations de fichier.
la source
Un autre problème simple (mais difficile à comprendre) qui pourrait causer ce problème aux utilisateurs est que les répertoires des utilisateurs ne se trouvent pas dans / home / *. Mais ailleurs, par exemple / nethome / *
Le userdir.conf fourni contient quelque chose comme ceci: (mais avec Userdir: désactivé)
La spécification Directory suppose ~ user == / home / user. Il suffit de modifier ou d’ajouter une spécification d’annuaire pour savoir où se trouvent réellement les répertoires personnels des utilisateurs.
Jolie d'évidence mais m'a pris un certain temps à comprendre !! :-P DUH!
Par exemple, ~ utilisateur == / nethome / user
Voir aussi les autorisations plus ouvertes sur ce répertoire en général.
la source