4 votos

Hosts virtuales No funciona en OSX Mavericks

En Mac OS X 10.9.3 he Incluido http-vhosts en httpd.conf

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

He comentado el DocumentRoot y el Directorio en el httpd.conf

# DocumentRoot "/Library/WebServer/Documents"
# <Directory "/Library/WebServer/Documents">...</Directory>

He añadido lo siguiente a mi httpd-vhosts.conf archivo

<VirtualHost *.80>
    DocumentRoot /Users/gdboling/Sites/rocket-gen
    ServerName local.rocket-gen.com
    <Directory "/Users/gdboling/Sites/rocket-gen">
        Options Indexes FollowSymLinks
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

Y he añadido lo siguiente a mi archivo /etc/hosts

127.0.0.1    local.rocket-gen.com

He reiniciado Apache

sudo apachectl restart

Hay un index.html en ese directorio, pero cuando accedo a http://local.rocket-gen.com desde el navegador tengo un 404. Me estoy poniendo esto en los logs de errores

[Tue Jun 17 19:09:10 2014] [error] [client 127.0.0.1] File does not exist: /usr/htdocs

No puedo entender por qué no está funcionando. Si puedo crear ese directorio como DocumentRoot en httpd.conf funciona. Pero necesito tener varios Hosts Virtuales, así que me gustaría conseguir el vhosts archivo de trabajo.

7voto

soxman Puntos 1569

Parece que tienes casi todo lo correcto. Estoy corriendo Mavericks con un par de docenas de hosts virtuales, por lo que este debe trabajar para usted.

En primer lugar, y esto podría ser todo lo que usted necesita hacer para arreglar las cosas, deberá incluir su DocumentRoot en las comillas. Así,

DocumentRoot /Users/gdboling/Sites/rocket-gen

se convierte en

DocumentRoot "/Users/gdboling/Sites/rocket-gen"

A continuación, agregue el siguiente a su /etc/hosts archivo, en la línea inmediatamente siguiente a lo que ya tiene. Su hosts archivo debe ser:

Usted tiene esta parte:

127.0.0.1    local.rocket-gen.com

Ahora agregue el derecho a continuación:

::1     local.rocket-gen.com

Tengo cada uno de mis vhosts conjunto en hosts de esta manera.

0voto

Garex Puntos 339

Obviamente, su apache no puede encontrar su definidos root del documento. En mi opinión, mezclar un poco las cosas.

En primer lugar, corregir la errata en el contenedor VirtualHost. Definir el direccionamiento de un puerto con dos puntos, no es un "."

<VirtualHost *:80>...</VirtualHost>

En segundo lugar, si usted desea alojar varios servidores por nombre y no por su dirección IP, usted necesita usar hosts virtuales basados en nombre. Luego, por supuesto, en la configuración de Apache que se perdió la directiva NameVirtualHost, si usted desea hacerlo de esta manera.

NameVirtualHost server1.example.org:80

(http://httpd.apache.org/docs/2.2/vhosts/name-based.html)

SIEMPRE se establece el nombre del servidor, de lo contrario apache no puede chdir a su nuevo documentroot.

En tercer lugar, en el principal httpd.conf configuración de la parte en la que comentó el DocumentRoot. No hacer esto con las reglas de acceso en el Directorio " / " sección de su ex DocumentRoot?

Cuarto, si desea configurar duro VirtualHost en lugar de NameVirtualHost, no se olvide de la directiva Listen. Así que para eso se necesita un

Listen *:80

en su principal httpd.conf. Si desea configurar las diferentes servidores, en diferentes direcciones IP, debe configurar de la siguiente forma:

  • agregar la Dirección IP y el nombre de resolverse en /etc/hosts
  • añadir "Escuchar server1.ejemplo.com:80" en el principal httpd.conf
  • consulte a su instancia de servidor como <VirtualHost server1.example.com:80>...
  • SIEMPRE se establece el nombre del servidor

-1voto

user3159132 Puntos 1

Esto me pasó a mí cuando he actualizado a Mavericks (10.9.5). Apple parece haber eliminado el "Compartir Web" de las "Preferencias del Sistema" de la aplicación, lo cual fue importante para la forma en que el http.conf archivo fue escrito.

Dos formas de solucionarlo:

  1. Iniciar apache con WEBSHARING_ON definido:

apachectl -k start -D WEBSHARING_ON

  1. Editar el http.conf archivo para quitar <IfDefine WEBSHARING_ON> y el correspondiente </IfDefine>, PERO NO el contenido entre las etiquetas.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X