web-dev-qa-db-fra.com

Erreur Apache localhost 403 avec Yosemite

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.

46
Zach Shallbetter

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>
81
jnovack

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
45
tomvon

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 ..

29
mahi

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. 

8
jody tate

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

  1. Sudo nano /etc/Apache2/extra/httpd-vhosts.conf
  2. Ajouter ce code

`

<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>  
  1. Enregistrez-le et redémarrez votre Apache

`

Sudo apachectl restart

ça devrait marcher :)

2
Ade Yahya

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!

0
Huupke