Intentando ejecutar el servidor apache en Mavericks

5

Estoy tratando de configurar un vhost 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 http://localhosto http://127.0.0.1en cualquiera de mis 3 navegadores, me han dicho que no puedo conectar, en lugar de ver Apache "funciona!" 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. Agregado 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 de "Compartir Web" de Mavericks, que debe descargar por separado, o algo así?


Editar:

¡Lo averigué! Tuve que modificar las principales opciones del directorio httpd.conf AllowOverride Ally Allow from All, según este tutorial. El archivo conf que viene con Mavericks tiene esto desactivado. Si hubiera mirado mi archivo de 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!

Sam Fen
fuente
¿Tienes que pagar por compartir web?
grg
Según tengo entendido, hay algunas nuevas aplicaciones para las preferencias del servidor que Apple quiere que pagues, pero que puedes evitar modificando los archivos pref 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
Sam Fen
no, no hay nada por lo que deba pagar, excepto que desea OS X Server. Pero incluso OS X Server no hace uso del apache preinstalado. Puede descargar un panel de preferencias personalizado en la web de forma gratuita aquí: clickontyler.com/web-sharing
rwenz3l

Respuestas:

2

Compruebe /var/log/apache2/error_logo /var/log/system.log. También puede intentar vaciar el caché DNS ejecutando sudo killall -HUP mDNSResponder. Consulte http://support.apple.com/kb/ht5343 .

Solo correr sudo apachectl starthace que se http://localhostmuestre "¡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 correr sudo apachectl restarthace que el http://localhost/~username/punto ~/Sites/.

Descomentando Include /private/etc/apache2/extra/httpd-vhosts.confen /etc/apache2/httpd.conf, añadiendo 127.0.0.1 test.devque /etc/hosts, añadiendo

<VirtualHost *:80>
  DocumentRoot "/Users/username/Sites/test"
  ServerName test.dev
</VirtualHost>

a /etc/apache2/extra/httpd-vhosts.conf, y correr sudo apachectl restarthace que http://test.devapunte a ~/Sites/test/.

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

En primer lugar, ¿ eliminó su caché de DNS después de cambiar el archivo de hosts? Ejecutar dscacheutil -flushcacheen la 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. Cambie los permisos en ese directorio 775o incluso 777para ver si eso ayuda.

JMS
fuente
1. Ejecútelo ahora. El caché se enjuagó (Chrome tardó varios segundos más en intentar resolver el sitio), pero aún así dice que no se puede conectar. 2. Lo entiendo 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 "¡Funciona!" mensaje en localhost incluso sin un vhost, ¿verdad?
Sam Fen
Si tenía una configuración funcional bajo 10.6.8, su archivo httpd.conf anterior se guardará en /etc/apache2/httpd.conf.pre-update. Puede comparar esto con el archivo conf actual para ver si hay otras configuraciones diferentes.
JMS
si lo harias 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 "clean" si es necesario.
rwenz3l
Ok, en realidad si vuelvo a comentar la línea Include /etc/apache2/extra/httpd-vhosts.confen httpd.conf, y reinicio Apache, ahora veo "¡Funciona!" mensaje. Presumiblemente esto cambió después del vaciado de caché de DNS. Así que ahora solo necesito resolver qué está mal con mi archivo vhosts. Pero debería ser una tarea más fácil ahora, gracias.
Sam Fen
Después de volver a leer su publicación original, en la sección vhost anterior, creo que DocumentRoot debe estar entre comillas.
JMS
0

Me actualicé a Mavericks desde Snow Leopard y mi apache me causó dificultades de inmediato. Después de golpearme la cabeza durante dos noches seguidas, leer todo sobre la configuración de Apache bajo Mavericks y no ver ningún progreso en absoluto: he estado recibiendo el mensaje "Funciona" para cada host virtual que se configuró previamente con SL y en algún momento incluso eso dejó de funcionar: descubrí que si intercambias tu anterior httpd.conf-previous con la httpd.conf recién generada, también deberías 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 golpea tu cabeza menos también. ; /

popular
fuente