J'essaie de configurer un alias pour qu'il pointe vers un répertoire sur mon système de fichiers, pas dans DocumentRoot Maintenant, je reçois une réponse 403 Forbidden. Voici les étapes suivies: 1. éditez http.conf, en ajoutant:
Alias /example "/Users/user/Documents/example"
puis...
<Directory "/Users/user/Documents/example">
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
Allow from all</Directory>
2. configuration des autorisations avec chmod dans le terminal:
chmod 755 /Users/user/Documents/example
Maintenant ça devrait marcher? à la place, l'accès est interdit. Voici le résultat de error_log:
[Sun Jul 24 06:57:57 2011] [error] [client xx.xx.xx.xx] (13)Permission denied: access to /example denied
J'avais aussi ce problème sous OS X. Il s'est avéré que gliptak avait raison, mais j'ai encore quelques détails à ajouter.
Nous essayons tous les deux de configurer un répertoire virtuel pour un dossier situé dans le dossier personnel de l'utilisateur. Je pense que c'est pourquoi nous avons le problème. Dans mon cas, j'avais la configuration suivante:
/Users/calrion
./Users/calrion/Path/to/www
./Users/calrion/Path
pointant vers /Volumes/Other/Users/calrion/Path
.Le problème était que l'utilisateur et le groupe _www
(qu'Apache exécute sous OS X) ne disposaient pas d'un accès d'exécution à /Users/calrion
et /Volumes/Other/Users/calrion
.
L'exécution de chmod o+x /Users/calrion
et chmod o+x /Volumes/Other/Users/calrion
a résolu le problème (sous OS X 10.7.4).
La règle ici est que Apache requiert un accès en exécution aux tous dossiers du chemin pour pouvoir servir les fichiers. Sans cela, vous obtiendrez un HTTP 403 (interdit).
La dernière paille;) Requis local dans l'entrée de répertoire ...
comme
<Directory "/Users/user/Documents/example">
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require local
Order allow,deny
Allow from all
</Directory>
si tout le reste ne fonctionne pas (alias correct, entrée de répertoire dans httpd.conf et mod/usr/grp correct).
n'oubliez pas que si vous placez votre site dans l'espace utilisateur, l'utilisateur Apache (exécutant httpd) doit pouvoir accéder à votre domicile!
Ce sont toutes de très bonnes réponses… .. Aucune d’entre elles n’a fonctionné pour moi.
J'ai un alias spécifié dans le serveur OSX pointant vers un répertoire d'utilisateurs. J'ai passé beaucoup de temps à modifier et à bricoler l'utilisateur _www, à ajouter des autorisations exécutables de manière récursive, à désinstaller Macports et toutes sortes de choses qui tentaient de le faire fonctionner. J'ai essayé 777. Nope. Aucune idée pourquoi cela ne fonctionnait pas.
Finalement, je viens de cocher la case "dossier partagé" dans le Finder pour ce dossier, et cela fonctionnait, sur le domaine spécifié, avec php actif, comme je le voulais. :/... donc c'était facile.
Vérifiez l'autorisation sur /Users/user/Documents/
, /Users/user/
(les autorisations de niveau supérieur sont appliquées en premier ...)
/bin/su
dans l'utilisateur exécutant Apache (comme www, www-data) et cat
un fichier dans le répertoire /Users/user/Documents/example
. Cela pourrait vous indiquer des problèmes d’autorisation avec votre configuration.
Je venais d'avoir exactement le même problème. Ce que j'ai trouvé, c'est que SE_Linux était activé et que le contexte de sécurité des fichiers de mon répertoire Alias était incorrect. Httpd_sys_content_t manquait.
Vous pouvez afficher le contexte de sécurité avec ls -Z
. Si vos fichiers/dossiers n'ont pas httpd_sys_content_t, Apache ne les servira pas! Vous pouvez ajouter le contexte approprié avec quelque chose comme chcon -R --type=httpd_sys_content_t /new_html_directory
. Cela modifiera le contexte des fichiers actuellement dans le répertoire, mais pas ceux ajoutés ultérieurement (pour cela, vous devrez travailler avec semanage). Votre autre option est de simplement laisser les fichiers sous/var/www.
Après avoir perdu beaucoup de temps, j'ai résolu le problème et je voulais partager pour vous faire gagner du temps.
Tous les gentelmen ci-dessus et sur d'autres postes ont des parties correctes dans leurs réponses mais en dessous est la somme
Dans votre fichier "/etc/Apache2/httpd.conf":
1- changer la racine de votre document
Original: DocumentRoot "/Library/WebServer/Documents"
Change to: DocumentRoot "/Users/yourname/www"
2- changement
Original:
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
</Directory>
Changer en:
<Directory /Users/yourname/www>
Options FollowSymLinks Includes ExecCGI
AllowOverride None
Order deny,allow
Deny from all
</Directory>
3- Changement:
Original:
<Directory "/Library/WebServer/Documents">
Changer en:
<Directory "/Users/yourname/www">
4- Enfin, vous n’aurez peut-être pas besoin de cette étape si vous êtes l’utilisateur du dîner, c’est pour définir la bonne permission sur votre nouveau dossier racine.
chmod 755 /Users/yourname/www
J'espère que cela aidera
SELinux était le coupable pour moi. Si vous rencontrez ce problème sur une boîte Linux et que les autorisations de votre alias et de votre fichier sont correctes, essayez de définir "setenforce 0" pour mettre SELinux en mode permissif. Cela a fait le tour pour moi.
Solution rapide:
Utilisez ces commandes en tant que root sous Linux:
find /var/www -type d -exec chmod 755 {} \;
find /var/www -type f -exec chmod 644 {} \;
Je devais restaurer mon fichier de configuration Apache, puis configurer à nouveau le serveur. a trouvé ceci utile: https://Apple.stackexchange.com/questions/41143/how-to-revert-default-mac-Apache-install-to-original
Effectivement, faites un contrôle de santé mentale.
vous avez redémarré Apache
vérifier la propriété du groupe et de l'utilisateur
Je pense que les citations peuvent être supprimées
il y a quelque chose dans/Users/user/Documents/example?
essayez 777
-sean