WP-CLI - Выбор версии PHP

27 окт. 2016 г., 17:20:51
Просмотры: 17.6K
Голосов: 17

На сервере разработки у меня установлены PHP 5.6 и 7; nginx сконфигурирован для работы с PHP 5.6. При вводе команды "wp" появляются несколько ошибок, и в конце сообщения об ошибке содержится следующее:

Похоже, что в вашей установке PHP отсутствует расширение MySQL, необходимое для работы WordPress.

Ввод команды wp --info возвращает:

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 по умолчанию использует PHP 7, а я хотел бы, чтобы он работал с PHP 5.6.

Можно ли добавить какую-то опцию в конфигурационный yml-файл для выбора версии PHP?

Если вам нужна дополнительная информация, дайте мне знать.

2
Комментарии

К тому времени, когда WP CLI загружает yml-файл, он уже работает внутри PHP. Ответ на этот вопрос будет зависеть от вашего окружения, операционной системы и способа установки PHP. Посмотрите на такие инструменты, как PHPBrew и другие

Tom J Nowell Tom J Nowell
27 окт. 2016 г. 18:03:59

Кстати, у вас должен быть установлен mysqli. Это расширение доступно и для PHP7, в то время как расширение mysql не поддерживается и его следует избегать. Также всегда работайте с первой ошибкой/предупреждением вниз, вторая ошибка может возникать только из-за первой

Tom J Nowell Tom J Nowell
27 окт. 2016 г. 18:04:55
Все ответы на вопрос 4
2
19

В системе, где:

  • нельзя изменить символьную ссылку /usr/bin/php
  • нельзя изменить переменную PATH, чтобы указать на другую версию (потому что исполняемые файлы php не находятся в отдельных директориях /lib/)
  • WP_CLI_PHP не имеет эффекта

(например, в моей Arch Linux с установленными php(8), php7 из репозитория extra и wp-cli, установленным из AUR. Я использую php7 вместо php8 здесь, но это должно работать для любых версий.)

…обходным решением может быть вызов phar-исполняемого файла wp с помощью php7 cli:

whereis wp
# /usr/bin/wp

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

для удобства можно добавить алиас в ваш .bashrc:

alias wp-php7='php7 /usr/bin/wp'
# или переопределить wp полностью
alias wp='php7 /usr/bin/wp'
25 нояб. 2021 г. 12:39:42
Комментарии

блестящее решение

Abilogos Abilogos
5 мая 2022 г. 16:16:43

это действительно лучшее решение для моего случая использования... У меня были виртуальные пользователи (нельзя было записать файл в домашнюю директорию) - Спасибо @kubi

Kresimir Pendic Kresimir Pendic
8 нояб. 2023 г. 00:27:43
0
13

У меня была та же проблема! Просто смените версию PHP. На моем сервере PHP5.6 был установлен по умолчанию для Apache, в то время как CLI был настроен на PHP7.1. После установки WP-CLI, команда wp --info выдала такой результат:

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

И когда я использовал команду wp core install, я получил ошибку: "Your PHP installation appears to be missing the MySQL extension which is required by WordPress." (В вашей установке PHP, похоже, отсутствует расширение MySQL, которое требуется для WordPress). Проблема заключается именно в смешении разных версий: нам нужно просто полностью переключиться либо на 5.6, либо на 7.1. В моем случае проблема была решена простой командой в терминале:

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

И затем 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

Проблема решена! WP-CLI заработал как часы.

16 мая 2017 г. 15:14:06
1
10

Вы можете указать бинарный файл PHP, который будет использоваться WP-CLI, установив переменную окружения в вашей Linux-оболочке.

export WP_CLI_PHP=/путь/к/php5.6
27 окт. 2016 г. 17:48:55
Комментарии

Согласно документации, это работает только в том случае, если вы установили wp-cli через git или composer. Мне не удалось заставить это работать с wp-cli, установленным через yum на CentOS.

cstrouse cstrouse
1 апр. 2020 г. 01:16:36
0

Похоже, вам нужно изменить версию PHP по умолчанию.

Предполагаю, что команда php -v возвращает версию 7?

Вам потребуется изменить переменную PATH.

Посмотрите это: https://stackoverflow.com/questions/31206864/use-different-php-version-cli-executable-for-one-command

Или это: https://make.wordpress.org/cli/handbook/installing/#using-a-custom-php-binary

27 окт. 2016 г. 17:45:54