Je viens d'installer Mac OS X Yosemite frais. J'ai configuré Apache et chmodded "utilisateurs/utilisateurs/Sites" sur 755. Lorsque je frappe sur localhost, je reçois un 403 Forbidden "You don't have permission to access / on this server"
. La même chose se produit avec tous les autres sites que j'ajoute à mon fichier hosts.
J'ai essayé de configurer les répertoires d'utilisateurs en suivant l'aide de cet article . Les gars sur ce fil MacRumors savent qu'il y a un problème avec Apache, mais ils n'ont pas fait beaucoup de suggestions.
Mes autorisations de répertoire ressemblent à ceci
drwxr-xr-x 29 root wheel 1054 Aug 11 07:30 /
drwxr-xr-x 6 root admin 204 Aug 11 07:29 /Users/
drwxr-xr-x+ 26 zachshallbetter staff 884 Aug 11 11:57 /Users/zachshallbetter/
0: group:everyone deny delete
drwxr-xr-x 5 zachshallbetter staff 170 Aug 11 10:16 /Users/zachshallbetter/Sites
Quelqu'un peut-il offrir des suggestions ou de l'aide? Voici des liens vers mes hôtes et httpd.conf fichiers et journaux des erreurs pour référence.
Vous ne voulez PAS ouvrir l'intégralité de votre disque dur au processus du serveur Web. En fait, les lignes 215 à 217 du httpd.conf
disent:
# Deny access to the entirety of your server's filesystem. You must
# explicitly permit access to web content directories in other
# <Directory> blocks below.
Apache 2.4 (OSX 10.10 Yosemite) a une structure différente de Apache 2.2 (OSX 10.9) pour la directive Directory dans le module mod_authz_core .
EDIT: _ Si vous configurez Apache depuis START, veuillez suivre ce jeu d'instructions pour configurer Apache et php sur OSX 10.10 Yosemite.
En supposant que vous avez déjà activé mod_userdir.so
, votre problème concerne votre fichier utilisateur .conf (/etc/Apache2/users/username.conf
), modifiez (ou ajoutez) les éléments suivants.
Apache 2.2:
<Directory "/Users/jnovack/Sites/">
Options Indexes MultiViews
AllowOverride All
# OSX 10.9 / Apache 2.2
Order from deny, allow
</Directory>
Apache 2.4
<Directory "/Users/jnovack/Sites/">
Options Indexes MultiViews
AllowOverride All
# OSX 10.10 / Apache 2.4
Require all granted
</Directory>
Editez le fichier: /Private/etc/Apache2/httpd.conf
à la ligne 250 (à Yosemite) changer:
Options FollowSymLinks Multiviews
à:
Options FollowSymLinks Multiviews Indexes
puis dans le terminal:
Sudo apachectl restart
C'est peut-être une réponse très tardive, mais j'ai suivi la plupart des solutions de débordement de pile, aucune d'entre elles ne m'a aidé pour diverses raisons. J'ai donc réinitialisé mon appareil en tant que nouveau système d'exploitation Yosemite pour que cet hôte local fonctionne sur Mac Yosemite (avec Symlinks également),
Les étapes que j'ai faites exactement:
Sudo nano /etc/Apache2/httpd.conf
Décommentez les lignes suivantes:
#LoadModule php5_module libexec/Apache2/libphp5.so
to
LoadModule php5_module libexec/Apache2/libphp5.so
#LoadModule userdir_module libexec/Apache2/mod_userdir.so
to
LoadModule userdir_module libexec/Apache2/mod_userdir.so
#Include /private/etc/Apache2/extra/httpd-userdir.conf
to
Include /private/etc/Apache2/extra/httpd-userdir.conf
Enregistrer et quitter (Ctrl + X, appuyez sur Entrée, appuyez sur Y et entrez à nouveau)
Sudo nano /etc/Apache2/extra/httpd-userdir.conf
et décommentez la ligne suivante à la ligne 16:
#Include /private/etc/Apache2/users/*.conf
to
Include /private/etc/Apache2/users/*.conf
Enregistrer et quitter (Ctrl + X, appuyez sur Entrée, appuyez sur Y et entrez à nouveau).
Allez maintenant dans le dossier Utilisateurs Apache pour vérifier si votre fichier de configuration existe ou non.
cd /etc/Apache2/users/
si vous n'avez pas de fichier de configuration dans ce dossier, créez-en un par
Sudo nano /etc/Apache2/users/<**YOUR USERNAME**>.conf
Remplacez <YOUR USERNAME>
par le nom de votre machine (saisissez whoami
dans le terminal et entrez ce nom).
après avoir créé le fichier .conf, copiez les lignes ci-dessous dans ce fichier
<Directory "/Users/<YOUR USERNAME>/Sites/">
AddLanguage en .en
LanguagePriority en fr de
ForceLanguagePriority Fallback
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from localhost
Require all granted
</Directory>
sauvegarder et quitter
Maintenant redémarrez votre Apache
Sudo apachectl restart
Maintenant, allez sur votre navigateur et tapez localhost, cela devrait fonctionner comme prévu,
Remarque: si cela ne fonctionne pas même après avoir essayé de redémarrer votre ordinateur
créez index.html exactement comme index.html.en que vous devriez trouver ici:
open /Library/Webserver/Documents/
faites un clic droit sur index.html.en et dupliquez-le en index.html en laissant l'original tel quel
essayez à nouveau dans le navigateur et si vous avez réussi, vous pouvez supprimer le fichier dupliqué
Juste pour être clair, laissez le fichier original index.html.en
où il se trouve, intact et indemne tout au long de cette étape.
Je ne sais pas pourquoi j'ai dû faire ce mystérieux détour - probablement quelque chose de local pour ma machine, mais si vous rencontrez des difficultés après avoir suivi le guide ci-dessus, voyez si cela aide.
SymLinks :
si vous avez du succès, dans le navigateur, vous devriez voir
It works!
Créez maintenant un lien symbolique vers votre projet.
ln -s <Path_to_your_Project(index_file)> <Path_to_webroot>
Par exemple, si vous avez un dossier de projet dans votre dossier Documents, pointez Webroot sur votre fichier d’index en
ln -s /Users/<YOUR USERNAME>/Documents/project/ /Library/Webserver/documents/projectlink
vous aurez peut-être besoin d'une autorisation pour créer un lien symbolique (utilisez la commande ci-dessus avec Sudo)
Configurez Apache pour suivre les liens symboliques ((Merci à tomvon, je ne dispose pas de suffisamment de points pour voter)
Sudo nano /private/etc/Apache2/httpd.conf
à la ligne 250 (à Yosemite) changer:
Options FollowSymLinks Multiviews
à:
Options FollowSymLinks Multiviews Indexes
puis dans le terminal:
Sudo apachectl restart
Maintenant, allez à localhost/projectlink
pour voir si votre fichier d'index de projet est affiché ici dans le navigateur.
Bonne codage ..
Le conseil dans cet article m'a aidé.
Plus précisément, la section "Yosemite Only":
Premièrement, il existe une directive qui sécurise votre ordinateur en refusant par défaut l’accès à l’ensemble du système de fichiers. Je vais vous montrer comment supprimer cette directive, car je trouve cela plus facile pour une machine destinée au développement. La section de code va des lignes 220 à 223. Vous pouvez commenter (placez «#» devant chaque ligne) ou tout simplement supprimer cette section.
Et la section est ...
<Directory />
AllowOverride none
Require all denied
</Directory>
Remarque:
Comme d'autres ont donné plus de détails à ce sujet, la méthode décrite ci-dessus peut ne pas être sûre.
Il existe 2 possibilités pour lesquelles votre localhost
soit interdite, d’abord parce que votre paramètre Apache
n’est pas correct et, deuxièmement, peut-être parce que vous avez défini vhost
et que vous avez oublié l’option localhost
Sudo nano /etc/Apache2/extra/httpd-vhosts.conf
`
<VirtualHost *:80>
ServerName localhost
DocumentRoot "/Users/username/Sites"
<Directory "Users/username/Sites">
Options Indexes FollowSymLinks AllowOverride All Order allow,deny Allow from all
</Directory>
</VirtualHost>
`
Sudo apachectl restart
ça devrait marcher :)
Les suggestions peuvent porter sur votre propre config spécifique à Apache, mais par défaut, cette configuration peut ne pas être chargée du tout.
Editez la configuration du module userdir:
Sudo vi /etc/Apache2/extra/httpd-userdir.conf
Décommentez l'inclusion des fichiers de configuration du répertoire utilisateur:
Include /private/etc/Apache2/users/*.conf
Assurez-vous que vous avez une configuration de répertoire utilisateur correspondant à notre propre nom d'utilisateur:
Sudo vi /etc/Apache2/users/.conf
Assurez-vous d'avoir une bonne configuration pour votre répertoire personnel:
DocumentRoot "/Users/<username>/Sites/"
<Directory "/Users/<username>/Sites/">
AllowOverride All
Options Indexes MultiViews FollowSymLinks
Require all granted
</Directory>
Redémarrer Apache (serveur Web)
Sudo apachectl redémarrage
Vérifiez votre site!