Una de las medidas de seguridad básica en un servidor, y por supuesto en WordPress, es establecer adecuadamente los permisos de los archivos y carpetas. La instalación estándar de WordPress normalmente asigna los permisos adecuados a archivos y carpetas, pero a veces nos encontramos con sorpresas.
Ya sea por modificaciones manuales que no recordamos, o por accesos no controlados, o debido a modificaciones realizadas por plugins y scripts, a veces no todos los archivos y carpetas de WordPress tienen los permisos adecuados para garantizar al mismo tiempo usabilidad y seguridad.
No suele pasar mucho, pero puede que en alguna ocasión te encuentres en la situación de que, por la configuración del hosting, se fuercen unos permisos de archivos y carpetas que no sean adecuados para el funcionamiento correcto de WordPress.
A mi me ha pasado solo un par de veces, en hostings de clientes a los que hacemos mantenimiento de su web WordPress, en los que se restringían los permisos de archivo de usuario, algo que a veces hacen los hosting baratos.
Afortunadamente hay constantes de WordPress que podemos añadir a nuestro archivo de configuración (wp-config.php) para cambiar de golpe todos los permisos a los archivos y carpetas de la instalación.
Para solucionarlo, si no tienes acceso por SSH, lo que suele ser habitual en estos hosting, hay un par de funciones para el archivo wp-config.php que nos pueden ayudar a que los archivos y carpetas de WordPress tengan los permisos de archivo correctos: FS_CHMOD_DIR y FS_CHMOD_FILE.
Solo tenemos que añadir un par de constantes al archivo wp-config.php y guardar los cambios para que se cambien los permisos de archivos y carpetas a los especificados, así:
/** Cambiar permisos de archivos y carpetas automáticamente */
define('FS_CHMOD_FILE', 0644);
define('FS_CHMOD_DIR', 0755);
O, también:
/* Establecer permisos correctos de directorios y archivos */ define( 'FS_CHMOD_DIR', ( 0755 & ~ umask() ) ); define( 'FS_CHMOD_FILE', ( 0644 & ~ umask() ) );
Con esas dos líneas definimos que los permisos para directorios sean de 755 y para los archivos de 644, los recomendados para WordPress, y el cambio se aplica a toda la instalación.
En el código anterior cambiamos los permisos a los que deben tener por defecto pero si eres especialito con temas de seguridad o lo que quieras simplemente pon a tu gusto los permisos que quieres aplicar.
Ahora bien, se precavido, porque esta es una modificación bastante radical, y puede que algunos plugins o incluso funcionalidades del tema activo no funcionen bien o dejen de funcionar del todo una vez hechos los cambios, pues a veces requieren que algunas carpetas o archivos tengan permisos especiales, así que sé cuidadoso antes de hacer cambios en masa como el que te permite este código.
¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!







Hola Fernando.
Estoy intentando crearme un wordpress de pruebas y para ello he descargado XAMPP + el ultimo wordpress y trabajo en localhost.
Esto6 en un worrpesss nuevo y que añadir el fragmento que comentas en wp-config.php el estado de salud del sitio me indica:
El directorio principal de wordpress NO editable
El directorio “wp-content” NO editable
El directorio de subidas NO editable
El directorio de plugins NO editable
El directorio de temas NO editable
(Además en XAMPP tengo un proFTPd y no sé ni servidor/usuario/contraseña para poder usar filezilla si fuese el caso ….)
Qué debería hacer a partir de aquí para poder tener un wordpress que funcione bien?
Gracias. Un saludo.
Las instalaciones locales tienen esas cosas, depende de que las carpetas se hayan creado con un usuario que tenga permisos en tu ordenador, sino tienes que revisar los permisos de las carpetas, pero desde las propiedades de las carpetas en el sistema operativo
Muchas gracias.
Ya tengo los directorios editables, pero sigo teniendo errores:
La salud del sitio me dice:
1-
el módulo imagick, no está instalado o ha sido desactivado
El módulo intl, no está instalado o ha sido desactivado.
2- la API REST ha encontrado un resultado inesperado.
Pueden ser estos dos puntos los que hagan que no funcione correctamente?
Qué debería hacer?
Saludos
imagick y intl son módulos PHP activables desde tu hosting. Tienes que buscar donde defines la versión PHP y sus módulos.