WP-CLI - Cómo seleccionar la versión de PHP
En un servidor de desarrollo tengo instaladas las versiones PHP 5.6 y 7; nginx está configurado con PHP 5.6. Cuando escribo "wp" devuelve varios errores y al final del mensaje de error aparece lo siguiente:
Tu instalación de PHP parece no tener la extensión MySQL que es requerida por WordPress.
Al escribir wp --info devuelve:
PHP binary: /usr/bin/php7.0
PHP version: 7.0.10-2+deb.sury.org~precise+1
php.ini used: /etc/php/7.0/cli/php.ini
WP-CLI root dir: phar://wp-cli.phar
WP-CLI packages dir:
WP-CLI global config: /srv/www/wp-cli.yml
WP-CLI project config:
WP-CLI version: 0.26.0-alpha-5672b63
WP-CLI parece estar usando PHP 7 por defecto, preferiría que usara PHP 5.6.
Me preguntaba si existe alguna opción que pueda añadir al archivo de configuración yml para seleccionar qué versión de PHP usar.
Si necesitas más información, házmelo saber.
En un sistema donde:
- no puedes cambiar el enlace simbólico
/usr/bin/php
- no puedes cambiar la variable
PATH
para apuntar a una versión diferente (porque los ejecutables de php no residen en directorios/lib/
distintos) WP_CLI_PHP
no tiene efecto
(como en mi caso con Arch Linux teniendo php
(8), php7
instalado desde extra y wp-cli
instalado desde AUR. Estoy usando php7 vs php8 aquí, pero esto debería funcionar para cualquier versión.)
...una solución alternativa puede ser llamar el ejecutable phar wp
con el cli de php7
:
whereis wp
# /usr/bin/wp
php7 /usr/bin/wp cli info
# PHP binary: /usr/bin/php7
# PHP version: 7.4.25
Para mayor comodidad, puedes agregar un alias en tu archivo .bashrc
:
alias wp-php7='php7 /usr/bin/wp'
# o sobrescribir wp completamente
alias wp='php7 /usr/bin/wp'

¡Tuve el mismo problema! Solo hay que cambiar la versión de PHP.
En mi servidor, PHP5.6 era la predeterminada para Apache, mientras que CLI estaba configurada con PHP7.1. Después de instalar WP-CLI, con wp --info
obtuve este resultado:
PHP binary: /usr/bin/php7.1
PHP version: 7.1.5-1+deb.sury.org~xenial+1
php.ini used: /etc/php/7.1/cli/php.ini
WP-CLI root dir: phar://wp-cli.phar
Y cuando usé el comando wp core install, obtuve el error: Tu instalación de PHP parece no tener la extensión MySQL que WordPress requiere. El problema es simplemente la mezcla entre las diferentes versiones: solo tenemos que cambiar completamente a 5.6 o 7.1. En mi caso, el problema se resolvió simplemente escribiendo en la terminal:
sudo update-alternatives --set php /usr/bin/php5.6
Y luego wp --info
PHP binary: /usr/bin/php5.6
PHP version: 5.6.30-10+deb.sury.org~xenial+2
php.ini used: /etc/php/5.6/cli/php.ini
WP-CLI root dir: phar://wp-cli.phar
¡Problema resuelto! WP-CLI funcionó a la perfección.

Parece que necesitas cambiar tu versión predeterminada de PHP.
Asumo que php -v
devuelve la versión 7?
Necesitarás cambiar la variable PATH.
O esto: https://make.wordpress.org/cli/handbook/installing/#using-a-custom-php-binary
