WordPress

Использование WP-CLI на вашем сайте WordPress

KPanel includes a WP-CLI console that runs commands against your WordPress site from the browser, with no SSH client and no server login. This guide covers where to find it, exactly which commands…

KPanel включает консоль WP-CLI, которая выполняет команды для вашего сайта WordPress прямо из браузера без клиента SSH и входа на сервер. Это руководство описывает, где её найти, какие команды разрешены и почему, какие сочетания клавиш встроены в интерфейс, и что делать, если консоль не может выполнить нужную вам команду.

Открытие консоли

  1. Войдите в KPanel и нажмите Websites в левой боковой панели.
  2. Нажмите на ваш сайт WordPress.
  3. Откройте вкладку WordPress, затем раздел Console.

Консоль WP-CLI на сайте WordPress в KPanel

Ввод уже начинается с зафиксированного wp, поэтому вы вводите только то, что идёт после него. plugin list, а не wp plugin list. Нажмите Enter или щёлкните Run.

Console входит в разделы, которые появляются в управляемых тарифах. На других тарифах полоса вкладок заканчивается ссылкой +8 on Managed. Каждое описанное здесь действие, которое не является сырой командой, имеет эквивалентную кнопку в другом месте KPanel, поэтому ничего недоступно: консоль это просто более быстрый способ работать с тем же движком.

Команды выполняются от имени системного пользователя вашего сайта в директории вашего сайта. Они не могут видеть или трогать никакие другие сайты.

Что консоль может и не может запустить

Консоль использует белый список. Принимаются только приведённые ниже префиксы команд, всё остальное отклоняется до отправки на сервер с сообщением об отказанной команде.

ОбластьРазрешено
Corecore version, core check-update, core update, core is-installed, core verify-checksums
Pluginsplugin list, plugin update, plugin install, plugin activate, plugin deactivate, plugin status, plugin get, plugin delete, plugin verify-checksums
Themestheme list, theme update, theme install, theme activate, theme status, theme get, theme delete
Usersuser list, user get, user create, user update, user set-role, user delete, user reset-password, user add-cap, user remove-cap, user generate
Databasedb size, db tables, db optimize, db repair, db check
Cache and transientscache flush, cache get, cache set, cache add, cache delete, transient get, transient set, transient delete
Rewrite rulesrewrite flush, rewrite list, rewrite structure
Croncron event list, cron event run, cron schedule list
Configconfig get, config list, config has, config shuffle-salts
Maintenance modemaintenance-mode activate, maintenance-mode deactivate, maintenance-mode status
Read only inspectionoption get, option list, post list, post get, comment list, comment get
Media and languagemedia regenerate, language core install, language core update
Search and replacesearch-replace

Целенаправленные исключения важнее, чем разрешения:

  • eval и shell заблокированы. Произвольный PHP и произвольная shell сделали бы консоль эквивалентной командной строке root в вкладке браузера.
  • db import, db export, db drop, db query и db reset заблокированы. Импорт и сброс уничтожают базу данных без подтверждения; db query это неограниченное приглашение SQL. Используйте вместо этого phpMyAdmin: Accessing Your Database With phpMyAdmin.
  • config set и config delete заблокированы. Неправильная запись wp-config.php переводит сайт в офлайн. Читайте значения здесь, изменяйте их через менеджер файлов.
  • option update и option delete заблокированы. Слепое редактирование параметров это обычный способ сломать сайт без возможности восстановления.

Консоль не делает резервную копию за вас ни для какой команды. Это делают только кнопки в разделе Quick Actions. Перед search-replace, core update, plugin update, theme update, db optimize или db repair сделайте резервную копию самостоятельно на вкладке Backups сайта. Смотрите Taking a Backup.

Работа в консоли

Интерфейс делает больше, чем просто принимает одну команду за раз.

Кнопки предустановок. Сгруппированные сочетания клавиш находятся над приглашением: Performance (очистить кэш, очистить transients, очистить перезаписи, проверка автозагрузки), Database (оптимизировать, проверить, восстановить, размер), Diagnostics (версия WP, проверить обновления, проверить ядро, события cron), Content (список плагинов, тем, пользователей, запустить cron сейчас), Security (пользователи администратора, контрольные суммы плагинов, сброс солей, wp-config) и Maintenance (включить и выключить режим обслуживания, пересоздать миниатюры, статус). Один щелчок запускает команду.

