Configurar VirtualHost en apache2

Discussion in 'Manuales' started by Mandr4k3, Jul 6, 2017.

  1. Mandr4k3

    Mandr4k3 Usuario Casual nvl. 2
    47/82

    Joined:
    Jun 8, 2006
    Messages:
    2,836
    Likes Received:
    8
    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)

    Code:
    # 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:

    Code:
    # 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
    Code:
    # vim /etc/apache2/sites-available/000-default.conf
    [​IMG]

    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:

    Code:
    # 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

    [​IMG]

    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:

    Code:
    <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

    Code:
    # a2ensite 001-minuevositio.conf
    Luego reiniciamos el servicio de apache

    Code:
    # /etc/init.d/apache2 restart
    o

    Code:
    # systemctl apache2 restart
    Para añadir el módulo de urls amigables o rewrite

    Code:
    # a2enmod mod_rewrite
    Y reiniciar de nuevo el servicio
    Code:
    # systemctl apache2 restart
    O si lo prefieren volver a cargar apache2 sin necesidad de bajar el servicio:

    Code:
    # systemctl apache2 reload
    Espero sea de utilidad.

    Saludos,
     
    #1 Mandr4k3, Jul 6, 2017
    Last edited: Jul 6, 2017
    fearman22 likes this.
  2. fearman22

    fearman22 Super Moderador
    Super Moderador
    262/325

    Joined:
    Oct 8, 2008
    Messages:
    16,324
    Likes Received:
    882
    Gracias compa, excelente post!
     
  3. PIXTRO

    PIXTRO Usuario Casual nvl. 2
    47/82

    Joined:
    Feb 15, 2008
    Messages:
    4,199
    Likes Received:
    27
    muy buen post se agradece