sábado, 14 de abril de 2018

Virtual Host con Linux-Ubuntu LAMPP

Vamos a aprender cómo configurar varios dominios en una misma máquina  Linux con LAMPP y de este modo poder utilizar una misma máquina para servir contenido a varios dominios con un único servidor Web. 
Aquí vimos como hacerlo en Windows.


Los archivos que usaremos son (Guardaremos los originales con su mismo nombre seguido de “-original” para conservarlos sin cambios):

/etc/hosts
Indica el mapeo de hosts

/opt/lampp/etc/httpd.conf
Configuración de archivos de Apache

/opt/lampp/etc/extra/httpd-vhosts.conf
Configuración del VirtualHost

En este caso para editar estos archivos y hacer los cambios vamos a utilizar el editor nano.


Virtual Host con Ubuntu-LAMPP


NOTA: Desde este documento se pueden copiar las líneas como siempre (CTRL+C) y pegarlas en la terminal con las teclas CTRL+MAY+V, también funciona esta combinación de teclas dentro del editor nano siempre que nos aseguremos que el cursor está en la línea en donde queremos pegar el texto (dentro de nano no funciona el cursor del ratón para posicionarnos).

Entramos a la cuenta con privilegios de administración en el linux.

Sudo su

(Con esta orden entramos como superusuario en terminal root, al estar como superusuario nos evitamos tener que poner sudo al principio de cada orden).

Detenemos el LAMPP

/opt/lampp/lampp stop

Creamos una carpeta con el nombre que usaremos para el dominio dentro de /opt/lampp/htdocs. Por ejemplo creo la carpeta pruebas en ese lugar, quedando la ruta como /opt/lampp/htdocs/pruebas

mkdir /opt/lampp/htdocs/miweb

Creamos archivos de prueba llamados index.html, index.htm e index.php (si queremos únicamente ver el funcionamiento sin complicarnos demasiado, podemos crear únicamente un archivo index, como index.html) dentro de la carpeta que acabamos de hacer.

Crear archivo nuevo y abrirlo para edición con editor nano (index.html):

nano /opt/lampp/htdocs/miweb/index.html

Insertamos las siguientes líneas:

<html>
<head>
<title>Prueba del HTML</title>
</head>
<body>
<p>  </p>
<p>  </p>
<p>  </p> <p>PROBANDO EL HTML EN LA CARPETA MIWEB</p>
</body>
</html>

Guardamos y salimos (CTRL+O y CTRL+X)

Vamos a copiar este archivo que acabamos de crear y copiarlo dos veces cambiándole el nombre para, después, editarlos y hacer los cambios oportunos.

cp /opt/lampp/htdocs/miweb/index.html /opt/lampp/htdocs/miweb/index.htm

Volvemos a copiarlo con el siguiente nombre de archivo:

cp /opt/lampp/htdocs/miweb/index.html /opt/lampp/htdocs/miweb/index.php

Editamos el archivo nuevo con nano (index.htm):

nano /opt/lampp/htdocs/miweb/index.htm

En rojo las líneas a cambiar y quedaría así:

<html>
<head>
<title>Prueba del HTM</title>
</head>
<body>
<p>  </p>
<p>  </p>
<p>PROBANDO EL HTM EN LA CARPETA MIWEB</p>
</body>
</html>

Guardamos y salimos (CTRL+O y CTRL+X)

Editamos el otro archivo nuevo con nano  (index.php):

nano /opt/lampp/htdocs/miweb/index.php

En rojo las líneas a cambiar y quedaría así:

<html>
<head>
<title>Prueba del PHP</title>
</head>
<body>
<p>  </p>
<p>  </p>
<?php echo "PROBANDO EL PHP EN LA CARPETA MIWEB"; ?>
</body>
</html>

Guardamos y salimos (CTRL+O  y CTRL+X)

Abrimos el archivo el hosts y agregamos el nombre del nuevo dominio virtual.

Hacemos una copia del archivo hosts

cp /etc/hosts /etc/hosts-original

