Informática, Linux, Wordpress

Como arreglar los Permisos de WordPress

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:

  1. El sistema de archivos donde está alojado el contenido de tu WordPress y sus permisos
  2. 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:

  1. cambiar el dueño
  2. 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:

  1. Tus archivos al usuario (dueño) correcto. (En este caso el proceso de tu servidor web)
  2. Tus directorios tienen los permisos correctos.
  3. Tus archivos tienen los permisos correctos.

Ahora reinicia tu servidor web y podrás usar WordPress con normalidad.

Notas

  1. Nunca corras tu servidor como root. No estoy diciendo que lo hagas, pero si se da el caso, no lo hagas.
  2. 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.