Skip to main content

Problemas por la versión shell usada y wp-cli (cPanel version)

Introducción

A veces podemos encontrarnos con un usuario con un Wordpress muy, muy obsoleto, y aunque tengamos la versión de PHP requerida en el shell, seguiremos teniendo problemas con wp cli porque este depende de la instalación de WP que tiene. La solución pasa por usar la versión php original

En cpanel es fácil hacer esto,

Aunque este tip es para cPanel, vale para cualquier distribución Linux o *nix. adaptando el tip a tu SO

Si buscas algo para Directadmin, te dejo aqu: PHP en shell para usar wp cli en DirectAdmin

Ejemplo

 wp core update && wp plugin upgrade --all && wp theme upgrade --all
Fatal error: __autoload() is no longer supported, use spl_autoload_register() instead in /home/user/public_html/wiki.dominio.com/wp-includes/compat.php on line 502

 php -v
PHP 7.2.34 (cli) (built: Mar 28 2023 21:20:00) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
    with the ionCube PHP Loader + ionCube24 v10.4.5, Copyright (c) 2002-2020, by ionCube Ltd.
    with Zend OPcache v7.2.34, Copyright (c) 1999-2018, by Zend Technologies

El usuario tiene una versión correcta en la que todavía no estaba declarada obsoleta la función __autoload()

Así que vemos en el sistema que versiones hay y su path.

Como root podemos hacer

whmapi1 php_get_installed_versions
---
data:
  versions:
    - ea-php54
    - ea-php55
    - ea-php56
    - ea-php70
    - ea-php71
    - ea-php72
    - ea-php73
    - ea-php74
    - ea-php80
    - ea-php81
    - ea-php82
metadata:
  command: php_get_installed_versions
  reason: OK
  result: 1
  version: 1

Así que las versiones que tenemos están en /opt/cpanel/ea-phpXX/root/usr/bin/php

Ahora solo nos queda llamar al wp-cli de forma adecuada 72 es la versión que queremos usar /usr/local/bin/wp es el path de instalación global de la herramienta wp

/opt/cpanel/ea-php72/root/usr/bin/php /usr/local/bin/wp core update
Aviso

Esta documentación y su contenido, no implica que funcione en tu caso o determinados casos. También implica que tienes conocimientos sobre lo que trata, y que en cualquier caso tienes copias de seguridad. El contenido el contenido se entrega, tal y como está, sin que ello implique ningún obligación ni responsabilidad por parte de Castris

Si necesitas soporte profesional puedes contratar con Castris soporte profesional.