«

»

oct 07

Imprimir esta Entrada

Servidores virtuales en Ubuntu con Lampp

Cuando estas programando una web acabas necesitando de algún servidor web en tu propio pc. Al principio solo tienes un proyecto. Con el paso del tiempo empiezas otro y luego otro y otro y otro…En algunos incluso acabas haciendo varias versiones de uno mismo pero dentro de su carpeta. Acabas añadiéndole lo que serán subdominios cuando lo alojes en internet, con lo que acabas con rutas en tu localhost del tipo: http://localhost/miproyecto4/version1/subdominio2/….¿Un follón verdad? ¿no seria mejor tener rutas del tipo http://miproyecto4, http://subdominio2… ?Pues con Lampp es posible hacerlo. Para ello se supone que ya lo tienes instalado en tu Ubuntu, por lo que no se va a explicar como instalarlo.1- Apaga tu servidor local:

administrador@administrador-desktop:~$ sudo /opt/lampp/lampp stop

2- Abre nautilus en modo root para que te deje editar los archivos necesarios. Yo prefiero hacerlo asi porque es mas visual que andar todo el rato con el terminal:

administrador@administrador-desktop:~$ sudo nautilus

3- Abre el archivo hosts que esta en la carpeta etc

/etc/hosts

En él te encontrarás algo asi:

127.0.0.1    localhost127.0.1.1    administrador-desktop# The following lines are desirable for IPv6 capable hosts::1     ip6-localhost ip6-loopbackfe00::0 ip6-localnetff00::0 ip6-mcastprefixff02::1 ip6-allnodesff02::2 ip6-allroutersff02::3 ip6-allhosts

En este archivo tienes que escribir los nombres de dominios que vas a utilizar en local. Por ejemplo: tuproyecto1.com, tuproyecto2.com con la IP 127.0.0.1 quedando algo así:

127.0.0.1    localhost127.0.1.1    administrador-desktop# aqui van mis proyectos127.0.0.1    tuproyecto1.com127.0.0.1    tuproyecto2.com# The following lines are desirable for IPv6 capable hosts::1     ip6-localhost ip6-loopbackfe00::0 ip6-localnetff00::0 ip6-mcastprefixff02::1 ip6-allnodesff02::2 ip6-allroutersff02::3 ip6-allhosts

4- Guarda el archivo y ciérralo5- Ahora abre el archivo httpd.conf que está en: /opt/lampp/etc

/opt/lampp/etc/httpd.conf

6- Busca la línea que tiene escrito esto:

#Include etc/extra/httpd-vhosts.conf

y le quitas la # dejándolo así:

Include etc/extra/httpd-vhosts.conf

7- Guarda el archivo y ciérralo.8- Ya queda solo el último archivo a editar que es httpd-vhosts.conf y que está en: /opt/lampp/etc/extra

/opt/lampp/etc/extra/httpd-vhosts.conf

Te encontrarás algo parecido a esto:

## Virtual Hosts## If you want to maintain multiple domains/hostnames on your# machine you can setup VirtualHost containers for them. Most configurations# use only name-based virtual hosts so the server doesn’t need to worry about# IP addresses. This is indicated by the asterisks in the directives below.## Please see the documentation at# <URL:http://httpd.apache.org/docs/2.2/vhosts/># for further details before you try to setup virtual hosts.## You may use the command line option ‘-S’ to verify your virtual host# configuration.## Use name-based virtual hosting.#NameVirtualHost *:80## VirtualHost example:# Almost any Apache directive may go into a VirtualHost container.# The first VirtualHost section is used for all requests that do not# match a ServerName or ServerAlias in any <VirtualHost> block.#<VirtualHost *:80>ServerAdmin webmaster@dummy-host.example.comDocumentRoot /www/docs/dummy-host.example.comServerName dummy-host.example.comServerAlias www.dummy-host.example.comErrorLog logs/dummy-host.example.com-error_logCustomLog logs/dummy-host.example.com-access_log common</VirtualHost><VirtualHost *:80>ServerAdmin webmaster@dummy-host2.example.comDocumentRoot /www/docs/dummy-host2.example.comServerName dummy-host2.example.comErrorLog logs/dummy-host2.example.com-error_logCustomLog logs/dummy-host2.example.com-access_log common</VirtualHost>

