Утилиту wp-cli можно установить напрямую на сервер, где работают сайты. Если они в контейнерах, то удобнее запускать рядом контейнер wordpress:cli сразу в составе docker compose. По своей сути это скрипт на php, как и сам движок Wordpress.
Устанавливаем на сервер:
# curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar# chmod +x wp-cli.phar# mv wp-cli.phar /usr/local/bin/wp# wp --infoИли запускаем сразу из контейнера в составе docker compose:
# docker-compose run --rm wp-cli wp --infoРазберу прикладной пример анализа производительности WP. Не всегда бывает просто узнать, почему он внезапно начал тормозить. В общем случае нужно запустить профилирование php чем то наподобие xhprof или xdebug и смотреть, в чём проблема. Но это длинный путь, для того чтобы по нему пройти, необходимы знания и работа с кодом сайта. Есть путь проще с помощью wp-cli и profile-command.
Устанавливаем профайлер wp-cli/profile-command от пользователя, под которым работает сайт:
# sudo -u nginx wp package install wp-cli/profile-command:@stableЕсли через compose запускаете, о пользователе переживать не надо. Там всё под одним работает.
Запускаем профилировщик, указывая ему путь к директории с сайтом.
# sudo -u nginx wp profile stage --path=/web/wwwВы увидите разные стадии загрузки сайта. Если явно видно, что какая-то из них работает медленно, можно погрузиться в подробности. Посмотрим подробнее на загрузку плагинов, тем и хуков движка на этапе bootstrap:
# sudo -u nginx wp profile stage bootstrap --path=/web/wwwСмотрим глубже на загрузку плагинов и выделяем некоторые поля:
# sudo -u nginx wp profile hook plugins_loaded --fields=callback,location,time,cache_ratio,request_time --path=/web/wwwЕсли какой-то плагин тормозит, вы увидите это в таблице. Более подробно про работу wp profile можно посмотреть в моей статье.
Другие примеры с wp-cli. Я опущу указание пользователя и директории сайта, чтобы команды были короче. Установка или удаление темы:
# wp theme install astra --activate# wp theme uninstall twentytwentyfiveУстановка, удаление плагинов:
# wp plugin install wordpress-seo --activate# wp plugin uninstall akismetБэкап базы данных:
# wp-cli wp db export --add-drop-tableИмпорт базы данных:
# wp-cli wp db import wp_base.sqlУдобно использовать wp-cli для бэкапа и загрузки дампа базы данных. Там используется обычный mysqldump, но тебе не нужно заботиться об учётных данных для доступа к базе. Wp-cli берёт их из настроек WP.
С помощью docker compose, wp-cli и небольших скриптов можно быстро переносить свою заготовку сайта. Вы можете описать установку нужных плагинов и тем, сохранить их настройки и в целом состояние движка в sql дампе. Потом развернуть где-то в другом месте и через команды wp-cli с импортом дампа получить нужное состояние нового сайта.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#wordpress