WP-CLI - Cómo seleccionar la versión de PHP

27 oct 2016, 17:20:51
Vistas: 17.6K
Votos: 17

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.

2
Comentarios

Para cuando WP CLI carga el archivo yml, ya se está ejecutando dentro de PHP, la respuesta a esto dependerá de tu entorno, sistema operativo y cómo está instalado PHP, revisa herramientas como PHPBrew etc

Tom J Nowell Tom J Nowell
27 oct 2016 18:03:59

Como nota aparte, deberías tener mysqli instalado, dicha extensión está disponible también para PHP7, aunque la extensión mysql no tiene soporte y debería evitarse. Además, siempre trabaja desde el primer error/advertencia hacia abajo, el segundo error puede que solo ocurra cuando el primero sucede

Tom J Nowell Tom J Nowell
27 oct 2016 18:04:55
Todas las respuestas a la pregunta 4
2
19

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'
25 nov 2021 12:39:42
Comentarios

una solución brillante

Abilogos Abilogos
5 may 2022 16:16:43

esta es realmente la mejor solución para mi caso de uso... Tenía usuarios virtuales (ningún archivo podía ser escrito en el directorio raíz) - Gracias @kubi

Kresimir Pendic Kresimir Pendic
8 nov 2023 00:27:43
0
13

¡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.

16 may 2017 15:14:06
1
10

Puedes establecer el binario de PHP que utiliza WP-CLI configurando una variable de entorno en tu terminal de Linux.

export WP_CLI_PHP=/ruta/hacia/php5.6
27 oct 2016 17:48:55
Comentarios

Según la documentación, esto solo funciona si has instalado wp-cli mediante git o composer. No pude hacerlo funcionar con wp-cli instalado a través de yum en CentOS.

cstrouse cstrouse
1 abr 2020 01:16:36
0

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.

Mira esto: https://stackoverflow.com/questions/31206864/use-different-php-version-cli-executable-for-one-command

O esto: https://make.wordpress.org/cli/handbook/installing/#using-a-custom-php-binary

27 oct 2016 17:45:54