localhost ne fonctionne pas sur OS X Yosemite

11

Je fais fonctionner le serveur apache local de mon Mac et lorsque je visite localhost, j'obtiens la page standard "Ça marche".La page "Ça marche" a été mise en cache - elle est en fait cassée comme 127.0.0.1. Quand je visite 127.0.0.1, le chrome me le donne Error code: ERR_CONNECTION_REFUSED. J'ai donc couru un telnet. Résultat:

harryg$ telnet localhost 80
Trying ::1...
telnet: connect to address ::1: Connection refused
Trying 127.0.0.1...
telnet: connect to address 127.0.0.1: Connection refused
Trying fe80::1...
telnet: connect to address fe80::1: Connection refused
telnet: Unable to connect to remote host

Mais scutildonne ceci:

harryg$ scutil -r localhost
Reachable,Local Address,Directly Reachable Address

Une idée pourquoi ça ne marche pas? Apache écoute-t-il sur un port différent? Si oui, comment puis-je vérifier? J'ai quelques vhosts locaux qui devraient être accessibles par certains .devhôtes virtuels locaux que j'ai ajoutés à mon fichier d'hôtes. Par exemple, 127.0.0.1 home.devmais ils donnent aussi l'erreur ci-dessus.

Éditer

Il semble que rien n'écoute sur le port 80. Lorsque je lance, sudo lsof -iTCP:80 -sTCP:LISTENje n'obtiens aucune sortie. Apache semble cependant fonctionner - j'ai exécuté le apachectlredémarrage plusieurs fois.

Harry
la source
pourriez-vous vérifier si votre partage Web fonctionne avec cet outil; clickontyler.com/web-sharing
siniradam
Votre localhostfonctionne parfaitement bien. Apache ne l'est pas. Mettez à jour votre question pour représenter ce fait et n'oubliez pas d'inclure les bits pertinents de votre configuration Apache et de ses fichiers journaux.
Daniel B
J'ai eu un problème similaire et j'ai pu le résoudre: stackoverflow.com/questions/26454160/…
Xaver
La façon normale de le faire sur Mavericks / Yosemite est de transférer le port 80 vers le port 8080. Voir gist.github.com/mindw0rk/dcc6c02a92b49bde0f13 pour un exemple de la façon de configurer cela à l'aide de pfctl, puis modifiez votre configuration apache à utiliser Écoutez 8080. Vous pourrez vous connecter au port 80 et le trafic sera transféré vers apache. (dans notre boutique de développement, tout le monde utilise cette configuration, sauf avec nginx)
bazzargh

Réponses:

11

Vérifiez votre configuration Apache avec cette commande:

sudo apachectl -t

Cela teste les fichiers de configuration et vous indique s'il y a une erreur. L'exécution sudo apachectl startne génère pas d'erreurs de syntaxe du fichier de configuration dans les journaux pour une raison quelconque.

Matt Gibson
la source
Exactement le même problème ici. sudo apachectl -tretourne Syntax OK. Et alors?
2017
2

Cette commande devrait vous indiquer sur quel port et quelle adresse IPv (4/6) votre Apache écoute:

sudo lsof -P -n -iTCP -sTCP:LISTEN | grep httpd

S'il n'y a rien à écouter, qu'est-ce que vous en retirez?

sudo serveradmin status web
sudo serveradmin settings web
ps -acx | grep http

.

En dernier recours:

sudo serveradmin stop web

Ouvrez Console.app et placez un signet

sudo serveradmin start web

Vérifiez les journaux

Florian Bidabe
la source
Un problème de fichier de configuration a empêché Apache de démarrer! Les pages en cache m'ont amené à croire qu'il fonctionnait pour localhost mais pas pour mon IP locale.
Harry
Ok cool, serveradmin déclenche httpd, et génère généralement des journaux de démarrage, avez-vous pu résoudre le problème? quel est le message d'erreur plz (pour les autres membres)?
Florian Bidabe
Ouais c'est résolu. J'avais oublié de décommenter un module apache vhosts donc Apache a rencontré une erreur quand il a vu VirtualDocumentRoutedans mon fichier de configuration vhosts.
Harry
2
hey harryg, si vous avez la chance de mettre à jour le statut à résolu.
Florian Bidabe
J'ai eu ce problème et un échec silencieux lors du démarrage d'Apache. Rien dans les journaux, en raison d'une erreur de syntaxe dans la configuration. Cette commande l'a fait apparaître:sudo apachectl -t
Matt Gibson
0

Je crois que le port par défaut est 8080, mais vous pouvez vérifier le fichier httpd.conf pour les ports sur lesquels Apache écoute.


la source
8080 ne fonctionne pas, et mon fichier de configuration contient Listen 80.
Harry
Pouvez-vous voir Apache fonctionner, peut-être avec un "ps aux"? En outre, le journal des erreurs affiche-t-il quelque chose? L'emplacement par défaut doit être / var / log / apache2 / error_log
quelle est la sortie de netstat -tulpn | grep :80?
sardean