17 votes

problème d'accès à localhost sur Mac OS X Mavericks... Cela fonctionnait bien jusqu'à ce que je redémarre aujourd'hui.

Je suis perplexe quant au problème que je rencontre et j'apprécierais vraiment que l'on m'aide à le résoudre.

J'ai un iMac avec Mac OS X Mavericks 10.9.2.

J'ai configuré mon apache pour qu'il serve des documents à partir du serveur Root /Volume/sites/.

J'utilise des hôtes virtuels dynamiques, donc il suffit d'ajouter un répertoire avec le suffixe *.dev pour qu'il devienne un hôte virtuel.

Mon fichier hosts est assez basique :

##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting.  Do not change this entry.
##
127.0.0.1         localhost
255.255.255.255   broadcasthost
::1               localhost
fe80::1%lo0       localhost

Mon fichier httpd-vhosts.conf est le suivant :

#
# Virtual Hosts
#
# If you want to maintain multiple domains/hostnames on your
# machine you can setup VirtualHost containers for them. Most configurations
# use only name-based virtual hosts so the server doesn't need to worry about
# IP addresses. This is indicated by the asterisks in the directives below.
#
# Please see the documentation at 
# <URL:http://httpd.apache.org/docs/2.2/vhosts/>
# for further details before you try to setup virtual hosts.
#
# You may use the command line option '-S' to verify your virtual host
# configuration.

#
# Use name-based virtual hosting.
#
NameVirtualHost *:80

#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for all requests that do not
# match a ServerName or ServerAlias in any <VirtualHost> block.
#

#allow access to the Hosts directory where your sites are
<Directory "/Volumes/sites">
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    #you could configure the following to only allow access from localhost
    Order allow,deny
    Allow from all
</Directory>

#get the server name from the Host: header
UseCanonicalName Off
VirtualDocumentRoot /Volumes/sites/%0/

Tout cela a fonctionné. Et je n'ai rien changé dans mon fichier httpd.conf.

Pourtant, je ne peux pas charger localhost

Je ne peux pas non plus charger 127.0.0.1

J'ai lancé la commande sudo lsof -i :80 | egrep "PID|LISTEN" pour voir si un PID écoute sur le port 80. Les résultats étaient vides.

J'ai essayé de redémarrer apache et aussi d'arrêter puis de démarrer apache en utilisant

sudo apachectl stop sudo apachectl start

sudo apachectl restart

Rien ne fonctionne.

J'ai vérifié si apache fonctionnait en lançant la commande httpd -v

Le retour était :

Server version: Apache/2.2.26 (Unix)
Server built:   Dec 10 2013 22:09:38

J'ai essayé de me connecter à localhost et 127.0.0.1 via la ligne de commande avec le résultat suivant :

alisamii at alisamii in ~
$ 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
alisamii at alisamii in ~
$ telnet 127.0.0.1 80
Trying 127.0.0.1...
telnet: connect to address 127.0.0.1: Connection refused
telnet: Unable to connect to remote host
alisamii at alisamii in ~
$ lynx http://localhost

Looking up localhost
Making HTTP connection to localhost
Alert!: Unable to connect to remote host.

lynx: Can't access startfile http://localhost/
alisamii at alisamii in ~
$ lynx http://127.0.0.1

Looking up 127.0.0.1
Making HTTP connection to 127.0.0.1
Alert!: Unable to connect to remote host.

lynx: Can't access startfile http://127.0.0.1/
alisamii at alisamii in ~

Aidez-moi, s'il vous plaît.

39voto

riad Points 1833

J'ai eu le même problème. J'ai supprimé un dossier de mon projet et il s'est cassé. Dans ce cas, les configurations du site doivent être supprimées de httpd-vhosts.conf et httpd.conf.

Essayez ping 127.0.0.1

apachectl configtest peut vous aider à détecter le problème.

4voto

Francisco Points 141

Le problème pourrait être que le fichier hosts a été corrompu par rapport à l'encodage ASCII original. J'ai effacé tous les espaces et mis des tabulations, puis j'ai exécuté sudo killall -HUP mDNSResponder (vous pouvez faire ça au lieu de redémarrer) et après, ça a marché.

2voto

danielcraigie Points 121

Les refus de connexion sont le plus souvent dus à un serveur qui n'écoute pas le port.

Les erreurs de syntaxe ou les erreurs générales du fichier de configuration tueront apache au démarrage (généralement sans que cela soit signalé dans les journaux d'erreurs ou dans le terminal).

Essayez de courir sudo apachectl configtest et voyez s'il affiche des messages d'erreur.

2voto

ilya n. Points 6610

Dans mon cas, le problème était que le dossier /private/var/log/apache2/ avait disparu pour des raisons inconnues. En le recréant avec

sudo mkdir /private/var/log/apache2

et redémarrer apache avec

sudo apachectl restart

a fait le tour !

-1voto

latvian Points 109

C'est spécifique au Mac. Vous devez d'abord activer le partage Web. Pour Maveric, cela peut être fait comme dans ce tutoriel. https://www.youtube.com/watch?v=TgiZiTU9JVY Deuxièmement, pour Mac, le trafic est filtré via pfctl(i.e. man pfctl) dans Maveric et ipfw(man ipfw) pour les anciennes versions de Mac OS si vous avez besoin de plus que le port 80.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X