2 votos

localhost carga la página por defecto de apache

Estoy configurando un localhost y todo parece que debería funcionar pero cada vez que voy a site.local se carga la página por defecto de Apache localhost (¡funciona!).

Aquí hay una copia de mi archivo de hosts:

##
##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting. Do not change this entry.
##
127.0.0.1    localhost
255.255.255.255 broadcasthost
::1 localhost
fe80::1%1o0 localhost

#####
 DEV
#####
# SITE
127.0.0.1    site.local
::1          www.site.local

y mi vhost:

<VirtualHost *:8080>
    ServerAdmin test@test.com
    ServerName site.local
    DocumentRoot "/Users/me/site"
    ErrorLog "/Applications/MAMP/logs/site.local-error_log"
    CustomLog "/Applications/MAMP/logs/site.local-access_log" common
    <Directory "/Users/me/site">
        Options Indexes FollowSymLinks
        AllowOverride All
    </Directory>
</VirtualHost>

Cosas que he hecho para asegurarme de que no es un error del usuario:

  • descomenté la línea en el archivo httpd.conf para incluir mi archivo vhost
  • usado apachectl configtest para probar mi archivo (volvió diciendo que la sintaxis estaba bien)

Cosas a tener en cuenta:

  • Utilizo los puertos 8080 y 3307 para Apache y MYSQL
  • Si voy a site.local:8080 carga pero no renderiza los elementos como debería (en su lugar carga los elementos del html en formato de lista)
  • esto es de una instalación FRESCA de MAMP
  • OS: OS X Yosemite versión 10.10.5
  • Versión de MAMP: 3.5

No veo qué está fallando... ¿alguna idea?

ACTUALIZACIÓN

localhost funciona como debería con el puerto 80. 8080 = la página por defecto de apache, pero 80 carga las páginas del sitio...

4voto

Douglas Puntos 10417

Basado en tu comentario de que cuando vas a site.local:8080 obtienes una página blanca con las palabras "It Works!" similar a la captura de pantalla de abajo

It Works!

Lo que está viendo es la página web basada en el configuración global del servidor donde el DocumentRoot es el valor por defecto de MAMP.

Usted menciona en su OP que

Si voy a site.local:8080 carga pero no renderiza los elementos como debería (en su lugar carga los elementos del html en formato de lista)

Apache no va a renderizar su página web como una lista HTML (a menos que usted se lo indique). Lo más probable es que lo que veas es un listado de directorios similar a este:

Index Listing

Se obtiene ese listado por la línea Options Indexes FollowSymLinks en su httpd.conf archivo. Si quiere desactivar esto, elimine la palabra Índices de esa línea y el listado ya no aparecerá.

Su configuración de host virtual

En primer lugar, tenemos que entender cómo Apache maneja las peticiones de host virtual. Desde el Documentación de Apache :

Cuando llegue una solicitud, el servidor encontrará el mejor argumento (más específico) argumento coincidente basado en la dirección IP y el puerto utilizados por la solicitud. Si hay más de un host virtual que contenga esta combinación de dirección y puerto que contenga esta combinación de dirección y puerto, Apache comparará además las directivas ServerName y ServerAlias con el nombre del servidor presente en la petición.

Si omite la directiva ServerName de cualquier host virtual basado en nombres, el servidor utilizará por defecto un nombre de dominio completo (FQDN) derivado del nombre de host del sistema. Este nombre de servidor implícito puede puede conducir a una coincidencia de hosts virtuales contraintuitiva y se desaconseja.

Si te das cuenta, su host que se define la configuración global del servidor es el mismo que el del host virtual.

Probablemente es aquí donde se produce el error.

Ahora, mi solución para esto es un poco más complicada al principio, pero infinitamente más eficiente porque trato de evitar convertir mi máquina en un cliente y un servidor. Hago todo mi desarrollo en un Mac con una máquina virtual que ejecuta mi servidor AMP. De esta manera puedo reflejar mi entorno de producción mucho más cerca y no tengo servicios innecesarios (como Apache y MySQL) que se ejecutan en OS X; todos están relegados a la VM. La VM tiene su propia IP, su propio nombre de servidor, todo para que cuando apunte mi navegador a ella, sepa qué resultados esperar.

Tengo un escrito sobre cómo instalar una VM de FreeBSD en VirtualBox que se ejecuta en un Mac que tiene activado el autoarranque. Si estás interesado, puedo compartirlo contigo.

0voto

klanomath Puntos 19587

Prefacio:

  1. Ejecución de apachectl configtest no comprueba /Aplicaciones/MAMP/conf/apache/httpd.conf por coherencia, pero el archivo de configuración de Apache por defecto en OS X /privado/etc/apache2/httpd.conf .

    Tienes que usar /Applications/MAMP/Library/bin/apachectl configtest en su lugar para comprobar /Aplicaciones/MAMP/conf/apache/httpd.conf .

  2. El uso de un nombre de dominio completo en la forma nombre.local se desaconseja. Estos fqdns son reservado para el DNS Multicast (mDNS). Puede utilizar .home, .development o .test.

Preparado:

Configuración de MAMP/Apache/hosts:

/etc/hosts :

...
127.0.0.1       site.development
127.0.0.1       www.site.development
::1             site.development
::1             www.site.development

Puerto de Apache en MAMP: 8080 (¡Inicio Web desactivado!)

Contenido del archivo httpd-vhosts.conf

NameVirtualHost *:8080
...
<VirtualHost *:8080>
    ServerAdmin test@test.com
    ServerName site.development
    ServerAlias www.site.development
    DocumentRoot "/Users/me/site"
    ErrorLog "/Applications/MAMP/logs/site.development-error_log"
    CustomLog "/Applications/MAMP/logs/site.development-access_log" common
    <Directory "/Users/me/site">
        Options Indexes FollowSymLinks
        AllowOverride All
    </Directory>
</VirtualHost>

Puede comprobar su archivo de hosts virtuales con /Applications/MAMP/Library/bin/apachectl -S .

Si has configurado correctamente tu servidor MAMP y has copiado los archivos predeterminados de MAMP index.php y MAMP-PRO-Logo.png a la carpeta /Users/me/site verá la siguiente página "por defecto":

MAMP website default start page

Entrar en http://localhost:8080/ en el navegador mostrará la misma página.

Si no ejecuta ninguna otra instancia de Apache (especialmente el Apache por defecto de OS X) no podrá conectarse a localhost:80 o sitio.desarrollo:80 .


Si ejecuta otra instancia de Apache (por ejemplo, iniciada por launchd o invocada por sudo apachectl start puede conectarse a él introduciendo localhost:80 , sitio.desarrollo:80 o http://site.development:80 . Verá la página de Apache por defecto:

enter image description here

Si OS X Server está instalado adicionalmente llegarás a una página de "Bienvenido a OS X Server" después de entrar localhost:80 aunque Páginas web está desactivado en Server.app:

enter image description here

0voto

James Chau Puntos 1

index.html , info.php , index.py etc. residen en /var/www o /var/www/test o lo que usted defina en la configuración. Mira dentro del servidor VM ya sea UBUNTU o SUSE o lo que sea VMWare o VirtualBox y no puedes encontrar /var/www . OS X no juega con las comunidades abiertas. No hay forma de hacer que los servidores VM controlen los navegadores que se ejecutan en una máquina Apple.

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