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 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 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,