Resuelto: no tiene permiso para acceder a este servidor

Muchas configuraciones de servidores web enfrentan problemas relacionados con los permisos de archivos. A menudo hace que el servidor sea inaccesible para los visitantes y se manifiesta en forma de error 403. Por lo general, el mensaje de error es algo así como "Prohibido: no tiene permiso para acceder / en este servidor". Este error también puede restringir el acceso a otras rutas en el servidor, como el directorio / .

También pueden ocurrir problemas similares debido a problemas en el archivo de configuración de Apache o incluso debido a un archivo .htaccess corrupto. Esta guía proporciona soluciones paso a paso a todos estos problemas. Pruébelos uno a la vez, comenzando por la primera solución.

¿Qué causa este error 403 de Apache?

Este es un error 403 bastante común en el extremo 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 los permisos adecuados necesarios para acceder a un sitio públicamente. Aparte de esto, los sitios de WordPress a menudo enfrentan este problema debido a un archivo .htaccess incorrecto.

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 resultar en un error prohibido 403.

1. Corrija los permisos de archivo para evitar el error

La mayoría de las personas se enfrentan 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, los usuarios finales no podrán acceder al recurso solicitado. A menudo, esta es la causa principal de este error.

Si es administrador de un sitio, debe asegurarse de que los archivos destinados al acceso público tengan los permisos de lectura adecuados. De lo contrario, si se enfrenta a este error en un sitio público, informe al administrador del sitio para resolver este problema.

Establecer los permisos correctos para archivos de acceso público puede ser un poco complicado. Es por eso que los administradores deben comenzar con absolutamente cero permisos y agregarlos según sea necesario. Es una buena idea tener carpetas con el modo de permiso de 755 y archivos con 644 .

Para un sitio web simple, los directorios deben tener permiso de ejecución y los archivos deben tener permiso de lectura . Asegúrese de no otorgar permisos de ejecución en archivos. Los usuarios malintencionados pueden obtener acceso no deseado a 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.

Entonces, un modo de permiso de 755 en directorios significa que solo el propietario tiene acceso completo al contenido del directorio. Los usuarios del grupo y otros solo pueden leer y ejecutar. De manera similar, el modo de permiso 644 para archivos proporciona acceso de lectura y escritura al propietario y solo acceso de lectura a todos los demás.

Para solucionar este error, corrija los permisos de su directorio webroot. El siguiente comando usa la utilidad chmod para establecer los permisos del directorio en 755.

 sudo find /var/www/html -type d -exec chmod 755 {} ;

Este comando asume que está utilizando la raíz del documento predeterminada de Apache para mantener su sitio web. Si está utilizando un directorio diferente, reemplace el nombre del directorio en consecuencia. Utilice el siguiente comando para cambiar todos los permisos de archivo a 644.

 sudo find /var/www/html -type f -exec chmod 644 {} ;

El comando anterior usa la utilidad de búsqueda para ubicar archivos individuales y establece el permiso correcto a través de chmod. El final {} contiene las rutas de archivo devueltas por el comando de búsqueda , y el punto y coma ( ; ) marca el final de la iteración. Finalmente, reinicie el servidor Apache para que sus cambios surtan efecto.

 sudo systemctl restart apache2.service

Este comando reinicia el servidor Apache en Ubuntu. Sin embargo, muchas distribuciones basadas en RPM como RHEL o CentOS instalan Apache como httpd . Para tales sistemas, use el siguiente comando en su lugar:

 sudo systemctl restart httpd

2. Arregle 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 cambios de configuración por directorio. A veces, este archivo puede corromperse y puede resultar en el error "no tiene permiso para acceder a este servidor".

Afortunadamente, 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 WordPress. Luego, haga clic en Configuración> Enlaces permanentes .

No es necesario que realice cambios adicionales aquí. Simplemente haga clic en el botón Guardar cambios y WordPress generará un nuevo archivo .htaccess para usted.

Entonces, cada vez que se enfrente al problema anterior, intente crear un nuevo archivo .htaccess. El método .htaccess generalmente funciona bien para sitios web de WordPress.

3. Configurar directivas en el archivo de configuración de Apache

Apache 2.4 hace uso de un nuevo módulo de configuración llamado mod_authz_host . Este módulo expone varias directivas nuevas. En resumen, esto implementa las siguientes reglas:

  • Requerir todo concedido : Permitir todas las solicitudes
  • Requerir todo denegado : denegar todas las solicitudes
  • Requerir host safe.com : solo permita solicitudes de safe.com

Si está utilizando Apache 2.4, asegúrese de que su archivo de configuración principal contenga el siguiente bloque de código. Puede consultar el contenido de este archivo utilizando un editor de texto simple como Vim. Agregue este bloque en el archivo de configuración si faltan. Luego, puede guardar y salir de Vim .

 vim /etc/apache2/apache2.conf
 <Directory />
Options FollowSymLinks
AllowOverride None
Require all denied
</Directory>
<Directory /usr/share>
AllowOverride None
Require all granted
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>

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 contenga el siguiente bloque de código.

 vim /etc/httpd/conf/httpd.conf
 <Directory "/var/www">
AllowOverride None
Require all granted
</Directory>

Finalmente, reinicie el servidor Apache usando uno de los siguientes comandos.

 # for Ubuntu and Debian
sudo systemctl restart apache2.service
 # for RHEL and CentOS
sudo systemctl restart httpd

Solucionar el error de permiso del servidor Apache

Mucha gente se enfrenta al problema anterior al acceder a sitios web públicos o configurar sus propios sitios. Esta guía cubrió varias soluciones a este problema. Restablecer el permiso del sistema de archivos para Apache debería ser el primer recurso. Si el error persiste incluso después de cambiar los permisos, intente crear un nuevo archivo .htaccess y asegúrese de que las directivas estén configuradas correctamente en su archivo de configuración de Apache.

Hay muchos más problemas que pueden resultar en un error del lado del servidor similar a este. Debe dominar la resolución de problemas del servidor Linux para que su servidor esté listo y funcionando en tales situaciones.