История. Нажимайте стрелки вверх и вниз в приглашении, чтобы перемещаться по последним 50 командам на этом сайте.

Snippets. Щёлкните значок закладки рядом с командой, чтобы сохранить её с именем, так что длинное выражение, которое вы используете каждый месяц, будет одним щелчком в следующий раз.

Environment card. Над приглашением карточка показывает версию PHP сайта, версию WordPress, лимит памяти, текущее использование памяти, максимум загрузки и лимит времени выполнения, с кнопкой Copy for support, которая помещает всё это плюс ваш список активных плагинов в буфер обмена. Вставьте это в тикет поддержки и вы сэкономили круг общения.

Copy output. Каждый блок результата имеет кнопки копирования и очистки.

Output поступает по мере выполнения команды, так что длительная операция показывает прогресс вместо молчаливого ожидания.

Команды, которые стоит знать

Diagnosis

core version
core verify-checksums
plugin verify-checksums --all
plugin list --status=active --format=table
db size --tables
option list --autoload=yes

verify-checksums сравнивает ваши основные файлы и файлы плагинов с официальными опубликованными копиями и сообщает о всём изменённом. Это самая быстрая первоначальная проверка для сайта, который вы подозреваете был изменён.

option list --autoload=yes выводит список всех параметров, которые WordPress загружает при каждом запросе. Раздутая таблица автозагрузки одна из самых частых причин медленного сайта без видимой причины.

Housekeeping

cache flush
transient delete --all
rewrite flush
db optimize
cron event list
cron event run --due-now

Users

user list --role=administrator --format=table
user create jo jo@example.com --role=editor
user update 4 --user_pass='a-long-unique-password'

Всё введённое здесь записывается в журнал активности вашей учётной записи, включая пароли. Измените пароль, который вы установили таким образом, после входа. Полная информация о восстановлении учётной записи находится в Resetting a Lost WordPress Admin Password.

Search and Replace

search-replace 'http://old-domain.co.nz' 'https://old-domain.co.nz' --all-tables --dry-run

Всегда сначала сделайте пробный запуск. Полное объяснение, включая то, почему прямая замена SQL повреждает базу данных WordPress, находится в Running a Search and Replace.

Console или Quick Actions?

Оба запускают один и тот же WP-CLI под капотом. Выбирайте на основе этого:

TaskBetter route
Flush cache, update plugins, regenerate mediaQuick Actions, один щелчок и резервная копия делается первой
Search and replace с предпросмотром по таблицамQuick Actions, карточка Search & Replace
Всё, требующее определённого флагаConsole
Listing, inspecting, diagnosingConsole
Running one overdue cron eventConsole
Editing wp-config.php или импорт базы данныхНи то ни другое. Используйте менеджер файлов или phpMyAdmin

Когда вам нужно больше, чем белый список

Для неограниченного WP-CLI подключитесь по SSH и запустите wp прямо из директории вашего сайта. SSH использует только аутентификацию по ключу, поэтому сначала добавьте ваш открытый ключ на вкладке Files, затем SSH Keys. Подробности подключения, включая точный хост, порт и имя пользователя, показаны на этом же экране. Смотрите Adding SSH Keys и Connecting Over SFTP.

Troubleshooting

"'x y' is not in the allowed command list." Команда не в белом списке. Проверьте таблицу выше на ближайший разрешённый эквивалент или используйте SSH.

"No results returned. Check that WP-CLI is available." Команда выполнилась, но ничего не вывела. Обычно правильное поведение для запроса без совпадений.

The command times out. Команды консоли ограничены 60 секундами. Длительные операции, такие как пересоздание большой медиа-библиотеки, должны запускаться из Quick Actions, которая использует более длительный лимит, или по SSH.

Nothing runs and the buttons are disabled. Ваша роль в аккаунте Kapsule доступна только для чтения для этого сайта. Попросите владельца аккаунта повысить её.

Вам всё ещё нужна помощь?

Напишите нам на support@kapsulehost.com или откройте чат в KPanel.

Открыть KPanel
Использование WP-CLI на вашем сайте WordPress