Con cada cambio de versión aparecen diferentes opciones en las configuraciones de un servidor web que se transforman en el dolor de cabeza del web admin. La idea de este artículo es que no sea un tutorial, sino simplemente una lista de instrucciones para configurar correctamente un servidor Apache local. Simplemente voy a copiar y pegar la lista de instrucciones para que aquel que desee no pierda tiempo en lograr una configuración exitosa.
- Crear el directorio donde pondremos nuestro servidor web virtual (esto lo haces dentro del directorio que más te guste. Yo lo hice en /home/myuser donde myuser es mi nombre de usuario:
sudo mkdir -p /home/myuser/www
2. Darle accesos y permisos para tu usuario (myuser) y tu grupo (mygroup)
sudo chown -R myuser:mygroup /home/myuser/www/
sudo chmod -R 755 /home/myuser/www/
3. Crear un archivo para la configuración del servidor (podés usar tu editor favorito. Yo lo hice con gedit:
sudo gedit /etc/apache2/sites-available/sitio.conf
En ese archivo pegás las siguientes líneas
<VirtualHost *:80>
ServerAdmin micorreo@correo.com
ServerName UnNombreParaElServer.ar
ServerAlias www.UnNombreParaElServer.ar
DocumentRoot /home/myuser/www/
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
<Directory "/home/myuser/www">
Require all granted
</Directory>
</VirtualHost>
4. Agrego el archivo sitio.conf a la configuración por defecto de Apache y desactivo la configuración por defecto
sudo a2ensite sitio.conf
sudo a2dissite 000-default.conf
5. Pego a continuación la configuración de mi archivo apache2.conf el cual edito con el siguiente comando:
sudo gedit /etc/apache2/apache2.conf
apache2.conf:
<Directory />
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Require all granted
</Directory>
<Directory /usr/share>
AllowOverride None
Require all granted
</Directory>
<Directory /home/myuser/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
NOTA: Esta configuración es válida para Apache 2.4
6. Agrego mi usuario y grupo en las variables de entorno de Apache2
Para eso edito el archivo envvars
sudo gedit /etc/apache2/envvars
Y agrego las siguientes modificaciones (donde myuser y mygroup son tu usuario y grupo, que deberían ser el mismo).
#export APACHE_RUN_USER=www-data
export APACHE_RUN_USER=myuser
#export APACHE_RUN_GROUP=www-data
export APACHE_RUN_GROUP=mygroup
7. Reinicio el servicio de Apache2
sudo service apache2 restart
Y listo. Con eso debería funcionar, entrando desde el navegador en http://localhost