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.