WordPress no instala plugins por permisos solución
Guía completa para solucionar errores de permisos al instalar plugins en WordPress: causas, diagnóstico y pasos para corregirlos en cPanel, FTP y SSH.
Índice
- ¿Por qué WordPress no instala plugins por permisos?
- Errores más comunes al instalar plugins por permisos
- Cómo diagnosticar problemas de permisos en WordPress
- Configuración correcta de permisos y propietario de archivos
- Solución desde cPanel o panel del hosting
- Solución con FTP o SFTP (FileZilla y similares)
- Solución avanzada por SSH y línea de comandos
- Configurar el método de escritura FS_METHOD en WordPress
- Buenas prácticas para evitar problemas de permisos
- Preguntas frecuentes
¿Por qué WordPress no instala plugins por permisos?
Cuando WordPress no instala plugins y muestra mensajes relacionados con permisos, significa que el sistema no puede escribir, crear o modificar archivos y carpetas en el servidor. Esto no es un fallo de WordPress en sí, sino una combinación de configuración del hosting, permisos de archivos (CHMOD) y propietario (ownership) del sistema de archivos.
WordPress necesita poder escribir en determinadas carpetas para descargar, descomprimir y copiar los archivos del plugin. Si el servidor bloquea estas operaciones, verás errores al instalar, actualizar o borrar plugins y temas. Entender qué está pasando a nivel de permisos es clave para aplicar la solución correcta y definitiva.
Resumen rápido
En la mayoría de los casos, el problema se debe a:
- Permisos de archivos y carpetas incorrectos (CHMOD).
- Propietario del sistema de archivos distinto al usuario que ejecuta PHP.
- Restricciones del hosting (open_basedir, mod_security, etc.).
- Configuración inadecuada del método de escritura de WordPress.
Errores más comunes al instalar plugins por permisos
Los problemas de permisos en WordPress suelen manifestarse con mensajes de error bastante similares, aunque el texto exacto puede variar según la versión de WordPress, el idioma y la configuración del servidor. Identificar el mensaje concreto te ayudará a aplicar la solución adecuada.
- No se ha podido crear el directorio o Could not create directory.
- La carpeta de destino ya existe o Destination folder already exists.
- Error al descomprimir el paquete o Could not copy file.
- La instalación ha fallado sin más detalles.
- Errores de Permiso denegado (Permission denied) en rutas como
wp-content/pluginsowp-content/upgrade. - Solicitudes constantes de datos de conexión FTP incluso en hostings donde no debería ser necesario.
Aunque todos estos errores parecen distintos, casi siempre apuntan al mismo origen: WordPress no puede escribir donde necesita. A continuación veremos cómo diagnosticar con precisión qué está fallando.
Pistas que indican un problema de permisos
- Los plugins no se instalan, pero el panel de administración funciona con normalidad.
- No puedes subir imágenes a la biblioteca de medios o aparecen errores al hacerlo.
- Las actualizaciones automáticas de WordPress, temas o plugins fallan de forma recurrente.
- En el registro de errores (error_log) aparecen mensajes de
Permission denied.
Cómo diagnosticar problemas de permisos en WordPress
Antes de cambiar permisos de forma indiscriminada, conviene hacer un diagnóstico básico. Esto te permitirá resolver el problema sin comprometer la seguridad del sitio. Los pasos siguientes son válidos tanto para hostings compartidos como para servidores propios.
1. Localizar la ruta exacta del error
Cuando WordPress muestra un error de instalación, suele indicar la ruta donde ha intentado escribir. Anota esa ruta, por ejemplo:
/home/usuario/public_html/wp-content/plugins//var/www/html/wp-content/upgrade//home/usuario/public_html/wp-content/uploads/
Esa carpeta es el primer lugar donde debes revisar permisos y propietario.
2. Comprobar permisos actuales
Desde el administrador de archivos de tu panel de hosting, o mediante FTP/SFTP, revisa los permisos (CHMOD) de las carpetas clave:
wp-content/wp-content/plugins/wp-content/upgrade/wp-content/uploads/
Si ves permisos muy restrictivos (por ejemplo 700 en un hosting compartido) o demasiado permisivos (777), es una señal de que algo no está bien configurado.
3. Revisar el propietario (ownership) de los archivos
En servidores con acceso SSH, es fundamental comprobar quién es el propietario de los archivos y carpetas. El usuario que ejecuta PHP (por ejemplo, www-data, apache o un usuario específico de tu hosting) debe ser el propietario o, al menos, tener permisos de escritura.
Con SSH, puedes usar:
cd /ruta/de/tu/sitio
ls -l wp-content
Observa las columnas de usuario y grupo para ver si coinciden con el usuario que ejecuta el servidor web.
4. Activar el modo de depuración de WordPress
Si el mensaje de error es poco claro, puedes activar la depuración para obtener más detalles. Edita el archivo wp-config.php y añade o ajusta estas líneas:
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
Después de intentar instalar un plugin, revisa el archivo wp-content/debug.log para ver si aparecen errores de permisos o rutas bloqueadas.
Configuración correcta de permisos y propietario de archivos
Una vez identificado que el problema está en los permisos, el siguiente paso es aplicar una configuración segura y funcional. No se trata solo de que WordPress pueda escribir, sino de hacerlo sin abrir brechas de seguridad.
Permisos recomendados para WordPress
Los valores más aceptados y recomendados para la mayoría de instalaciones son:
- Carpetas:
755(lectura y ejecución para todos, escritura solo para el propietario). - Archivos:
644(lectura para todos, escritura solo para el propietario).
En algunos servidores gestionados, el proveedor puede usar configuraciones ligeramente distintas, pero 755/644 suele funcionar correctamente y es segura en la mayoría de los casos.
Por qué no usar 777 como solución rápida
Dar permisos 777 a carpetas como wp-content o plugins permite que cualquiera con acceso al servidor (u otros sitios en el mismo servidor compartido) pueda escribir en tus archivos. Esto abre la puerta a inyecciones de código malicioso, malware y accesos no autorizados.
Aunque 777 pueda parecer una solución inmediata porque "todo vuelve a funcionar", es una práctica muy insegura y no debe usarse en producción. Es preferible ajustar correctamente propietario y permisos siguiendo las recomendaciones del hosting.
Ajustar el propietario (chown) en servidores con SSH
Si administras tu propio servidor o tienes acceso root, asegúrate de que el propietario de los archivos de WordPress sea el usuario adecuado. Por ejemplo, en muchos servidores Linux:
cd /ruta/de/tu/sitio
chown -R www-data:www-data .
find . -type d -exec chmod 755 {} \;
find . -type f -exec chmod 644 {} \;
Sustituye www-data:www-data por el usuario y grupo que use tu servidor web (o el que recomiende tu proveedor de hosting).
Solución desde cPanel o panel del hosting
Si utilizas un panel de control como cPanel, Plesk o un panel propio del proveedor, puedes corregir muchos problemas de permisos sin necesidad de usar FTP o SSH. Es una opción cómoda y relativamente segura para usuarios con menos experiencia técnica.
1. Usar el Administrador de archivos
En cPanel, accede a Administrador de archivos y navega hasta la carpeta donde está instalado WordPress (por ejemplo, public_html o un subdirectorio). Localiza la carpeta wp-content y, dentro de ella, plugins, upgrade y uploads.
Sigue estos pasos:
- Haz clic derecho sobre
wp-contenty selecciona Change Permissions o Cambiar permisos. - Establece 755 para la carpeta y aplica, si el panel lo permite, de forma recursiva a subcarpetas.
- Repite el proceso para
plugins,upgradeyuploadssi fuera necesario.
2. Reparar permisos con herramientas del hosting
Algunos proveedores incluyen una opción específica para "reparar permisos" o "resetear permisos" de la cuenta. Suele encontrarse en secciones como:
- Seguridad > Reparar permisos.
- WordPress Tools o WordPress Manager.
- Utilidades o Advanced.
Si tu hosting ofrece esta función, úsala primero. Suele aplicar una configuración estándar segura y compatible con su entorno.
3. Verificar restricciones adicionales
En algunos hostings compartidos, además de los permisos, pueden existir restricciones como open_basedir o reglas de seguridad que bloquean ciertas operaciones de escritura. Si tras ajustar permisos sigues sin poder instalar plugins, abre un ticket de soporte y facilita:
- Captura del mensaje de error completo.
- Ruta exacta donde se produce el problema.
- Hora aproximada en la que intentaste la instalación.
Consejo
Muchos hostings gestionados de WordPress prefieren que no cambies permisos manualmente. Antes de hacer cambios masivos, revisa su documentación o consulta al soporte técnico.
Solución con FTP o SFTP (FileZilla y similares)
Si no tienes un panel de control avanzado o prefieres trabajar con un cliente FTP/SFTP como FileZilla, también puedes corregir los permisos desde ahí. Es un método muy utilizado cuando WordPress no instala plugins por permisos y el hosting no ofrece herramientas específicas.
1. Conectarte al servidor
Configura tu cliente FTP/SFTP con los datos que te haya proporcionado tu hosting: servidor, usuario, contraseña y puerto. Siempre que sea posible, utiliza SFTP en lugar de FTP, ya que cifra la conexión.
2. Ajustar permisos de carpetas clave
Una vez conectado, navega hasta la carpeta raíz de tu instalación de WordPress. En FileZilla, por ejemplo, puedes:
- Hacer clic derecho sobre la carpeta
wp-content. - Seleccionar Permisos de archivo... o File permissions....
- Introducir 755 como valor numérico.
- Marcar la opción Aplicar solo a directorios y aplicar de forma recursiva.
Después, repite el proceso para los archivos si fuera necesario, usando 644 y marcando Aplicar solo a archivos.
3. Instalar el plugin manualmente
Si el problema persiste o necesitas una solución inmediata, puedes instalar el plugin de forma manual:
- Descarga el archivo .zip del plugin desde el repositorio oficial o desde el proveedor.
- Descomprime el .zip en tu ordenador.
- Sube la carpeta resultante a
wp-content/plugins/mediante FTP/SFTP. - Ve al panel de administración de WordPress > Plugins y actívalo.
Ventaja de la instalación manual
Aunque no resuelve el problema de fondo, la instalación manual te permite seguir trabajando mientras coordinas con el hosting o ajustas la configuración del servidor para que las futuras instalaciones automáticas funcionen correctamente.
Solución avanzada por SSH y línea de comandos
En servidores VPS o dedicados, o en hostings que ofrecen acceso SSH, puedes resolver de forma más precisa los problemas de permisos que impiden instalar plugins en WordPress. Este enfoque es más técnico, pero también más potente y reproducible.
1. Comprobar el usuario que ejecuta PHP
Es importante saber con qué usuario se ejecuta PHP (y, por tanto, WordPress). En muchos casos será www-data, apache, nginx o un usuario específico. Puedes verlo, por ejemplo, creando un archivo phpinfo.php o revisando la configuración de tu servidor web.
2. Ajustar propietario y permisos de forma masiva
Una vez identificado el usuario correcto, puedes aplicar una política de permisos coherente en toda la instalación de WordPress. Desde la raíz del sitio:
cd /ruta/de/tu/sitio
chown -R usuario:www-data .
find . -type d -exec chmod 755 {} \;
find . -type f -exec chmod 644 {} \;
Adapta usuario:www-data a tu entorno (por ejemplo, www-data:www-data o el usuario que recomiende tu proveedor).
3. Usar WP-CLI para instalar y actualizar plugins
WP-CLI es la interfaz de línea de comandos para WordPress. Si está disponible en tu servidor, puede ayudarte a instalar plugins incluso cuando el panel web da problemas, siempre que los permisos estén correctamente configurados.
cd /ruta/de/tu/sitio
wp plugin install nombre-del-plugin --activate
Si este comando funciona sin errores de permisos, significa que la configuración del sistema de archivos es correcta y que el problema podría estar en restricciones específicas del entorno web (por ejemplo, reglas de seguridad adicionales).
Configurar el método de escritura FS_METHOD en WordPress
Además de los permisos del servidor, WordPress utiliza distintos métodos para escribir en el sistema de archivos. Cuando no puede escribir directamente, intenta usar FTP o FTPS. Configurar correctamente el método de escritura puede resolver errores en los que WordPress pide credenciales FTP constantemente o no consigue instalar plugins.
¿Qué es FS_METHOD?
FS_METHOD es una constante que puedes definir en wp-config.php para indicar a WordPress cómo debe acceder al sistema de archivos. Los valores más habituales son:
- direct: WordPress escribe directamente en el sistema de archivos (recomendado cuando los permisos son correctos).
- ftpext: Usa las funciones FTP de PHP.
- ftpsockets: Usa sockets para la conexión FTP.
- ssh2: Usa SSH2 si está disponible.
Forzar el modo directo cuando el servidor lo permite
Si tu servidor está correctamente configurado y el usuario que ejecuta PHP tiene permisos de escritura sobre los archivos de WordPress, puedes forzar el modo directo añadiendo esta línea en wp-config.php:
define( 'FS_METHOD', 'direct' );
Colócala antes de la línea que dice /* That's all, stop editing! Happy publishing. */.
Esto evita que WordPress pida credenciales FTP y suele resolver muchos problemas de instalación y actualización de plugins cuando los permisos del sistema de archivos son correctos.
Configurar credenciales FTP si son necesarias
En algunos hostings compartidos, el proveedor obliga a usar FTP para las operaciones de escritura. En ese caso, puedes definir las credenciales en wp-config.php para que WordPress no las pida cada vez:
define( 'FS_METHOD', 'ftpext' );
define( 'FTP_BASE', '/ruta/de/tu/sitio/' );
define( 'FTP_CONTENT_DIR', '/ruta/de/tu/sitio/wp-content/' );
define( 'FTP_PLUGIN_DIR', '/ruta/de/tu/sitio/wp-content/plugins/' );
define( 'FTP_USER', 'tu_usuario_ftp' );
define( 'FTP_PASS', 'tu_contraseña_ftp' );
define( 'FTP_HOST', 'ftp.tudominio.com:21' );
Asegúrate de proteger bien este archivo y, si es posible, utiliza FTPS o SFTP en lugar de FTP plano.
Buenas prácticas para evitar problemas de permisos
Una vez resuelto el problema de que WordPress no instala plugins por permisos, es importante aplicar una serie de buenas prácticas para que no vuelva a ocurrir y, al mismo tiempo, mantener la seguridad del sitio.
- Evita usar 777 en producción, incluso de forma temporal.
- No cambies permisos masivamente sin saber qué estás haciendo; céntrate en
wp-contenty sus subcarpetas. - Usa siempre SFTP o SSH en lugar de FTP cuando sea posible.
- Mantén WordPress, temas y plugins actualizados para reducir riesgos de seguridad.
- Haz copias de seguridad antes de cambios importantes en permisos o propietario.
- Documenta la configuración de tu servidor (usuario que ejecuta PHP, rutas, etc.) para futuras intervenciones.
- Elige un hosting especializado en WordPress si no quieres gestionar estos aspectos técnicos.
Checklist rápido antes de tocar permisos
- ¿Tienes una copia de seguridad reciente de archivos y base de datos?
- ¿Sabes qué usuario ejecuta PHP en tu servidor?
- ¿Has anotado los permisos actuales por si necesitas revertir cambios?
- ¿Has consultado la documentación de tu proveedor de hosting?
Preguntas frecuentes
¿Cuál es la causa más habitual de que WordPress no instale plugins por permisos?
Lo más frecuente es que las carpetas dentro de wp-content (especialmente plugins, upgrade y uploads) tengan permisos demasiado restrictivos o que el propietario de los archivos no coincida con el usuario que ejecuta PHP. Ajustar permisos a 755 para carpetas y 644 para archivos, y corregir el propietario, suele resolver el problema.
¿Es seguro poner permisos 777 para instalar un plugin y luego volver a bajarlos?
No es recomendable. Aunque sea temporal, durante ese tiempo cualquier proceso en el servidor podría escribir en tus archivos, lo que aumenta el riesgo de infecciones y accesos no autorizados. Es mejor identificar por qué el usuario que ejecuta PHP no tiene permisos adecuados y corregir el propietario y los permisos de forma correcta.
¿Puedo instalar plugins manualmente si el instalador de WordPress falla?
Sí. Puedes descargar el .zip del plugin, descomprimirlo en tu ordenador y subir la carpeta resultante a wp-content/plugins/ mediante FTP o SFTP. Después, solo tienes que ir a la sección Plugins del panel de WordPress y activarlo. Sin embargo, conviene solucionar el problema de permisos para que futuras actualizaciones funcionen correctamente.
¿Qué hago si después de ajustar permisos WordPress sigue pidiendo datos FTP?
En ese caso, puedes forzar el método de escritura directo añadiendo define( 'FS_METHOD', 'direct' ); en wp-config.php, siempre que el servidor permita escritura directa. Si aun así sigue pidiendo FTP, es posible que tu proveedor haya restringido este método y debas configurar las credenciales FTP en wp-config.php o contactar con el soporte técnico.
¿Cuándo debo pedir ayuda al soporte de mi hosting?
Si tras ajustar permisos a 755/644, revisar el propietario y configurar FS_METHOD sigues sin poder instalar plugins, lo más prudente es contactar con el soporte del hosting. Ellos pueden revisar los registros del servidor, detectar restricciones adicionales (como open_basedir o reglas de seguridad) y aplicar cambios a nivel de sistema que no están al alcance del usuario.
¿Necesitas orientación personalizada?
Te ayudamos a entender tus opciones y el siguiente paso.