Apache es el servidor web más usado en el mundo y si bien es sencillo configurar una web en cuestión de minutos, también es cierto que tiene multitud de módulos y configuraciones que lo pueden hacer muchísimo más complejo (y completo). Por ello, cuando montamos un servidor de desarrollo en local, por lo general no queremos complicarnos y si estamos en GNU/Linux, los permisos de usuario son un problema.
Una solución rápida es montar nuestro apache en nuestra carpeta /home y asi evitarnos problemas con el usuario www-data y a la vez lo tenemos más a mano que no si estuviese en /var/www/etcetetc. Luego cuando despleguemos el proyecto en el servidor de producción, ya nos pelearemos con apache, pero eso, será en otro momento…
montar Apache en nuestra /home
Editamos el fichero /etc/hosts para que busque la resolución del nombre del dominio en nuestro equipo:
sudo nano /etc/hosts
Y añadimos:
127.0.0.1 dominio.com www.dominio.com
creamos un nuevo sitio en llamado www.dominio.com.conf
sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/www.dominio.com.conf
editamos el nuevo fichero www.dominio.com.conf:
sudo nano /etc/apache2/sites-available/www.dominio.com.conf
para que nos quede de esta manera:
<VirtualHost *:80> ServerAdmin webmaster@dominio.com DocumentRoot /home/usuario/www/www.dominio.com ServerName dominio.com ServerAlias www.dominio.com <Directory /home/usuario/www/www.dominio.com/> Options Indexes FollowSymLinks MultiViews AllowOverride all Require all granted </Directory> ErrorLog ${APACHE_LOG_DIR}/error-dominio.log CustomLog ${APACHE_LOG_DIR}/access-dominio.log combined </VirtualHost> # vim: syntax=apache ts=4 sw=4 sts=4 sr noet
Nota: los logs de apache se leen desde /var/log/apache2/.
Nota: para apache < 2.4, hay que sustituir 'Require all granted' por 'Order allow,deny' y 'Allow from all'.
activamos el nuevo sitio:
sudo a2ensite www.dominio.com.conf
creamos la carpeta www que contendrá los sitios web en nuestro home
mkdir /home/usuario/www/
y la del sitio web www.dominio.com
mkdir /home/usuario/www/www.dominio.com
(aquí introducimos un fichero de prueba o el sitio web completo)
editamos el fichero envvars de apache2 para que nuestro usuario pueda leer el directorio y ejecutarlo:
sudo nano /etc/apache2/envvars
y buscamos dentro las lineas:
export APACHE_RUN_USER=www-data export APACHE_RUN_GROUP=wwww-data
que sustituimos por las de nuestro usuario y grupo:
export APACHE_RUN_USER=usuario export APACHE_RUN_GROUP=usuario
por último, recargamos la configuración de apache2:
sudo service apache2 reload
o bien reiniciamos apache2:
sudo service apache2 restart
Y ya tendríamos apache2 funcionando desde nuestra carpeta personal.
Últimos comentarios