Como arreglar los Permisos de WordPress
Si has instalado WordPress por tu cuenta en varias ocasiones probablemente has tenido problemas de permisos. Los errores de permisos se manifiestan de diferentes maneras:
- Error HTML cuando intentas subir imágenes
- No puedes subir imágenes
- El sitio no carga
- Pantalla en Blanco
- etc, etc …
Hay muchos artículos en internet que nos hablan sobre esto, pero suelen ser publicaciones de foros que alguien ha obtenido y te dan un snippet o comando para probar. Asi que mejor pongámoslo todo en un mismo sitio.
Explicación
Los problemas de Permisos en WordPress (y en general) aparecen cuando alguien intenta acceder a algo que no es posible porque los sistema no se lo permite.
Pero hay dos cosas de las que hablaremos que son en este caso las mas importantes:
- El sistema de archivos donde está alojado el contenido de tu WordPress y sus permisos
- El usuario del servidor web (el proceso)
El proceso del servidor web es el que intenta leer y escribir el contenido que WordPress intenta cambiar.
Estos usuarios tienen que ser iguales.
Como Arreglar los problemas de Permisos
Debemos mirar algunas cosas si queremos que funcione:
Primero necesitamos saber que servidor web estás usando, podemos obtenerlo de la siguiente manera:
Esto puede variar según que servidor web estés utilizando.
ps aux | grep nginx
Verás una respuesta con el dueño del proceso, eso indica bajo quien se está ejecutando. Debería ser www-data
, o nginx
.
A continuación, encuentra el directorio de tu web, osea, la carpeta donde se aloja tu web. Debería ser algo comovar/www/
si usas Nginx. Puede estar en múltiples lugares, puedes mirar el archivo de configuración de tu servidor para ver donde está la raíz.
Ahora necesitas hacer dos cosas:
- cambiar el dueño
- cambiar los permisos
Cambiar el dueño de los archivos a www-data:www-data
chown -R www-data:www-data /var/www/html/
Los dos puntos asigna el permiso al usuario y al grupo como www-data.
Ahora que ya posee la persona correcta los permisos, necesitas asegurarlos, esto se consigue con chmod
.
Cambiar permisos en directorios
find /var/www/html -type d -print0 | xargs -0 chmod 755
Cambiar permisos en archivos
find /var/www/html -type f -print0 | xargs -0 chmod 644
Esta es una configuración adecuada para tus directorios y archivos en tu web.
Pruebas
Vale, ahora tienes:
- Tus archivos al usuario (dueño) correcto. (En este caso el proceso de tu servidor web)
- Tus directorios tienen los permisos correctos.
- Tus archivos tienen los permisos correctos.
Ahora reinicia tu servidor web y podrás usar WordPress con normalidad.
Notas
- Nunca corras tu servidor como root. No estoy diciendo que lo hagas, pero si se da el caso, no lo hagas.
- También he visto algunas instalaciones de wordpress donde el proceso de PHP necesita ser del mismo usuario (si no lo es ya). Podrías intentarlo si esto no funciona.