Publicidad

Crear un Apache virtualhost en Linux


Por Alex el 13/05/2022 , Comentar el artículo

Comparte este artículo:      




Con la opción de Apache2 de Virtualhost podemos crear multiples webs diferenciados cada uno de ellos por una url diferente.


Vamos a ver cómo configurar múltiples websites y darles nombre para poder tener diferentes proyectos web ... Suponemos para el ejemplo que tenemos dos webs llamadas http://netveloper1.local y http://netveloper2.local. Si pulsamos esos enlaces naturalmente nos os van a funcionar porque no están activadas para que funciones.

Lo primero que hacemos es crear dos directorios de trabajo en /var/www/html/ (es posible que tengáis trabajar con sudo o root en ese directorio), el directorio es lo de menos y podéis crear el que más os guste y donde queráis del disco, lo único enlazar siempre el mismo en los ficheros de configuración.

Lo dicho tenemos dos directorios /var/www/html/netveloper1 y /var/www/html/netveloper2 con un fichero en cada directorio llamado index.html y dentro podemos poner un texto algo como "Estoy en netveloper1 y Estoy en netveloper2. Quedaria asi:

Estructura de directorios en disco

Ahora para que las url funcionen vamos a enlazar el nombre de dominio netveloper1.local con nuestra IP en el fichero /etc/hosts, si hacemos la prueba con una maquina virtual o servidor remoto, esa IP ha de ser la del servidor donde están alojados los archivos. Quedaría asi:

Fichero etc hosts asociación de dominio-ip

El siguiente paso es configurar el fichero virtualhost, en este caso, un fichero virtualhost para cada url y lo hemos de poner en /etc/apache2/sites-available y tiene que terminar con la extensión .conf. Los ficheros del ejemplo se llaman netveloper1.local.conf con la siguiente estructura:

<VirtualHost *:80>
  # Basic setup
  ServerName  netveloper1.local
  DocumentRoot /var/www/html/netveloper1
  DirectoryIndex index.html

<Directory /var/www/html/netveloper1>

    #Don't show indexes for directories
    Options +Indexes +FollowSymLinks
    AllowOverride all
    Require all granted
</Directory>
  #
</VirtualHost>

netveloper2.local.conf con la siguiente estructura:

<VirtualHost *:80>
  # Basic setup
  ServerName  netveloper2.local
  DocumentRoot /var/www/html/netveloper2
  DirectoryIndex index.html

 <Directory /var/www/html/netveloper2>

    #Don't show indexes for directories
    Options +Indexes +FollowSymLinks
    AllowOverride all
    Require all granted
  </Directory>
  #
</VirtualHost>


Expliquemos un poco este fichero .conf, lo importante:

ServerName el nombre del dominio que sigue tiene que ser el que pondréis en el navegador sin el http
DocumentRoot y Directory son la ruta donde esta el web
DirectoryIndex es el archivo que se ejecutara por defecto cuando en el navegador se escriba en dominio, por ejemplo, netveloper1.local cargará el fichero index.html por defecto.

Una vez creados tenemos que crear un enlace simbólico en /etc/apache2/sites-enabled de cada fichero de la siguiente forma:

ln -s /etc/apache2/sites-available/netveloper1.local.conf /etc/apache2/sites-enabled/
ln -s /etc/apache2/sites-available/netveloper2.local.conf /etc/apache2/sites-enabled/


Debería quedaros de la siguiente forma:

Vista del directorio apache2 sites-enabled

Hecho esto nos queda reiniciar Apache2 y probar las url del principio del articulo:

/etc/init.d/apache2 restart


Ahora probamos las urls:

http://netveloper1.local
http://netveloper2.local

Y tiene que salir en el navegador el mensaje que hemos puesto dentro del index.html ... Pues igual que hemos creado un Virtualhosts podemos crear N y poner multiples dominios en un servidor apache2.

Y esto es todo, y feliz programming
Saludos
Alex.



Si te ha gustado el artículo compartelo en:      




Añadir un comentarios:

Nombre:
Email: (no se publica el email)




SIGUENOS EN

ARCHIVO

Publicidad

.