2009-08-25 14 views
7

Estoy intentando ejecutar más de un virtualhost (?), Por ejemplo: http:/localhost apuntará a un proyecto, http:/newsite a otro y http:/myfavourite nuevamente a un proyecto diferente una raíz de documento diferente.Ejecutando varios sitios web localmente Apache PHP Ubuntu

(cada http: // es http:/aquí debido a restricciones de publicación de anuncios hipervínculo)

he tenido ningún éxito buscando dónde editar los archivos de Apache en/etc/apache2. ¿Estoy buscando un archivo de fantasmas?

Cualquier consejo sería increíble, gracias.

Respuesta

1

localhost no tiene nada que ver con apache, pero es un alias de su máquina (ip 127.x.x.x).

tendrás que editar /etc/hosts para lograr lo que quieres.

¿por qué quieres hacer eso? no es http://localhost/newsite suficiente?

+1

La configuración de un servidor virtual adecuado en su cuadro de desarrollo le brinda un entorno de desarrollo más realista que el uso de un directorio en/var/www /. – Luke

4

Puede editar sus/etc/hosts y agregar varios nombres que apuntan a 127.0.0.1, luego agregar entradas VirtualHost para cada uno de esos nombres. Dependiendo de su servidor, la configuración podría estar en /etc/apache2/conf/httpd.conf o en/etc/apache2/sites-available. Si es el último, entonces here es el primer hit de Google que obtuve para la configuración.

9

Aquí es un capítulo de un libro electrónico que explica cómo crear sistemas principales virtuales para hacer exactamente lo que quiere - y los ejemplos están usando Ubuntu: Creating A Local Domain Using Apache Virtual Hosts

En pocas palabras:

  • Primero necesita crear el VirtualHost
  • Luego, debe editar su archivo de hosts (en Linux, es /etc/hosts) para que el nuevo "pseudo nombre de dominio" apunte a su máquina.

Para VirtualHost, con Ubuntu, crearía un nuevo archivo en /etc/apache2/sites-available/; por ejemplo, llamado your-site.com; contendría algo como esto:

<VirtualHost *:80> 
    ServerName your-site.com 
    DocumentRoot /.../www/... 

    <Directory /.../www/...> 
     Options Indexes FollowSymLinks Includes 
     AllowOverride All 
     Order allow,deny 
     Allow from all 
    </Directory> 
</VirtualHost> 

Y registrar este archivo por lo que está cargada por Apache, con este comando:

sudo a2ensite your-site.com 

Y, a continuación, vuelva a cargar Apache:

sudo /etc/init.d/apache2 reload 


Luego debe editar/etc/hosts para agregar una línea como esta:

127.0.0.1  your-site.com 

Así que "su-site.com" en realidad apunta a su propia computadora.


Lo importante es que el nombre utilizado para acceder a su sitio web en un navegador es el que se declara en el archivo hosts; también debe ser el mismo que el utilizado por el directivr ServerName en la configuración de Apache.


Cuando lo ha hecho para un VirtualHost ... Es lo mismo para todos los demás: solo cambia el nombre del sitio, y es DocumentRoot.


Espero que esto ayude!

+0

¿El valor 'ServerName' debe tener una extensión? Noté que usaste 'your-site.com', pero ¿podrías haber usado algo como' mysite'? – henrywright

Cuestiones relacionadas