A la hora de desarrollar aplicaciones web, u otras basadas en apache, te puedes encontrar con problemas. Esta vez te cuento como solucionar error 403 forbidden en apache y virtualhost.
Este método te va a ser últil en Linux, pues se basa en revisar la configuración del servicio y también en el sistema de archivos y permisos. No descarto que en alguna actualización sea necesario también en WSL.
Cómo arreglar error 403 forbidden virtualhost apache
Tras dejar configurado o puesto en marcha apache, has intentado abrir la web que tengas en la carpeta concreta y te ha dado error 403. Esto no suele ser difícil de solucionar, pero tendrás que revisar varios puntos, ya que generalmente es por algo que no está bien configurado (o falta), o por que el usuario de apache no puede ejecutar los archivos.
Lo primero, revisar que hayas creado y habilitado el sitio en apache. Para eso vete a la carpeta de las configuraciones de apache:
cd /etc/apache2/sites-available
Una vez ahí puedes hacer ls -l y ver si tienes el archivo de configuración del sitio que intentas revisar. Deberías tener algo como 000-default.conf y vichaunter.conf que será tu sitio configurado. Por si no lo tienes te dejo un ejemplo de cómo debería parecer este archivo:
sudo nano vichaunter.conf
y dentro poner algo así:
<VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot /var/www/vichaunter ServerName vichaunter.local ServerAlias www.vichaunter.local ErrorLog ${APACHE_LOG_DIR}/vichaunter-error.log CustomLog ${APACHE_LOG_DIR}/vichaunter-access.log combined <Directory /var/www/vichaunter/> Options +FollowSymLinks AllowOverride All Order allow,deny allow from all </Directory> </VirtualHost>
Cambia la ruta de vichaunter por la carpeta donde tengas tu proyecto.
Cómo habilitar el sitio en apache
Vale, ya lo tenemos creado, pero no bastará con que reinicies el servidor de apache, pues la configuración solo está creada pero no habilitada. Para eso tienes que ejecutar este comando:
sudo a2ensite vichaunter.conf
Ahora sí que debes reiniciar el servidor de apache con
sudo service apache2 restart
Arreglar que apache no tenga permiso de ejecución y salga forbidden
Si después de esto aún te da problemas, aún queda una cosa por hacer antes de profundizar.
Suele ser porque los archivos de la carpeta donde está la web o aplicación no son ejecutables, y podrás solucionarlo con un comando sencillo:
sudo chmod +x /var/www/vichaunter
Si aun así no te funciona puedes ir más lejos y ejecutar:
sudo chmod -R +xr /var/www/vichaunter
Aunque no suele ser necesario, y como es para desarrollo no habría ningún problema mientras sea en local.
Revisar los permisos de los archivos
Por otro lado también conviene que le eches un ojo a los permisos de los archivos. Muchas veces los creamos con un usuario en concreto y el usuario de apache no tiene acceso de lectura.
Puedes ejecutar este otro comando para arreglarlo:
sudo chown -R www-data.www-data /var/www/vichaunter
Por supuesto en todos los comandos de arriba debes cambiar /var/www/vichaunter por la ruta a la carpeta del sitio que estés habilitando.
También recuerda que para poder acceder desde tu equipo local con la ruta vichaunter.local debes habilitarlo en el archivo /etc/hosts. Edítalo y añade esta línea al final:
sudo nano /etc/hosts 127.0.0.1 vichaunter.local
Así con todas las urls que quieras que se resuelvan desde el navegador contra tu servidor local. No es necesario reiniciar ni nada, pero es posible que tengas que poner http:// en algunos navegadores para que no te salga el buscador.
Si aun así estás teniendo problemas con este u otro error dímelo y te echo un cable en los comentarios. Recuerda reiniciar apache o incluso el equipo si se resiste tras configurar.
¿Has podido resolverlo? ¿Qué versión de linux usas? Comenta y comparte.