Solucionar error de permisos al actualizar plugins o temas de wordpress

Al intentar actualizar los Plugins o los temas de una nueva instalación de wordpress en mi servidor web me he encontrado con errores como este:

No ha sido posible crear el directorio /var/www/vhosts/.../wp-content/languages/plugins/
La actualización de la traducción ha fallado

Parece que el usuario que se encarga de actualizar wordpress no puede escribir en este directorio y, por eso está fallando la actualización. Me he encontrado más errores parecidos en otros subdirectorios de /wp-content, así que el problema estaba localizado.

Para solucionarlo, he entrado por SSH y he revisado los permisos de los subdirectorios de /wp-content, y he visto que el problema viene porque estos directorios sólo tenían permisos de escritura para el usuario propietario, que no es el mismo que se encarga de las actualizaciones. Los permisos estaban con algo así como 'drwxr-xr-x'.

La solución en mi caso ha sido actualizar los permisos de los subdirectorios y sus archivos para que no sólo el propietario sino también otros usuarios del mismo grupo puedan escribir sobre ellos:

> chmod -R 775 languages
> chmod -R 775 plugins
> chmod -R 775 themes
> chmod -R 775 upgrade
> chmod -R 775 uploads

Esta ha sido mi solución, por que mi usuario pertenecía al mismo grupo que el usuario de Apache, y con conceder permisos de escritura a nivel de grupo ya se podía solventar. En caso que no fuera así, tendría que haber incluído al usuario de apache en el grupo, o cambiado el usuario propietario de los directorios y ficheros o, menos recomendable por cuestiones de seguridad, ampliado los permisos a todos los usuarios con un chmod 777.

Comentar que mi instalación de Wordpress estaba hecha con la utilidad de Plesk para instalar aplicaciones web como Wordpress, Drupal o Joomla, así que posiblemente le pase lo mismo a más gente que utice la plantilla de Plesk para instalar un nuevo blog de Wordpress.

Hay hostings, como el de webempresa, que ya ofrecen paquetes específicos para wordpress, y la instalación ya viene mejor 'ajustada' para que no pasen estas cosas, que por otro lado tampoco son tan difíciles de solventar :)

 

Buenas tardes:

Se que el post en un poco antiguo, pero me ha venido de perlas.
Yo he probado con los permisos con 775 y no me funcionaba, así que le he dado permisos totales 777 y funcionó.

> chmod -R 775 languages
> chmod -R 775 plugins
> chmod -R 775 themes
> chmod -R 775 upgrade
> chmod -R 775 uploads

Saludos y gracias por el aporte.

si no so va con 775 mirad si es que tenéis el grupo bien es decir en un servidor con debían o ubuntu el usuario del apache es www-data lo podéis cambiar así chgrp www-data -R wp-content y asi lo pondria en todos los archivos y carpetas dentro de wp-content

Post muy antiguo, pero si alguien lo ve y responde me gustaria saber como hago para que me funcione con los permisos 775. Me explico, con el permiso 777 me funciona excelente, pero por motivos de seguridad no es recomendable dejar esos permisos. Asi que verifique cual usuario es el que esta ejecuntando wordpress y me muestra el usuario "apache", asi que lo agrego en el grupo "accesos" que tiene permisos 775 y no me funciona.

Como obtuve el usuario que ejecuta en wordpress?

 

Hice esto: edite el archivo de WordPress /var/www/html/index.php y agregue la siguiente linea en la parte superior del documento: echo(exec("whoami"));die();echo(exec("whoami"));die();

echo(exec("whoami"));die();

Guarde y actualize mi pagina web y me muestra el usuario que ejecuta.

De todos modos sigo sin poder aplicar los updates y upgrades sin aplicar 777.

 

Alguien sabe si otro usuario ejecuta algo fuera del usuario apache?

En respuesta a por Anonimo (no verificado)

Buenas. Echa un vistazo a este tema en el que comento cómo solucionar el problema de los usuarios en grupos diferentes, pero con Drupal. Como el problema es el mismo yo creo que te puede servir, y explico paso por paso lo que hice yo para que tanto el usuario de Apache como el propietario pudieran escribir sobre los mismos archivos gracias a los permisos de grupo, y sin usar la peligrosa opción del chmod 777.

Con suerte te faltará alguna cosa por hacer para que te funcione.

Una opción que te puede solventar temporalmente el problema, mientras no dejes bien los permisos, si tu hosting o tu entorno te permite cambiarlo rápidamente, es ejecutar PHP en modo FASTCGI en lugar de modo Apache.

Ya nos dirás..

A mí me ha sucedido algo similar, indicaba el siguiente mensaje al actualizar los plugins: Error en la actualización: No ha sido posible copiar el archivo. admin-es_ES.po y el otro mensaje: Error en la actualización: No se ha podido descomprimir el paquete. PCLZIP_ERR_BAD_FORMAT (-10) : Unable to find End of Central Dir Record signature, No ha sido posible copiar el archivo. admin-es_ES.po La solución a este problema: desde el panel de control de tu hosting, revisar la cuota de tu disco virtual, si ha superado el tamaño de tu disco, debes de eliminar archivos que no uses o si has activado las copias automáticas de tu sitio wordpress, debes hacer un respaldo seguro de tu sitio y eliminar copias que no usarás. Problema solucionado, a mi me ha funcionado.