Muchas configuraciones de servidores web se enfrentan a problemas relacionados con los permisos de los archivos. A menudo hace que el servidor sea inaccesible para los visitantes y se manifiesta en forma de un error 403. Normalmente, el mensaje de error es algo así como «Prohibido: no tiene permiso para acceder a / en este servidor». Puede ser cualquier cosa en forma de Prohibido: no tiene permiso para acceder a este recurso.
Problemas similares también pueden ocurrir debido a problemas en el archivo de configuración de Apache o incluso debido a un archivo .htaccess corrupto. Esta guía ofrece soluciones paso a paso para todos estos problemas. Pruébelas de una en una, empezando por la primera solución.
¿Qué causa este error 403 de Apache?
Este es un error 403 bastante común por parte de Apache, causado por una gran cantidad de problemas. Sin embargo, en la mayoría de los casos, este error se produce debido a la falta de permisos adecuados necesarios para acceder a un sitio públicamente. Aparte de esto, los sitios de WordPress a menudo se enfrentan a este problema debido a un mal archivo .htaccess.
Además, desde la versión 2.4 de Apache, ha habido algunos cambios en el funcionamiento de las directivas. Esto también puede restringir el acceso público a su sitio web y dar lugar a un error 403 prohibido.
1. Corregir los permisos de los archivos para evitar el error
La mayoría de la gente se enfrenta a este error 403 común debido a la falta de permisos adecuados. Si el administrador del sitio se olvida de habilitar el acceso de lectura al mundo exterior, entonces los usuarios finales no podrán acceder al recurso solicitado. Esta suele ser la causa principal de este error.
Por ejemplo, digamos que usted está tratando de acceder a un archivo llamado textbook.php en un sitio de WordPress y aparece un error diciendo que no tiene permiso para acceder a /textbook.php en este servidor. Esto implica que el archivo está ahí, pero el propietario del sitio ha deshabilitado el acceso a los usuarios públicos.
Si eres un administrador del sitio, tienes que asegurarte de que los archivos destinados al acceso público tienen los permisos de lectura adecuados. De lo contrario, si te encuentras con este error en un sitio público, informa al administrador del sitio para resolver este problema.
Establecer los permisos correctos para los archivos de acceso público puede ser un poco complicado. Por eso, los administradores deben empezar con cero permisos y añadirlos según sea necesario. Es una buena idea tener carpetas con modo de permiso 755 y archivos con 644.
Para un sitio web sencillo, los directorios deben tener permiso de ejecución, y los archivos deben tener permiso de lectura. Asegúrate de no dar permiso de ejecución a los archivos. Los usuarios maliciosos pueden obtener acceso no deseado a los servidores públicos a través de dichos archivos
El modo de permiso para el acceso de Lectura, Escritura y Ejecución es 4, 2 y 1, respectivamente. Así, un modo de permiso de 755 en los directorios significa que sólo el propietario tiene acceso completo al contenido del directorio. Los usuarios del grupo y otros sólo pueden leer y ejecutar. Del mismo modo, el modo de permiso 644 para los archivos proporciona acceso de lectura y escritura al propietario y sólo de lectura a todos los demás.
Para resolver errores como prohibido: no tiene permiso para acceder a este recurso en ningún servidor, arregle los permisos de su directorio webroot. El siguiente comando utiliza la utilidad chmod para establecer los permisos del directorio a 755:
sudo find /var/www/html -type d -exec chmod 755 {} ;
Este comando asume que estás usando la raíz de documentos por defecto de Apache para albergar tu sitio web. Si está utilizando un directorio diferente, sustituya el nombre del directorio en consecuencia. Utilice el siguiente comando para cambiar todos los permisos de los archivos a 644:
sudo find /var/www/html -type f -exec chmod 644 {} ;
El comando anterior utiliza la utilidad find para localizar archivos individuales y establece el permiso correcto a través de chmod. La terminación {} contiene las rutas de los archivos devueltos por el comando find, y el punto y coma (;) marca el final de la iteración.
Además, también puede cambiar los permisos de los archivos individualmente. Por ejemplo, el siguiente comando cambiará el permiso de textbook.php en la raíz de la web y lo hará públicamente accesible. Así, la próxima vez que alguien intente acceder a este archivo, no verá el temido error «no tiene permiso para acceder a este recurso».
sudo chmod 644 /var/www/html/textbook.php
Una vez que hayas cambiado todos los permisos de los archivos como es debido, reinicia el servidor Apache para que los cambios surtan efecto.
sudo systemctl reiniciar apache2.service
Este comando reinicia el servidor Apache en Ubuntu. Sin embargo, muchas distros basadas en RPM como RHEL o CentOS instalan Apache como httpd. Para estos sistemas, utilice el siguiente comando en su lugar:
sudo systemctl restart httpd
2. Arreglar el archivo .htaccess para su sitio web de WordPress
El archivo . htaccess sirve como un archivo de configuración distribuido y le dice a Apache cómo manejar cosas como los cambios de configuración por directorio. A veces este archivo puede corromperse y puede resultar en el error «no tiene permiso para acceder a / en este servidor».
Por suerte, si eso es lo que está causando el error 403 en su servidor, puede solucionarlo fácilmente creando un nuevo archivo .htaccess. Para crear un nuevo archivo .htaccess para su sitio web, primero, inicie sesión en su panel de control de WordPress. Luego, haz clic en Configuración > Enlaces permanentes.
No tienes que hacer ningún cambio adicional aquí. Simplemente haz clic en el botón Guardar cambios y WordPress generará un nuevo archivo .htaccess para ti.
Así que cada vez que vea «no tiene permiso para acceder a este recurso» en los servidores Apache, intente crear un nuevo archivo .htaccess. Este método suele funcionar bien para los sitios web de WordPress.
3. Configurar directivas en el archivo de configuración de Apache
Apache 2.4 utiliza un nuevo módulo de configuración llamado mod_authz_host. Este módulo expone varias directivas nuevas. En resumen, implementa las siguientes reglas:
- Requerir todo lo concedido: Permitir todas las peticiones
- Requerir todas denegadas: Denegar todas las peticiones
- Requerir host safe.com: Permitir sólo las peticiones de safe.com
Si está usando Apache 2.4, asegúrese de que su archivo de configuración principal contiene el siguiente bloque de código. Puede comprobar el contenido de este archivo utilizando un editor de texto sencillo como Vim. Añade este bloque en el archivo de configuración si falta. Luego, puede guardar y salir de Vim.
vim /etc/apache2/apache2.conf
Código:
Options FollowSymLinks
AllowOverride
None Require alldenied
Directorio
/usr/share>
AllowOverride None
Require all
granted
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
.
Además, si está ejecutando un servidor web basado en RHEL, necesita facilitar el acceso a la sección /var/www en su archivo de configuración de Apache. Así que asegúrese de que el archivo /etc/httpd/conf/httpd.conf contiene el siguiente bloque de código.
vim /etc/httpd/conf/httpd.conf
Código:
Directorio "/var/www">
AllowOverride None
Require all granted
/Directory>
Por último, reinicie el servidor Apache utilizando uno de los siguientes comandos:
sudo systemctl restart apache2.service
sudo systemctl restart httpd
Solucionar el error de permisos del servidor Apache en Linux
Mucha gente se enfrenta al problema anterior al acceder a sitios web públicos o al configurar sus propios sitios. Esta guía cubre varias soluciones a este problema. El primer recurso debería ser restablecer los permisos del sistema de archivos de Apache. Si el error persiste incluso después de cambiar los permisos, pruebe a crear un nuevo archivo .htaccess y asegúrese de que las directivas están correctamente establecidas en su archivo de configuración de Apache.
Hay muchos más problemas que pueden dar lugar a un error del lado del servidor similar a este. Es necesario ser competente en la resolución de problemas del servidor Linux para conseguir que su servidor funcione en tales situaciones.