a) Editamos hosts

nano /etc/hosts

b) Agregamos el nombre del dominio virtual junto con la dirección del localhost en número.

El archivo contiene algo parecido a esto:

127.0.0.1 localhost
127.0.1.1 ubuntu

# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

Para nuestro ejemplo agregamos algunas lineas (en rojo):

NOTA.- Si queremos hacer algún comentario anteponemos el signo # , cuando terminemos pulsamos Enter para cambiar la línea y finalizarlo; por ejemplo: #pruebas encima de 127.0.0.1 para indicar a que carpeta pertenece.

#Localhost
127.0.0.1   localhost
127.0.1.1   ubuntu

#Nombre del equipo
127.0.1.1       pruebas

#pruebas
127.0.0.1       pruebas

# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

Guardamos y salimos (CTRL+O Y CTRL+X)

Necesitamos descomentar la línea “Include etc/extra/httpd-vhosts.conf” dentro del archivo httpd.conf.

Hacemos una copia del archivo httpd.conf

cp /opt/lampp/etc/httpd.conf /opt/lampp/etc/httpd-original.conf

a) Abrimos el archivo httpd.conf

nano /opt/lampp/etc/httpd.conf

b) Buscamos y descomentamos la línea #Include etc/extra/httpd-vhosts.conf quitando el signo # del principio (En nano podemos buscar con CTRL+W).

En el original

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

Quedando:

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

c) Guardamos y salimos (CTRL+O y CTRL+X)

En el archivo httpd-vhosts.conf introduciremos los datos necesarios para que el LAMPP pueda utilizar nuestra carpeta.

Hacemos una copia del archivo httpd-vhosts.conf

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

a) Abrimos el archivo httpd-vhosts.conf

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

b) Al final del fichero vemos algo así:

# match a ServerName or ServerAlias in any <VirtualHost> block.
#
<VirtualHost *:80>
    ServerAdmin webmaster@dummy.com
    DocumentRoot "/opt/lampp/docs/dummy-host.example.com"
    ServerName dummy-host.example.com
    ServerAlias www.dummy-host.example.com
    ErrorLog "logs/dummy-host.example.com-error_log"
    CustomLog "logs/dummy-host.example.com-access_log" common
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host2.example.com
    DocumentRoot "/opt/lampp/docs/dummy-host2.example.com"
    ServerName dummy-host2.example.com
    ErrorLog "logs/dummy-host2.example.com-error_log"
    CustomLog "logs/dummy-host2.example.com-access_log" common
</VirtualHost>


Insertamos las siguientes lineas al final:

#localhost
<VirtualHost *:80>
    DocumentRoot /opt/lampp/htdocs
    ServerName localhost
    ErrorLog logs/localhost-error_log
    CustomLog logs/localhost-access_log common
</VirtualHost>

#miweb
<VirtualHost *:80>
    DocumentRoot /opt/lampp/htdocs/miweb
    ServerName miweb
    ServerAlias www.miweb
    ErrorLog logs/miweb-error_log
    CustomLog logs/miwev-access_log common
</VirtualHost>

d) Guardamos y salimos (CTRL+O y CTRL+X)

Antes de ejecutar poner los permisos a los archivos index

chmod -R 755 /opt/lampp/htdocs/miweb

Probar que todo funcione correctamente
a) Inicializamos otra vez el XAMPP

/opt/lampp/lampp start

Cerramos la terminal del root con exit y después cerramos la terminal normalmente (si cerramos la terminal del root directamente nos saldrá un aviso de que hay una sesión activa y pregunta si queremos cerrarla, damos si y listo).

b) Probamos para ver si funciona todo llamando a los index desde el navegador (O si únicamente hicimos uno, pues a ese :(). Si ponemos simplemente http://miweb se ejecutará el index.html):

http://miweb/index.html
http://miweb/index.htm
http://miweb/index.php

c) Nos aseguramos que la página principal de administración del LAMPP aun funciona tecleando también en el navegador http://localhost

No hay comentarios:

Publicar un comentario