web-dev-qa-db-fra.com

OSX El Capitan - Apache 403 interdit

Je viens de passer de Yosemite à El Capitan, mais j'ai malheureusement oublié de copier mon ancien httpd.conf et maintenant je dois reconfigurer tous ses paramètres.

J'ai déjà changé le documentroot en le précédent/users/admin/www, et également configuré pour libérer l'accès à ce dossier:

<Directory "/users/admin/www">
Options Indexes MultiViews FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>

Redémarré Apache, mais même de cette façon, j'obtiens l'erreur "Interdit" lorsque j'essaie d'accéder à 127.0.0.1.

Qu'est-ce que je manque ici?

17
delphirules

Je viens de découvrir que l'ancien fichier .conf est enregistré lors de la mise à jour El Captain, dans ce dossier:

/private/etc/Apache2/httpd.conf.pre-update

J'ai donc copié les anciennes définitions dans la nouvelle :)

18
delphirules

Procédez comme suit:

  • Terminal ouvert
  • Courir:

    cd /etc/Apache2/
    Sudo mv httpd.conf httpd.conf.OLD
    Sudo mv httpd.conf~previous httpd.conf
    Sudo apachectl restart
    

Après avoir passé 3 heures sur la question - cela a fonctionné pour moi!

73
uiuxhub

Vous pouvez accéder à /private/etc/Apache2/ puis diff httpd.conf httpd.conf.pre-update pour voir les différences entre votre ancien fichier conf et le nouveau qui a été ajouté.

Pour moi, il y avait beaucoup de lignes LoadModules commentées, et mon utilisateur/groupe Apache avait été reconverti en _www

9
anthonygore

Je ne connais pas les changements dans Apache 2.4, donc celui-ci m'a vraiment dérouté pendant environ 30 minutes. Je viens de passer de Mavericks à El Capitan (Apache 2.2 à 2.4) et je n'ai pas pu charger mon répertoire de sites personnels ( http: // localhost/~ {username}. J'ai continué à recevoir "Forbidden". Après un bon peu de recherche, j'ai trouvé que je devais modifier /etc/Apache2/users/{username}.conf pour ajouter "Exiger tout accordé". Comme je n'ai jamais mis à niveau vers Yosemite (qui utilise également Apache 2.4), je ne suis jamais tombé sur ce un.

J'espère que cette info aide quelqu'un

5
Todd Hammer

La mise à jour du contrôle d'accès au répertoire a fonctionné pour moi:

Dans cet exemple, toutes les demandes sont autorisées.

2.2 configuration:

Order allow,deny Allow from all

2.4 configuration:

Require all granted

Source: http://httpd.Apache.org/docs/trunk/upgrading.html (sous contrôle d'accès)

Remarque : Je conserve mes paramètres personnalisés séparément sous /private/etc/Apache2/other/.

4
jcfranco
3
Dustin Silk

Comme l'a dit @delphirules, vous pouvez copier votre ancien fichier httpd.conf comme ceci:

Sudo cp /etc/Apache2/httpd.conf.pre-update /etc/Apache2/httpd.conf

J'ai rencontré des problèmes de connexion à mon hôte local toute la journée, mais j'ai finalement trouvé ceci: https://mallinson.ca/web-development-with-el-capitan/

Exécutez simplement la commande de copie, puis effectuez une Sudo apachectl restart

J'ai également désactivé le SIP (Protection de l'intégrité du système) en mode de récupération. Je ne sais pas si cela a réellement fait quoi que ce soit .. Vous pouvez trouver ces instructions ici: https : //forums.developer.Apple.com/thread/3981

2
Michael Sayer

J'ai eu un problème similaire en recevant une erreur 404 en essayant d'accéder aux pages de mon répertoire de sites locaux après m'être permis au niveau de l'utilisateur de servir des sites après la mise à niveau vers El Capitan. Le problème était qu'Apache réinitialisait le fichier httpd.conf à sa valeur par défaut, ce qui désactive les dossiers utilisateur à partir desquels charger les fichiers. Donc http: // localhost bien chargé mais http: //localhost/~username/index.html ne se chargerait PAS. Voici le correctif:

sauvegardez le "nouveau" fichier de configuration qui a été créé:

Sudo cp /etc/Apache2/httpd.conf /etc/Apache2/httpd.conf_capitan

restaurez le "vieux" fichier de configuration renommé:

Sudo cp /etc/Apache2/httpd.conf~previous /etc/Apache2/httpd.conf
0
anon58192932

Créez un lien symbolique dans votre /Users/{user name}/Sites dossier

ln -s /Path/To/Target/Files /Users/{user name}/Sites/{name}
0
sakiv

Si vous avez des liens symboliques vers certains de vos projets dans le répertoire DocumentRoot, après la mise à niveau vers El Capitan, vous pouvez obtenir 403 pour ces projets, comme je l'ai fait. Vous aurez besoin des éléments suivants pour les faire fonctionner à nouveau:

1) Votre utilisateur Apache (_www par défaut) devrait avoir accès à un répertoire qui héberge un répertoire auquel vous vous connectez. Dans mon cas dans Apache DocumentRoot, j'avais:

MyProject -> /Users/Me/Documents/Aptana Studio 3 Workspace/MyProject

Et pour une raison quelconque, accédez aux paramètres de /Users/Me/Documents/Aptana Studio 3 Workspace/MyProject étaient -rw------- 1 Me staff Je suppose qu'il a été défini lors de la mise à niveau d'OS x. Donc après Sudo chmod 755 Aptana\ Studio\ 3\ Workspace l'erreur a été résolue.

2) Comme la mise à niveau change également httpd.conf, assurez-vous de l'avoir pour le répertoire DocumentRoot, ou restaurez à partir de la sauvegarde httpd.conf comme suggéré ci-dessus:

Options Indexes FollowSymLinks

Si vous avez effectué une mise à niveau à partir de Mavericks ou d'une version antérieure d'OS x et restauré la sauvegarde httpd.conf, vous devez, comme l'a dit jcfranko, remplacer le paramètre Apache 2.2 pour l'allocation de la demande par:

Require all granted
0
Vsevolod