Configuración de Apache2 en Debian para soportar VirtualHost

A continuación, muestro un ejemplo, que puede servir de plantilla, para configurar Apache2 con lo básico para soportar VirtualHost, por lo tanto la posibilidad de tener varios dominios y varias carpetas (incluso fuera del típico /var/www) y con soporte de URL Rewriting, importantes para instalaciones de WordPress, Moodle, CakePHP, etc.

Antes de esto, recordar que los archivos de configuración se encuentran en el directorio: /etc/apache2/sites-available/

Si bien es cierto que, se puede tener un solo archivo para toda la configuración de Apache, se recomienda tener un archivo de configuración por sistema, de tal modo que no tengamos un archivo grande, sino un archivo por sistema, fácil de editar y configurar.

También es necesario recordar que, se debe colocar en el archivo en el directorio sites-available antes mencionado para poder activarlo y desactivarlo con los comandos

sudo a2ensite example.com.conf
sudo a2dissite example.com.conf

También se puede deshabilitar la configuración por defecto:

sudo a2dissite 000-default.conf

También recomiendo tener un archivo por cada sub domain, ya que, por lo general, los subdomains son sistemas completamente separados físicamente (en el sistema de archivos) y se puede requerir configuraciones específicas y separadas.

A continuación un archivo de ejemplo que involucra todas las prácticas mencionadas.

<VirtualHost *:80>
  ServerAdmin webmaster@localhost
  ServerName subdomain.example.com
  ServerAlias subdomain.example.com
  DocumentRoot /home/user/www/subdomain.example.com/main
  ErrorLog ${APACHE_LOG_DIR}/error.log
  CustomLog ${APACHE_LOG_DIR}/access.log combined
  
  <Directory /home/user/www/subdomain.example.com/main>
    Options FollowSymLinks
    AllowOverride All
    Order allow,deny
    Allow from all
    # New directive needed in Apache 2.4.3:
    Require all granted
  </Directory>
</VirtualHost>

Cada modificación requiere el reinicio del servicio de Apache.

Deja un comentario