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)
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:
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
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:
Personalizando el nuevo archivo *.conf
En este ejemplo añadiré etiquetas <Directory> al archivo con algunas directrices
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:
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
Luego reiniciamos el servicio de apache
o
Para añadir el módulo de urls amigables o rewrite
Y reiniciar de nuevo el servicio
O si lo prefieren volver a cargar apache2 sin necesidad de bajar el servicio:
Espero sea de utilidad.
Saludos,
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
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
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: