Estoy tratando de configurar un vhost de Apache en Mavericks, algo que pude hacer fácilmente en 10.6.8. Estoy usando el Apache predeterminado que está preinstalado en una instalación nueva de OS X 10.9.2
$ sudo apachectl start
org.apache.httpd: Already loaded
$ ping localhost
PING localhost (127.0.0.1): 56 data bytes
64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.053 ms
Pero cuando navego a cualquiera de mis 3 navegadores http://localhost
o http://127.0.0.1
en cualquiera de ellos, me dicen que no puedo conectarme, en lugar de ver "¡Funciona!" de Apache. mensaje. (En Chrome veo "¡Vaya! Google Chrome no pudo conectarse a localhost")
También intenté agregar un vhost:
Include /etc/apache2/extra/httpd-vhosts.conf
en /private/var/appache2/httpd.conf127.0.0.1 test.local
a /etc/hostsSe agregó lo siguiente a /etc/apache2/extra/http2-vhosts.conf
<VirtualHost *:80>
ServerName test.local
DocumentRoot /Users/me/test
<Directory /Users/me/test>
AllowOverride all
Options -MultiViews
</Directory>
</VirtualHost>
Apache reiniciado
$ apachectl -t
Syntax OK
$ sudo apachectl graceful
$ ping test.local
PING test.local (127.0.0.1): 56 data bytes
64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.040 ms
...pero de nuevo, nada cuando navego a http://test.local
¿Alguna idea? ¿Tiene esto algo que ver con la nueva preferencia "Web Sharing" de Mavericks, que tienes que descargar por separado, o algo así?
Editar:
¡Lo averigué! Tuve que modificar las opciones principales del directorio httpd.conf a AllowOverride All
y Allow from All
, según este tutorial. El archivo conf que viene con Mavericks tiene esto desactivado. Si hubiera mirado mi archivo conf original en mi vieja máquina, habría notado la diferencia.
La otra cosa que me estaba confundiendo es que si tengo
ErrorLog "/Users/me/error.log"
en mi definición de VirtualHost, aparece "Chrome no se puede conectar", aunque Apache me dice que la sintaxis está bien. Eliminarlo resuelve el problema.
¡Gracias a todos!
Cheque /var/log/apache2/error_log
o /var/log/system.log
. También puede intentar vaciar la caché de DNS ejecutando sudo killall -HUP mDNSResponder
. Consulte http://support.apple.com/kb/ht5343 .
Solo correr sudo apachectl start
hace que http://localhost
muestre el "¡Funciona!" página para mí en una VM 10.9.
Ahorro
<Directory "/Users/username/Sites/">
Options Indexes Multiviews
AllowOverride AuthConfig Limit
Order allow,deny
Allow from all
</Directory>
como /etc/apache2/users/username.conf
y corriendo sudo apachectl restart
hace http://localhost/~username/
punto a ~/Sites/
.
Descomentar Include /private/etc/apache2/extra/httpd-vhosts.conf
en /etc/apache2/httpd.conf
, agregar 127.0.0.1 test.dev
a /etc/hosts
, agregar
<VirtualHost *:80>
DocumentRoot "/Users/username/Sites/test"
ServerName test.dev
</VirtualHost>
a /etc/apache2/extra/httpd-vhosts.conf
, y la ejecución sudo apachectl restart
apunta http://test.dev
a ~/Sites/test/
.
En primer lugar, ¿ vació su caché de DNS después de cambiar el archivo de hosts? Ejecutar dscacheutil -flushcache
en Terminal.
En segundo lugar, puede ejecutar apachectl -S
para verificar su configuración de apache2. Corrija cualquier error y reinicie apache nuevamente.
Tercero, verifique los permisos en su /Users/me/test
directorio. Chmod los permisos en ese directorio 775
o incluso 777
para ver si eso ayuda.
VirtualHost configuration: wildcard NameVirtualHosts and _default_ servers: *:80 is a NameVirtualHost, default server test.local (/private/etc/apache2/extra/httpd-vhosts.conf:29), port 80 namevhost test.local (/private/etc/apache2/extra/httpd-vhosts.conf:29)
. 3. chmod a 777 y no ayudó. Además, todavía esperaría ver el programa "¡Funciona!" mensaje en localhost incluso sin vhost, ¿verdad?Include /etc/apache2/extra/httpd-vhosts.conf
en httpd.conf y reinicio Apache, ahora veo el mensaje "¡Funciona!" mensaje. Presumiblemente, esto cambió después del vaciado de caché de DNS. Así que ahora solo necesito averiguar qué está mal con mi archivo vhosts. Pero debería ser una tarea más fácil ahora, gracias.Actualicé a Mavericks desde Snow Leopard y mi apache me hizo pasar un mal rato de inmediato. Después de golpearme la cabeza durante dos noches seguidas, leer todo sobre la configuración de Apache en Mavericks y no ver ningún progreso en absoluto, recibí un mensaje de "Funciona" para cada host virtual que se configuró previamente con SL y en algún momento incluso eso. dejó de funcionar: descubrí que si cambia su antiguo httpd.conf-anterior con el httpd.conf recién generado, también debe comentar LoadModule bonjour_module libexec/apache2/mod_bonjour.so
. apachectl start
(o restart
) no arroja ningún error, pero en realidad no le gusta este módulo en absoluto. Así que comenta esta línea.
Supongo que la lección es verificar tres veces cada directiva en la configuración. Y golpéate menos la cabeza también. ;/
grg
sam fen
rwenz3l