J'essaie de définir un environnement local sur mon nouveau MacBook Air 13 ": Apache intégré avec mes propres DocumentRoot
, PHP et MySQL. Je mets généralement à jour /etc/hosts
juste pour exécuter mes sites Web locaux avec un joli permalien:. local/example
Pour les références, je vérifier:
- Comment transformer Mac OS X Lion en serveur Web?
- Activation d'Apache dans Mac OS X Mountaion Lion
- Autorisations Apache
Cette fois , je suis tout simplement obtenir un 403 Forbidden erreur chaque fois que je frappe 127.0.0.1
, localhost
ou local
. J'ai d'abord vu à travers le terminal qu'Apache et PHP sont en cours d'exécution (même si je ne peux pas afficher les pages PHP); puis j'ai mis à jour toutes les autorisations en fonction des autorisations Apache ; maintenant je suis désespéré. Voici les configurations Apache pertinentes:
/etc/hosts
( voir le fichier - ajouté une ligne)/etc/apache2/httpd.conf
( voir le fichier - mis à jour leDocumentRoot
)/etc/apache2/users/joao.conf
( voir le fichier - créé ce fichier)/etc/apache2/extra/httpd-vhosts.conf
( voir le fichier - mis à jourVirtualHost
)
Il semble qu'Apache me refuse en quelque sorte l'accès à mon DocumentRoot
(ce qui est d'ailleurs ~/Sites
). Parce qu'il ~/Sites
s'agit en fait d'un lien symbolique, j'ai ensuite essayé de mettre à jour DocumentRoot
avec les chemins suivants (tous pointant vers le même répertoire):
~/Sites
/Users/joao/Sites
/Users/joao/Dropbox/Workflow/Sites
(le répertoire d' origine )
Lancer encore 403 . Des idées pour résoudre / déboguer cela?
Mise à jour rapide - voici à quoi /var/log/apache2/joao.pt-error_log
ressemble mon apparence:
[Sun Jul 07 12:50:45 2013] [error] [client 127.0.0.1] (13)Permission denied: access to / denied
[Sun Jul 07 12:50:45 2013] [error] [client 127.0.0.1] (13)Permission denied: access to /favicon.ico denied
[Sun Jul 07 12:50:45 2013] [error] [client 127.0.0.1] (13)Permission denied: access to /favicon.ico denied
[Sun Jul 07 12:50:45 2013] [error] [client 127.0.0.1] (13)Permission denied: access to /favicon.ico denied
[Sun Jul 07 12:50:47 2013] [error] [client ::1] (13)Permission denied: access to / denied
[Sun Jul 07 12:50:47 2013] [error] [client ::1] (13)Permission denied: access to / denied
[Sun Jul 07 12:50:48 2013] [error] [client ::1] (13)Permission denied: access to /favicon.ico denied
[Sun Jul 07 12:50:48 2013] [error] [client ::1] (13)Permission denied: access to /favicon.ico denied
/Sites
(dans mon/
dossier racine ) et y ai placé mes fichiers, configurant les options Alias et Répertoire en conséquence. A bien fonctionné.Je mets à jour vers macOSS Sierra , version 10.12
Je fais face au même problème, j'ai fait deux choses pour le corriger correctement. Voici mes approches.
1) Veuillez vérifier le fichier " /private/etc/apache2/extra/httpd-userdir.conf ". Changement
à
2) ** Et modifiez votre " /etc/apache2/httpd.conf"
changement
à
enfin votre racine de document ressemblera à ce qui suit,
3) Redémarrez apache
Toujours vous face au problème, veuillez vérifier comment configurer Apache dans macOS Sierra 10.12
la source
Je règle généralement ce problème en définissant l'utilisateur Apache sur moi-même dans les environnements locaux et sur les machines où le seul utilisateur qui utilise Apache est moi. Dans
/private/etc/apache2/httpd.conf
, définissezUser
votre nom d'utilisateur_www
, par exemple:->
Et puis redémarrez Apache:
Étapes supplémentaires:
Si vous avez des sessions actives, elles donneront des erreurs d'autorisation car elles appartiennent toujours à
_www
. Les posséder:Implications:
Après cela, Apache (et PHP et al.) Fonctionnera comme vous et obtiendra une autorisation de lecture / écriture pour tous les fichiers que vous avez une autorisation de lecture / écriture. Mais comme il ne s'agit que d'un environnement de développement local, cela ne devrait pas être un problème à moins que vous n'ayez pas de règles pour bloquer Apache dans votre pare - feu et laisser des fichiers douteux comme des explorateurs de fichiers, des shells, des scripts qui peuvent contenir des vulnérabilités exécutées sous Apache; dans ce cas, n'importe qui, y compris votre voisin wifi public dans un café, peut entrer
http://<your IP>
et faire tout ce que ces scripts lui permettent de faire.En fait, vous devez empêcher cela indépendamment des scripts que vous exécutez ou même si vous ne définissez pas l'utilisateur Apache sur vous-même car vous ne voulez probablement pas que des étrangers aléatoires puissent voir le contenu de votre
localhost
.La prévention:
Faites qu'Apache n'écoute que localhost. Encore une fois, dans
httpd.conf
:->
Et redémarrez Apache à nouveau:
Désactivez Apache dans le pare-feu de l'application (notez que vous l'avez peut-être déjà désactivé si vous avez cliqué
Deny
si / quand il vous a été demandé lors de la première exécution d'Apache):System Preferences
»Security & Privacy
»Firewall
.Firewall Options
.+
bouton./usr/sbin/httpd
et cliquezAdd
(sihttpd
ne s'affiche pas, vous pouvez le rechercher dans le terminal parwhich httpd
)httpd
et sélectionnezBlock incoming connections
.OK
.Rechargez le pare-feu:
Limitez PHP à la racine du document. Dans
php.ini
:(
/var/tmp/
pour les sessions)Utilisez les trois solutions pour vous protéger au cas où l'une d'entre elles serait désactivée pour une raison quelconque.
- Notez que comme ma langue active sur ma machine n'est pas l'anglais, sachez que le libellé peut être un peu différent (les options de menu et le libellé peuvent être différents quelle que soit la langue dans les différentes versions d'OS X).
- Les lignes commençant par
$
doivent être saisies en ligne de commande (Terminal ou iTerm, etc.), avec les$
supprimées.la source
Je viens de résoudre mon problème en définissant des autorisations non seulement sur le
DocumentRoot
répertoire, mais également sur tous ses répertoires parents. Voilà comment je l'ai fait .la source
Les étapes suivantes ont fonctionné pour moi sur High Sierra exécutant Apache 2.4
(Basé sur l'excellent tutoriel suivant: http://www.cgi101.com/book/connect/mac.html , mis à jour avec des étapes supplémentaires pour les différences de version)
Déplacez le fichier vers:
Vérifiez que le fichier dispose des autorisations d'exécution:
Sinon utiliser:
Décommentez les lignes suivantes dans /etc/apache2/httpd.conf
Modifiez également la strophe Répertoire "/ Library / WebServer / CGI-Executables" en:
Redémarrez ensuite Apache:
Presque avec chaque nouvelle version de macOS, les modifications seront perdues et vous devrez refaire le travail, et même faire différentes étapes pour le corriger. Votre meilleur ami sont les journaux Apache situés dans / var / log / apache2 / (/ var / log / apache2 / error_log)
la source
J'utilisais les ACL pour définir les autorisations, en suivant les instructions de la section « Comment définir les autorisations de fichiers et de répertoires pour Apache sous Mac OS X », mais j'obtenais toujours:
Puis j'ai lu " (13) Permission Denied " (lié à dans la réponse de João Ramos ) et j'ai essayé d'ajouter "execute" à l'ACL. Ça a marché.
la source
Redémarrez votre ordinateur! Cela a fonctionné pour moi.
Mais tout d'abord, j'avais changé l'utilisateur sous apache pour moi-même (de _www), car il s'agit d'un environnement local / test. Donc, finalement, cela a quelque chose à voir avec les autorisations.
Redémarrez ensuite la machine, tout comme Windows;).
la source
OP décrit un problème survenant en essayant de configurer un environnement de serveur Web local sur un Mac, en utilisant Apache, PHP et MySQL, avec un DocumentRoot personnalisé, et en mentionnant l'utilisation de VirtualHost (vhost). OP signale une erreur 403 interdite lors de l'accès à localhost.
Un article sur coolestguidesontheplanet décrit comment la configuration d'hôtes virtuels dans Apache provoque la "perte de l'hôte local". En d'autres termes, la cause première du problème de l'OP pourrait être une activation incomplète des vhosts.
L'article continue en expliquant comment réparer localhost dans un environnement vhost.
Il explique également comment résoudre les «problèmes d'autorisations avec des choses comme les mises à jour et l'authentification» associées à «l'utilisation du dossier Utilisateurs / nom d'utilisateur / Sites pour les hôtes».
https://coolestguidesontheplanet.com/set-virtual-hosts-apache-mac-osx-10-10-yosemite/
la source