Intentando ejecutar el servidor apache en Mavericks

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://localhosto http://127.0.0.1en 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:

  1. Sin comentar Include /etc/apache2/extra/httpd-vhosts.confen /private/var/appache2/httpd.conf
  2. Añadido 127.0.0.1 test.locala /etc/hosts
  3. Se 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>
    
  4. 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 Ally 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!

¿Tienes que pagar por compartir en la web?
Por lo que entendí, hay un nuevo front-end para las preferencias del servidor que Apple quiere que pagues, pero que puedes evitar modificando los archivos de preferencias directamente. Puedo estar equivocado en eso, y no sé si se relaciona con mi pregunta. En mi carpeta "Compartir", no veo "Compartir web" en absoluto, mientras que solía estar allí en mi 10.6.8
no, no hay nada por lo que deba pagar, excepto que quiera OS X Server. Pero incluso OS X Server no utiliza el apache preinstalado. Puede descargar un panel de preferencias personalizado en la web de forma gratuita aquí: clickontyler.com/web-sharing

Respuestas (3)

Cheque /var/log/apache2/error_logo /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 starthace que http://localhostmuestre 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.confy corriendo sudo apachectl restarthace http://localhost/~username/punto a ~/Sites/.

Descomentar Include /private/etc/apache2/extra/httpd-vhosts.confen /etc/apache2/httpd.conf, agregar 127.0.0.1 test.deva /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 restartapunta http://test.deva ~/Sites/test/.

El primer bloque de texto es lo que agregué al archivo principal httpd.conf, y funcionó. Aceptaré esta respuesta, ya que es la más cercana. ¡Gracias!

En primer lugar, ¿ vació su caché de DNS después de cambiar el archivo de hosts? Ejecutar dscacheutil -flushcacheen Terminal.

En segundo lugar, puede ejecutar apachectl -Spara verificar su configuración de apache2. Corrija cualquier error y reinicie apache nuevamente.

Tercero, verifique los permisos en su /Users/me/testdirectorio. Chmod los permisos en ese directorio 775o incluso 777para ver si eso ayuda.

1. Ejecuté ahora. El caché se vació (Chrome tardó varios segundos más en intentar resolver el sitio), pero todavía dice que no puede conectarse. 2. Obtengo 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?
Si tenía una configuración de trabajo en 10.6.8, su antiguo archivo httpd.conf se guardará en /etc/apache2/httpd.conf.pre-update. Puede comparar esto con el archivo conf actual para ver si hay otras configuraciones que sean diferentes.
sí lo harías Simplemente haciendo: sudo apachectl start e ingresando "localhost" en firefox, veo "Funciona" en el navegador. Tal vez pueda intentar usar macports e instalar apache2 nuevamente, copie la configuración "limpia" si es necesario.
Bien, en realidad, si vuelvo a comentar la línea Include /etc/apache2/extra/httpd-vhosts.confen 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.
Después de volver a leer su publicación original, en su sección vhost anterior, creo que DocumentRoot debe incluirse entre comillas.
@JMS: No fue así en mi última configuración, y agregar comillas ahora no parece ayudar.
¡Lo averigué! Ver editar arriba.

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. ;/