Instalar WP-CLI en Cloudlinux con CageFS

Si te gestionas tu propio servidor, y en este caso es CloudLinux, es muy probable que una de las ventajas que disfrutes es la del sistema de CageFS para enjaular a cada uno de los usuarios y que no se fastidien los sitios entre ellos.

Pero si utilizas WordPress en algunos de ellos y, por ejemplo, quieres configurar que los crones los ejecute el servidor, te encontrarás con un pequeño problema: CageFS y WP-CLI no se llevan muy bien.

Si quieres instalarlo, deberás seguir algunos pequeños pasos, diferentes de los que habitualmente se ejecutan:

cd ~
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
chmod +x wp-cli.phar
chown root:nobody wp-cli.phar
mv wp-cli.phar /usr/local/bin/wp

Hasta aquí la principal diferencia con respecto al «manual» de WP-CLI es que le damos permisos de [nobody] al grupo del fichero. Con esto, más adelante, se permitirá que cualquier usuario pueda llegar a ejecutar la instalación global de WP-CLI.

El siguiente paso a realizar es el de configurar el CageFS para que pueda acceder a ejecutar WP-CLI:

vim /etc/cagefs/conf.d/wpcli.cfg

Y añadimos el siguiente contenido:

[wpcli]
comment=Permite ejecutar WP-CLI con CageFS
paths=/usr/local/bin/wp

Y una vez hayamos guardado, actualizaremos el CageFS para que se pueda ejecutar el WP-CLI.

cagefsctl --force-update

En principio, con esto, si entras por SSH en cualquier usuario (aunque tenga el jailed activado) podrá ejecutarlo… el problema viene al intentar configurar los crones… aunque para ello (sin ser la mejor opción) podemos llamarlos por ejemplo, así:

* * * * * WP_CLI_PHP=/usr/local/bin/php; SHELL=/bin/bash; /usr/local/bin/wp cron event run --due-now --path=/home/usuario/public_html/ >/dev/null 2>&1

Es posible que recibas algún mensaje de error en la ejecución, pero se ejecutan los crones, que es la situación a resolver.


Sobre este documento

Este documento está regulado por la licencia EUPL v1.2, publicado en WP SysAdmin y creado por Javier Casares. Por favor, si utilizas este contenido en tu sitio web, tu presentación o cualquier material que distribuyas, recuerda hacer una mención a este sitio o a su autor, y teniendo que poner el material que crees bajo licencia EUPL.