Прежде чем начать сообщать о новой проблеме в репозитории GitHubGitHub GitHub — это веб-сайт, предлагающий онлайн-размещение репозиториев git, которыми другие разработчики могут легко делиться, копировать и изменять. Публичные репозитории размещаются бесплатно, для частных репозиториев требуется платная подписка. GitHub представил концепцию «pull request», при которой изменения кода, выполненные участниками в ветках, могут быть проверены и обсуждены владельцем репозитория перед слиянием. https://github.com/, убедитесь, что проверили свою локальную установку, поскольку некоторые настройки могут привести к неожиданному результату выполнения ваших команд WP-CLIWP-CLI WP-CLI — это интерфейс командной строки для WordPress, используемый для выполнения административных задач и задач разработки программным способом. Страница проекта: http://wp-cli.org/ https://make.wordpress.org/cli/.
Как получить более подробную информацию о моей установке WP-CLI?
WP-CLI предоставляет команду wp --info, которая выводит много информации о среде установки WP-CLI. В выводе будет указано,
* какую операционную систему и оболочку вы используете
* какой двоичный файл PHPPHP PHP (рекурсивная аббревиатура от PHP: Hypertext Preprocessor) — широко используемый скриптовый язык программирования общего назначения с открытым исходным кодом, особенно подходящий для веб-разработки и встраиваемый в HTML. https://www.php.net/manual/en/index.php используется для запуска WP-CLI
* какую версию PHP вы используете
* где находится корневой каталог WP-CLI
* где находится каталог vendor WP-CLI
* с каким двоичным файлом WP-CLI вы сейчас работаете (путь к phar)
* где хранятся пакеты WP-CLI
* где находятся глобальные и проектные файлы конфигурации WP-CLI и
* какую версию WP-CLI вы используете.
Что следует сделать перед началом отладки проблем?
Прежде чем начинать отладку проблем, убедитесь, что используете последнюю версию WP-CLI. Возможно, последняя версия уже устранила возникшую у вас проблему. Команда wp cli update обновит версию WP-CLI или подтвердит, что вы уже используете последнюю версию. Если установка зависает, убедитесь, что вам разрешено подключаться к GitHub через SSLSSL Secure Socket Layer — шифрование данных от сервера к браузеру и обратно. Не позволяет посторонним видеть, что вы отправляете между браузером и сервером. (порт 443) и git (порт 9418) для исходящих подключений.
Что делать, если вывод WP-CLI отличается от ожидаемого?
Прежде чем начинать исследование ошибки, следует учитывать факторы, которые могут изменить поведение WP-CLI по умолчанию, и знать, как проверить, могут ли они быть причиной проблемы. Существует пять основных подсистем, изменяющих это поведение по умолчанию: переменные окружения, файлы конфигурации, пакеты WP-CLI, файл wp-config.php и расширения WordPress (плагины, темы, обязательные плагины, drop-in-файлы).
Переменные окружения
Настройка рабочей среды является обязательным условием для запуска WP-CLI. Текущие параметры окружения можно проверить с помощью команды оболочки env.
Если вы хотите запускать WP-CLI удалённо с использованием SSHSSH Secure SHell — протокол для безопасного подключения к удалённой системе в дополнение к паролю или вместо него., необходимо, чтобы команда wp была доступна в пути удалённого сервера. Поведение WP-CLI также можно изменить во время выполнения с помощью переменных окружения:
WP_CLI_CACHE_DIR— каталог для хранения файлового кэша WP-CLI. По умолчанию:~/.wp-cli/cache/.WP_CLI_CONFIG_PATH— путь к глобальному файлуconfig.yml. По умолчанию:~/.wp-cli/config.yml.WP_CLI_CUSTOM_SHELL— позволяет пользователю переопределить используемую по умолчанию оболочку/bin/bash.WP_CLI_DISABLE_AUTO_CHECK_UPDATE— отключает автоматическую проверку обновлений WP-CLI.WP_CLI_DOCKER_NO_TTY— игнорирует обнаруженный статус tty и удаляет флаг--ttyизdocker execпри запуске WP-CLI в контейнере Docker через ssh.WP_CLI_DOCKER_NO_INTERACTIVE— игнорирует обнаруженный статус tty и удаляет флаг--interactiveизdocker execпри запуске WP-CLI в контейнере Docker через ssh.WP_CLI_PACKAGES_DIR— каталог для хранения пакетов, установленных через управление пакетами WP-CLI. По умолчанию:~/.wp-cli/packages/.WP_CLI_PHP— путь к двоичному файлу PHP, используемому вместо системного значения по умолчанию (работает только для установки не из Phar).WP_CLI_PHP_ARGS— аргументы, передаваемые двоичному файлу PHP при вызове WP-CLI (работает только для установки не из Phar).WP_CLI_SSH_PRE_CMD— при использовании--ssh=<ssh>выполняет команду до того, как WP-CLI вызовет WP-CLI на удалённом сервере.WP_CLI_SSH_BINARY— при использовании--ssh=<ssh>команда, которая будет вызвана на удалённой машине вместоwp.WP_CLI_STRICT_ARGS_MODE— устраняет неоднозначность, указывая WP-CLI считать все аргументы до команды глобальными, а после команды — локальными.WP_CLI_SUPPRESS_GLOBAL_PARAMS— установите значениеtrue, чтобы не показывать глобальные параметры в конце экрана справки. Это экономит место на экране для опытных пользователей.WP_CLI_FORCE_USER_LOGIN— установите значение1, чтобы значение, переданное флагу--user, интерпретировалось как имя пользователя, а не как идентификатор, что позволяет обойти неоднозначность типов.WP_CLI_EARLY_REQUIRE— загружает один или несколько пользовательских PHP-файлов (разделённых запятыми) на раннем этапе процесса загрузки.WP_CLI_REQUIRE— загружает один или несколько пользовательских PHP-файлов (разделённых запятыми) после процесса загрузки. Это имеет тот же эффект, что и--requireв командной строке или сопоставлениеrequireв файле конфигурации wp-cli.yml.WP_CLI_USER_AGENT— устанавливает значение$_SERVER['HTTP_USER_AGENT'], от которого зависят некоторые плагины и инструменты.
Чтобы установить переменную окружения по требованию, можно разместить её определение перед командой WP-CLI, которую нужно выполнить (например, EDITOR=vim wp post edit 1); чтобы переопределить переменные окружения, используйте export VARIABLE=value в файле ~/.bashrc или ~.zhsrc.
Файлы конфигурации WP-CLI
Файлы конфигурации позволяют настроить поведение WP-CLI в соответствии с вашими личными потребностями или потребностями проекта. Если файл конфигурации содержит ошибки или нежелательные изменения поведения по умолчанию, вывод WP-CLI, скорее всего, отразит эту ошибку.
Обратите внимание, что файл конфигурации проекта может переопределять настройки глобального файла конфигурации.
Переименуйте или удалите файл(ы) конфигурации и сравните результат, чтобы выяснить, могла ли настройка конфигурации вызвать проблему.
Пакеты WP-CLI
Пакеты WP-CLI — это проекты, поддерживаемые сообществом и созданные на основе WP-CLI. Они могут содержать команды WP-CLI, но также могут просто каким-либо образом расширять WP-CLI. Даже если WP-CLI работает безупречно, пакет с ошибками тоже может привести к неожиданным результатам. Чтобы пропустить загрузку всех установленных пакетов, используйте wp --skip-packages.
Файл конфигурации WordPress (wp-config.php)
Ошибки могут возникнуть в результате перемещения или редактирования wp-config.php за пределами возможностей WP-CLI. Если возникает ошибка синтаксического анализа, проверьте кодировку файла wp-config.php (UTF-8 без BOM).
Убедитесь, что строка require_once(ABSPATH . 'wp-settings.php'); остаётся в файле wp-config.php, и не изменяйте wp-config.php за пределами определений констант. Если вы вызываете функции WordPress внутри wp-config.php, PHP завершится фатальной ошибкой.
Если вы хотите использовать $_SERVER['HTTP_HOST'] в файле wp-config.php, необходимо задать значение по умолчанию в контексте WP-CLI:
if ( defined( 'WP_CLI' ) && WP_CLI && ! isset( $_SERVER['HTTP_HOST'] ) ) {
$_SERVER['HTTP_HOST'] = `example.com';
}
Вместо $_SERVER['document_root'] используйте dirname( __FILE__ ) или аналогичный вариант.
Расширения WordPress
Темы и плагины WordPress могут конфликтовать с процессом загрузки WP-CLI или мешать ему, например перенаправляя пользователей. Они часто делают предположения, которые неверны в контексте WP-CLI, например используют имя хоста текущего запроса (понятие, не существующее в контексте командной строки).
Можно обойти отдельные плагины и темы (например, --skip-plugins=akismet) или полностью пропустить их (wp --skip-plugins --skip-themes).
Что делать, если WP-CLI сообщает об ошибке?
Распространённые проблемы возникают из-за изменений в wp-config.php или конфигурации веб-сервера. В разделе «Распространённые проблемы» руководства перечислены наиболее частые сообщения об ошибках и объясняется, как их обрабатывать.
Попробуйте воспроизвести проблему в новой установке WordPress с темой по умолчанию (Twenty …) и без установленных плагинов. Если проблема воспроизводится только в пользовательской среде, значит, это ошибка вашей среды, а не WP-CLI. Также убедитесь, что включён режим отладки WordPress: установите константу define( 'WP_DEBUG', true ); в файле wp-config.php. Это может выявить проблемы в существующей установке WordPress, не вызванные WP-CLI.
Кроме того, можно использовать глобальный параметр WP-CLI --debug, чтобы отображать все ошибки PHP и добавить подробности при загрузке WP-CLI.
Я проверил всё вышеописанное, но проблема всё ещё есть. Куда сообщить о проблеме?
Если вы считаете, что нашли ошибку, мы будем рады узнать об этом и исправить её.
Сообщения об ошибках WP-CLI обрабатываются на GitHub. Прежде чем создавать новую проблему, выполните поиск существующих проблем, чтобы узнать, нет ли уже решения. Если для вашей ошибки нет открытой или исправленной проблемы, следуйте нашим рекомендациям по отправке сообщения об ошибке, чтобы она была рассмотрена своевременно. Краткое описание, шаги воспроизведения, сведения об окружении и другие указанные ниже подробности помогут гарантировать, что вы отправляете полное сообщение об ошибке.
Пожалуйста, предоставьте:
* краткое описание проблемы в повествовательной форме,
* подробный и конкретный список шагов для воспроизведения проблемы,
* сведения об используемом окружении,
* описание того, как ошибка влияет на вашу работу (то есть ожидаемый результат в сравнении с фактическим), включая * уровень серьёзности,
* возможные обходные решения и
* соответствующие диагностические данные, такие как отчёты о сбоях, трассировки стека или отладочный вывод.
Подробное описание этих сведений для отчёта о проблеме можно найти в рекомендациях по отправке сообщения об ошибке.