WP-CLI - Selezione della versione PHP

27 ott 2016, 17:20:51
Visualizzazioni: 17.6K
Voti: 17

Su un server di sviluppo ho una co-installazione di PHP 5.6 & 7; nginx è configurato con PHP 5.6. Quando digito "wp" restituisce diversi errori e alla fine del messaggio di errore c'è un contenuto che dice:

La tua installazione PHP sembra mancare dell'estensione MySQL che è richiesta da WordPress.

Digitando wp --info restituisce:

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 sembra utilizzare PHP 7 come default, preferirei che utilizzasse PHP 5.6.

Quindi mi chiedevo se ci fosse un'opzione da aggiungere al file di configurazione yml per selezionare quale versione di PHP usare?

Se hai bisogno di ulteriori informazioni, fammi sapere

2
Commenti

Quando WP CLI carica il file yml, è già in esecuzione all'interno di PHP, la risposta a questo dipenderà dal tuo ambiente, dal sistema operativo e da come PHP è installato, dai un'occhiata a strumenti come PHPBrew, ecc.

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

Come nota a margine, dovresti avere mysqli installato, tale estensione è disponibile anche per PHP7, sebbene l'estensione mysql non sia più supportata e dovrebbe essere evitata. Inoltre, lavora sempre dal primo errore/avviso verso il basso, il secondo errore potrebbe verificarsi solo quando si verifica il primo

Tom J Nowell Tom J Nowell
27 ott 2016 18:04:55
Tutte le risposte alla domanda 4
2
19

Su un sistema dove

  • non puoi modificare il symlink /usr/bin/php
  • non puoi cambiare il PATH per puntare a una versione diversa (perché gli eseguibili php non risiedono in directory /lib/ separate)
  • WP_CLI_PHP non ha effetto

(come il mio Arch Linux con php(8), php7 installato da extra e wp-cli installato da AUR. Sto usando php7 vs php8 qui, ma questo dovrebbe funzionare per qualsiasi versione.)

...una soluzione alternativa potrebbe essere chiamare l'eseguibile phar wp con la CLI di php7:

whereis wp
# /usr/bin/wp

php7 /usr/bin/wp cli info
# PHP binary:     /usr/bin/php7
# PHP version:    7.4.25

per comodità puoi aggiungere un alias bash nel tuo .bashrc:

alias wp-php7='php7 /usr/bin/wp'
# oppure sovrascrivere wp completamente
alias wp='php7 /usr/bin/wp'
25 nov 2021 12:39:42
Commenti

una soluzione brillante

Abilogos Abilogos
5 mag 2022 16:16:43

questa è davvero la soluzione migliore per il mio caso d'uso.. Avevo utenti virtuali (nessun file poteva essere scritto nella home root) - Grazie @kubi

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

Ho avuto lo stesso problema! Basta cambiare la versione di PHP. Sul mio server PHP5.6 era impostato come predefinito per Apache, mentre la CLI era configurata con PHP7.1. Dopo aver installato WP-CLI, con wp --info ho ottenuto questo risultato:

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

E quando ho usato il comando wp core install ho ricevuto l'errore: La tua installazione PHP sembra non avere l'estensione MySQL che è richiesta da WordPress. Il problema è semplicemente il mix tra le diverse versioni: dobbiamo semplicemente passare completamente a 5.6 o 7.1. Nel mio caso il problema è stato risolto semplicemente scrivendo sul terminale:

sudo update-alternatives --set php /usr/bin/php5.6

E poi 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 risolto! WP-CLI ha funzionato perfettamente.

16 mag 2017 15:14:06
1
10

Puoi impostare il binario PHP che WP-CLI utilizza configurando una variabile d'ambiente nella tua shell Linux.

export WP_CLI_PHP=/percorso/del/php5.6
27 ott 2016 17:48:55
Commenti

Secondo la documentazione, questo funziona solo se hai installato wp-cli tramite git o composer. Non sono riuscito a farlo funzionare con wp-cli installato via yum su CentOS.

cstrouse cstrouse
1 apr 2020 01:16:36
0

Sembra che tu debba cambiare la versione predefinita di PHP.

Presumo che php -v restituisca la versione 7?

Dovrai modificare il PATH.

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

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

27 ott 2016 17:45:54