Configurar VirtualHost en apache2

Mandr4k3

Usuario Casual nvl. 2
8 Jun 2006
2.666
9
37
Internet
Una de las cosas que más me preguntan es como configurar diversos virtualhost en apache 2 sobre una distribución de Linux.

Para este sencillo tutorial me basaré en la distribución Debian 9.

Lo primero es saber si tenemos apache2 instalado en nuestra maquina:

Para todos los comandos siempre como super usuario (su)

Código:
# dpkg -l |grep apache

Si no aparece nada en la lista, quiere decir que no esta instalado, por lo que procederemos a instalarlo, junto a unas útiles herramientas de apache para que se pueda trabajar con SSL junto con el módulo FastCGI para PHP para acelerar la interpretación de código:

Código:
# apt-get install apache2 apache2-dev apache2-utils  php7.0-fpm

Una vez instalado, procederemos a configurar nuestros virtualhost , ¿que es un virtualhost? cuando uno administra servidores, es probable que quiera tener múltiples dominios, todos en una sola maquina, claro está, dependiendo de lo que consuman las aplicaciones en aquellas maquinas, esto es lo que hacen los reseller de webhosting con herramientas como cpanel.

Manos a la obra

Editaremos el virtualhost por defecto, que tiene como ubicación /var/www/html/
Usaremos el comando VIM, como todo un vikingo de linux
Código:
# vim /etc/apache2/sites-available/000-default.conf

fskg4w


Podemos observar algunas variables sin comentario como ServerAdmin y DocumentRoot, y una variable con comentario ServerName

ServerName = dns público que tendra ese virtualhost
ServerAdmin = Correo del administrador de sistemas, ahí llegaran notificaciones de errores criticos
DocumentRoot = Ubicación donde estará nuestro sitio web o aplicación
ErrorLog = ubicación de Log de errores de apache y php
CustomLog = ubicación de Log de avisos de sistema que no sean errores ni warning

Recomiendo ser ordenado, si desean agregar un nuevo virtualhost copien el archivo default.conf y renombrelo como desee ej:

Código:
# cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/001-minuevositio.conf

Personalizando el nuevo archivo *.conf

En este ejemplo añadiré etiquetas <Directory> al archivo con algunas directrices

fskniy


Estas se usan para englobar un grupo de directivas que se aplicarán solamente al directorio especificado y a sus subdirectorios. Puede incluir a cualquier directiva cuyo uso esté permitido en un contexto <directory>. Directory-path puede ser tanto la ruta completa a un directorio.

En este caso:

Código:
<Directory />
AllowOverride None
</Directory>

Se refiere a que no sobreescriba las reglas de algún archivo .htaccess presente en el directorio.

Una vez editado nuestro archivo, grabamos y quitamos ( :wq )

Añadimos el nuevo archivo de configuración al proceso de apache

Código:
# a2ensite 001-minuevositio.conf

Luego reiniciamos el servicio de apache

Código:
# /etc/init.d/apache2 restart

o

Código:
# systemctl apache2 restart

Para añadir el módulo de urls amigables o rewrite

Código:
# a2enmod mod_rewrite

Y reiniciar de nuevo el servicio
Código:
# systemctl apache2 restart

O si lo prefieren volver a cargar apache2 sin necesidad de bajar el servicio:

Código:
# systemctl apache2 reload

Espero sea de utilidad.

Saludos,
 
Última edición:
  • Like
Reacciones: fearman22