Autonomía digital y tecnológica

Código e ideas para una internet distribuida

Cómo actualizar WordPress, instalar plugins o themes en localhost automáticamente

Imago voragine.net

WordPress se puede actualizar de dos maneras: automáticamente mediante el botón Actualizar del panel de administración, o sustituyendo los antiguos archivos por los nuevos vía FTP. Hay veces que usando el primer método, WordPress nos pide las credenciales de conexión con el servidor, y hay veces que aunque se las demos, la actualización no se produce. Esto es común en instalaciones de WordPress en localhost aunque se puede dar en cualquier servidor.

Por qué WordPress no se deja actualizar desde el panel de administración

Cuando esto ocurre la causa es una configuración del servidor incompatible; generalmente el problema está relacionado con los permisos y propietarios de los archivos.

Cualquier petición al sistema donde está alojado nuestro WordPress que se realiza desde un navegador web, más precisamente usando el protocolo HTTP, llega a través del servidor web, generalmente Apache. En Linux cada proceso y cada servicio está ejecutado por un usuario y un grupo del sistema. En el caso del servidor web Apache, el usuario suele ser apache o www-data.

En el caso de una actualización de WordPress, la petición consiste en sustituir unos archivos alojados en el servidor por los de la nueva versión versión de WordPress. En un servidor Linux, igual que los procesos, cada archivo y cada carpeta pertenece a un usuario, y hay un grupo de usuarios que también tienen ciertos permisos sobre aquél. Si el usuario del servidor web que es el que tiene que sustituir los archivos, no es el propietario de los archivos o no pertenece al grupo de usuarios con permisos sobre ellos, no podrá realizar la actualización.

Cómo configurar WordPress y el servidor para actualizar WordPress automáticamente

Nos tenemos que asegurar de que el usuario del servidor web tenga permiso para manipular los archivos a sustituir en la actualización. Podríamos designarle como propietario, pero quizás no sea el único que tenga que manipular esos archivos, y si cambiamos el propietario dejaríamos a otros procesos sin permisos sobre esos archivos. Así que lo más recomendable es cambiar el grupo de los archivos para que coincida con el del servidor web, normalmente apache o www-data, y asegurarnos de que el grupo tiene permisos de escritura sobre los arhchivos.

Para cambiar el grupo y los permisos de los archivos quizás tengamos que hacerlos como root, en función de quién sea el propietario, claro. En cualquier caso la manera es la siguiente:

Primero averiguamos cuál es el usuario y grupo del servidor web. Cada servidor web, incluso cada versión, tiene una estructura de archivos de configuración diferente y el lugar donde encontrar esta información varía. Para Apache2 tenemos que consultar el arhivo /etc/apache2/envvars:

$ grep www-data /etc/apache2/envvars
export APACHE_RUN_USER=www-data
export APACHE_RUN_GROUP=www-data

Una vez tenemos el grupo, lo cambiamos y también los permisos:

$ cd /ruta/hasta/la/carpeta/wordpress
$ chgrp -R www-data *
$ chmod -R g+rw *

Además, en algunas instalaciones de WordPress necesitaremos añadir la línea

define('FS_METHOD','direct');

al archivo wp-config.php de WordPress, después de la línea

require_once(ABSPATH . 'wp-settings.php');

De esta manera podremos también instalar nuevos plugins, themes o utilizar el gestor de medios sin problemas.

5 comentarios

    • Por Eleazar

    Muchas gracias por este articulo, me ayudo para hacer pruebas en mi servidor local.

    Saludos

  1. Sólo a modo de consulta, al asignar derechos sobre el directorio de WordPress al usuario web del grupo de apache me pregunto si prácticamente cualquiera que navegue podría tener acceso a ese directorio y a su contenido, e incluso a ejecutar codigo malicioso?, disculpa pero tengo la duda, si no fuera de ese modo la propuesta me parece excelente, gracias.

    1. Hola Roy, tratándose de un localhost no existe ese riesgo.

      Pero en cualquier caso al asignar derechos de lectura y escritura al grupo del servidor apache únicamente tendrán acceso a esos archivos los usuarios que estén en el grupo www-data, no a cualquiera que navegue.

      En cualquier caso esto no es una configuración para implementar en un servidor de producción multiusuario, es para un entorno de desarrollo local.

    • Por calaveralma •

    Muchas gracias, me sirvió mucho el artículo.

Dejar un comentario

*
*