Bien. La pate importante es lo que esta entre <VirtualHost *:80> y </VirtualHost> Cada servidor virtual estará contenido dentro de estas etiquetas y puedes crear todas las que necesites:

  • ServerAdmin: Escribes el correo del administrador. Como si quieres inventártelo.
  • DocumentRoot: Escribes la ruta en donde está tu proyecto web
  • ServerName: Escribes el nombre de dominio que habías puesto en /etc/hosts
  • ServerAlias: Escribes otra manera de como llamar al dominio. Opcional.
  • ErrorLog: Parece que es donde se dejan los log. Yo escribo el nombre del proyecto por si acaso ; )
  • CustomLog: Parece que es donde se dejan otros log. Yo escribo el nombre del proyecto por si acaso ; )

Quizá ya te hagas una idea de lo que hay que hacer pero, por si acaso. Un ejemplo mas para el dominio tuproyecto1.com:

<VirtualHost *:80>ServerAdmin webmaster@tuproyecto1.comDocumentRoot /opt/lampp/htdocs/tuproyecto1.com/carpeta1/carpeta1.2/ServerName tuproyecto1.comServerAlias tuproyecto1.comErrorLog logs/tuproyecto1.com-error_logCustomLog logs/tuproyecto1.com-access_log common</VirtualHost>

9- Crea uno también para el localhost y así te evitas dolores de cabeza. A mi me pasó que ya no podía entrar a la carpeta de xampp porque se me redirigía a la de los proyectos:

<VirtualHost *:80>ServerAdmin webmaster@localhostDocumentRoot /opt/lampp/htdocsServerName localhostServerAlias localhostErrorLog logs/localhost-error_logCustomLog logs/localhost-access_log common</VirtualHost>

Ahora tendrás algo parecido a esto:

## Virtual Hosts## If you want to maintain multiple domains/hostnames on your# machine you can setup VirtualHost containers for them. Most configurations# use only name-based virtual hosts so the server doesn’t need to worry about# IP addresses. This is indicated by the asterisks in the directives below.## Please see the documentation at# <URL:http://httpd.apache.org/docs/2.2/vhosts/># for further details before you try to setup virtual hosts.## You may use the command line option ‘-S’ to verify your virtual host# configuration.## Use name-based virtual hosting.#NameVirtualHost *:80## VirtualHost example:# Almost any Apache directive may go into a VirtualHost container.# The first VirtualHost section is used for all requests that do not# match a ServerName or ServerAlias in any <VirtualHost> block.#<VirtualHost *:80>ServerAdmin webmaster@tuproyecto1.comDocumentRoot /opt/lampp/htdocs/tuproyecto1.com/carpeta1/carpeta1.2/ServerName tuproyecto1.comServerAlias tuproyecto1.comErrorLog logs/tuproyecto1.com-error_logCustomLog logs/tuproyecto1.com-access_log common</VirtualHost><VirtualHost *:80>ServerAdmin webmaster@localhostDocumentRoot /opt/lampp/htdocsServerName localhostServerAlias localhostErrorLog logs/localhost-error_logCustomLog logs/localhost-access_log common</VirtualHost>

10- Guarda el archivo y ciérralo.11- Cierra el nautilus que tienes abierto en modo root que ya no lo necesitas mas.12- Enciende tu servidor local:

administrador@administrador-desktop:~$ sudo /opt/lampp/lampp start

13- Abre tu navegador favorito y comprueba que vas a diferentes sitios al escribir localhost, tuproyecto1.com, tuproyecto2.com…

4 comentarios

Saltar al formulario de comentarios

  1. Berenes

    ¿Has oído hablar alguna vez de las sangrías para hacer más legible el código?

    1. Joseph Pérez

      Prefiero las que se beben ; )
      Joseph Pérez publicado recientemente…Felipe González: “¿Por qué un niño tiene que aguantar una presión en la puerta de su casa?”My Profile

  2. Alberto

    Salvo por el detalle de las sangrías (que tan amablemente te han comentado) un artículo muy bien escrito y fácil.

    Ya lo había hecho un par de veces pero con este es con el que finalmente he memorizado el proceso.

    Muchas gracias.

  3. PillsStoreki

    We’ve got the best solution for your Lopressor purchase! Why? Just because you can buy it only for 0.96 USD with us!

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *


*

Puedes utilizar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

CommentLuv badge