macOS Sierra: localhost deja de funcionar cuando el host virtual está habilitado

3

He habilitado hosts virtuales en mi Mac que ejecuta macOS Sierra.

Lo que hice,

  1. línea de host virtual sin comentarios en httpd.conf
  2. Se agregó una entrada de host virtual de mi sitio en el archivo /etc/apache2/extra/httpd-vhosts.conf .

Después de lo cual, cuando intento acceder a enlace , obtengo un 404.

Inicialmente me enfrenté a un 403, así que creé un archivo username.conf en el directorio apache users y di AllowOverride All para /

Ahora para acceder a localhost necesito deshabilitar vhost. ¿Alguna ayuda?

    
pregunta Malabya Tewari 01.10.2016 - 14:05

3 respuestas

6

Probablemente te perdiste una o más modificaciones. Para habilitar hosts virtuales en macOS 10.12.0 (Cliente), haga lo siguiente:

  • edite el archivo /etc/apache2/httpd.conf:

    línea de comentario 160:

    #LoadModule vhost_alias_module libexec/apache2/mod_vhost_alias.so
    

    a

    LoadModule vhost_alias_module libexec/apache2/mod_vhost_alias.so
    

    reemplazar en la línea 213

    #ServerName www.example.com:80
    

    por

    ServerName localhost
    

    línea de comentario 509:

    #Include /private/etc/apache2/extra/httpd-vhosts.conf
    

    a

    Include /private/etc/apache2/extra/httpd-vhosts.conf
    
  • edite el archivo /etc/apache2/extra/httpd-vhosts.conf y reemplace el contenido por

    <VirtualHost *:80>
        ServerName localhost
        DocumentRoot "/path/to/localhost"
    
        <Directory "/path/to/localhost">
            Options Indexes FollowSymLinks
            AllowOverride All
            Order allow,deny
            Allow from all
            Require all granted
        </Directory>
    </VirtualHost>
    

    Su sitio tiene que residir en / ruta / a / localhost /

  • Verifique la configuración de apache con: sudo apachectl -S . Las dos primeras líneas deben rendir:

    VirtualHost configuration:
    *:80                   localhost (/private/etc/apache2/extra/httpd-vhosts.conf:23)
    
  • Inicia apache con sudo apachectl start
  • Ahora, después de vaciar los cachés del navegador, ingrese localhost en la barra de direcciones de su navegador.
respondido por el klanomath 01.10.2016 - 21:38
2

En mi caso, la instalación de OS X Sierra hizo copias de mis archivos de configuración httpd con el sufijo [nombre de archivo] ~ anterior. Luego deshabilitó muchos módulos en httpd.conf (lo cual es típico por alguna razón después de una actualización de OS X). Y luego Apache siguió estrellándose silenciosamente ... totalmente desconcertándome.

$ ps ax | grep http

  [ no http was listed! ]

# tail -f  /var/log/system.log

  [ this showed that apache2 was attempting to restart every 10 seconds ]

# apachectl

  [ this showed the missing log directory error ]

De alguna manera, durante la actualización de OS X, se mantuvo un vhost que había hecho directamente en httpd.conf (por lo general no es prudente, es mejor poner un directorio adicional de cosas personalizadas), y ese vhost tenía una carpeta de registro no estándar. La actualización de OS X eliminó esa carpeta de registro personalizado (por extraño que lo hiciera en realidad), por lo que al reiniciarse, se produjo un error silencioso ya que la ruta del registro no era válida para la vhost personalizada que tenía en httpd.conf

Creé directorios para respetar esa carpeta de registro no estándar. Huzzah, en 10 segundos, apache2 se había reiniciado y la normalidad había regresado. Todavía tenía que habilitar módulos nuevamente en httpd.conf, y también descomentar varias líneas para obtener configuraciones adicionales de extra. Pero una vez que el servidor web se está ejecutando, una revisión rápida del navegador para ver qué sitios aún no estaban disponibles (o se estaban redirigiendo) permitía restaurar esas líneas de configuración.

    
respondido por el rickatech 06.01.2017 - 11:47
1

Gracias, esto funciona. Pero si está intentando acceder al sitio web de PHP, debe cargar el módulo libexec/apache2/libphp5.so . Solo incomprensible:

LoadModule php5_module libexec/apache2/libphp5.so

    
respondido por el Niraj Chauhan 06.10.2016 - 18:24

Lea otras preguntas en las etiquetas