Применяйте WP-CLI для администрирования вашего WordPress сайта через командную строку

WP-CLI — это инструмент командной строки для работы с WordPress. В этом руководстве мы изучим, как применять WP-CLI для выполнения ключевых задач по администрированию сайта на WordPress.

Чем может быть полезен WP-CLI

  • Управляйте задачами WordPress через командную строку с максимальной эффективностью.
  • Сократите количество кликов, загрузок страниц и сэкономьте время.
  • Совершайте операции, недоступные в графическом интерфейсе WordPress.
  • Используйте Cron для автоматизации задач.

wp cli

Как выполнить установку WP-CLI на Linux-сервер

Подключитесь к вашему Linux-серверу через SSH и загрузите архив wp-cli. phar с использованием команды wget.

wget https://raw. githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli. phar

После этого проверьте его работоспособность, выполнив следующую команду:

php wp-cli. phar --info

Если все функционирует корректно, вы увидите нечто похожее на следующее:

OS: Linux 5.15.0-37-generic #39-Ubuntu SMP Wed Jun 1 19:16:45 UTC 2022 x86_64 Shell: /bin/bash PHP binary: /usr/bin/php8.0 PHP version: 8.0.20 php. ini used: /etc/php/8.0/cli/php. ini MySQL binary: /usr/bin/mysql MySQL version: mysql Ver 15.1 Distrib 10.6.7-MariaDB, for debian-linux-gnu (x86_64) using EditLine wrapper SQL modes: WP-CLI root dir: phar://wp-cli. phar/vendor/wp-cli/wp-cli WP-CLI vendor dir: phar://wp-cli. phar/vendor WP_CLI phar path: /home/linuxbabe WP-CLI packages dir: WP-CLI global config: WP-CLI project config: WP-CLI version: 2.6.0

Затем мы установим разрешение на выполнение для архивного файла, переместим его в директорию /usr/local/bin/ и изменим его имя на wp.

chmod +x wp-cli. phar sudo mv wp-cli. phar /usr/local/bin/wp

Теперь мы можем просто вводить wp вместо php wp-cli. phar.

wp --info

Когда будет выпущена новая версия WP CLI, вы можете выполнить следующую команду для обновления.

Читайте также:  Как правильно открыть порт в Ubuntu для настройки сети и безопасности

sudo wp cli update

Как применять WP-CLI

При использовании команд wp-cli, предназначенных для изменения файлов и папок на сайте WordPress, следует выполнять их от имени пользователя веб-сервера, который обычно именуется www-data, apache или nginx, как указано ниже:

sudo - u www-data wp plugin update --all

Команда, приведенная выше, выполнит обновление всех плагинов WordPress от имени пользователя www-data. Команды wp-cli, которые не вносят изменения в файлы или каталоги, можно запускать от имени обычного пользователя.

Важно упомянуть, что перед тем как выполнять какие-либо команды wp-cli, необходимо перейти в папку, где установлен WordPress.

cd /var/www/wp-site/

Теперь, когда это завершено, давайте рассмотрим, как можно управлять ядром WordPress, а также темами и плагинами с помощью WP-CLI.

Обратите внимание: если вы столкнетесь с данной ошибкой

PHP Fatal error: Uncaught Error: Call to undefined function add_filter()

Возможно, вам понадобится закомментировать функцию add_filter в файле wp-config.php для корректной работы WP-CLI.

Управление основами WordPress

Убедитесь, что версия ядра WordPress актуальна.

wp core version --extra

Обновите ядро вашей установки WordPress до самой последней версии.

wp core update

Обновите ядро WordPress до самой свежей минорной версии, а не до основной.

wp core update --minor

wp core verify-checksums

Управление базой данных в системе WordPress

Обновите вашу базу данных WordPress.

wp co

Скачайте плагин по указанной ссылке.

wp plugin install http://www. example.com/plugin_name. zip

Включите плагин.

активировать плагин wp

Отключите плагин.

Отключить плагин WordPress.

Удалите расширение.

Удаление плагина WordPress

Обновите модуль.

обновление плагина для WordPress

Обновите все модули.

wp plugin update --all

Если на вашем сервере несколько версий WordPress, выполните следующую команду для предоставления пользователю www-data прав на запись в папку /var/www/. Это необходимо, поскольку WP-CLI будет кэшировать загруженные файлы в этой директории, что позволит избежать повторной загрузки одних и тех же файлов при обновлении следующей версии WordPress.

sudo setfacl - R - m "u:www-data:rwx" /var/www/

Если WP-CLI не удается удалить плагин, вы можете просто перейти в папку wp-content/plugins/ и вручную удалить директорию с нужным плагином.

Создание резервной копии базы данных и файлов WordPress.

Используйте следующую команду для создания резервной копии базы данных. Имейте в виду, что хранение SQL-файла в корневой директории вашего сайта является небезопасным. Лучше переместить его в другое место, например, в вашу домашнюю папку.

wp db export ~/backup_db. sql

Для создания резервных копий файлов можно воспользоваться классической утилитой архивирования tar, как демонстрируется ниже.

sudo tar - cpzvf ~/var/www/wp-file-backup. tar.gzwp-site/

Универсальный скрипт для автоматического обновления WordPress, тем и плагинов.

Можно разработать сценарий оболочки, который будет применять WP-CLI для автоматического обновления ядра WordPress и плагинов. Я заметил, что этот метод демонстрирует большую стабильность по сравнению с использованием функций add_filter для автоматического обновления WordPress. Создайте файл. sh в домашней папке пользователя root.

sudo nano /root/auto-update-wp. sh

Сохраните указанные строки в файле. Кроме того, вы можете настроить автоматическое обновление WP-CLI, добавив команду wp cli update в этот файл.

#! /bin/bash cd /var/www/wp-site/ sudo - u www-data wp core update --quiet sudo - u www-data wp core update-db --quiet sudo - u www-data wp theme update --all --quiet sudo - u www-data wp plugin update --all --quiet wp cli update --quiet --yes exit

Имейте в виду, что я применяю sudo - u для перехода к другому пользователю. Многие ошибочно полагают, что su в sudo расшифровывается как суперпользователь. На самом деле, это означает "сменить пользователя и выполнить команду". По умолчанию переключение происходит на root. Ключ --quiet отключит вывод информационных сообщений, а ключ --yes автоматически подтвердит установку, если имеется новая стабильная версия WP CLI.

Вам может прийти в голову необходимость внести изменения.

sudo - u www-data wp core update --quiet

sudo - u www-data wp core update --minor --quiet

Чтобы WordPress автоматически обновлялся до самой последней минорной версии, а не до новой основной, которая может вызвать сбои, я предпочитаю настраивать свою систему так, чтобы она оставалась на одну версию позади. К примеру, если актуальная основная версия — 6.0, я устанавливаю свою версию на 5.9. Когда появится WordPress 6.1, я смогу обновить свою версию до 6.0 с помощью:

sudo - u www-data wp core update --version=6.0

После этого выполните обновление до самой последней минорной версии.

sudo - u www-data wp core update --minor

Вы можете посетить страницу с версиями WordPress, чтобы узнать, какие версии являются актуальными.

Сохраните файл сценария и предоставьте ему права на выполнение.

sudo chmod +x /root/auto-update-wp. sh

После этого внесите новую запись в crontab для пользователя root.

sudo crontab - e

Следующая запись будет ежедневно в 4 часа утра проверять и осуществлять автоматическое обновление.

0 4 * * * bash /root/auto-update-wp. sh

Отличная мысль — задать переменную PATH, чтобы cron мог обнаруживать команды, которые вы планируете запускать. Вставьте следующую строку в начало файла crontab.

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

Как выключить уведомления о обновлениях WordPress в админ-панели.

Если вы включили автоматическое обновление через Cron, возможно, вам понадобится отключить уведомления об обновлениях в админ-панели WordPress. Для этого достаточно вставить следующий код в файл functions.php вашей темы, и на этом всё.

//отключить уведомление об обновлении ядра WordPress add_action('after_setup_theme','remove_core_updates'); function remove_core_updates() < if(! current_user_can('update_core'))add_action('init', create_function('$a',"remove_action( 'init', 'wp_version_check' );"),2); add_filter('pre_option_update_core','__return_null'); add_filter('pre_site_transient_update_core','__return_null'); >

Поиск и замена через WP CLI

С помощью WP CLI вы можете массово заменить текстовый шаблон в базе данных WordPress. Например, если вы перешли с HTTP на HTTPS, возможно, вам нужно будет обновить все ссылки с HTTP на HTTPS, используя следующую команду.

wp search-replace 'http://yourdomain.com' 'https://yourdomain.com' --precise --recurse-objects --all-tables

Обновление

С версии 5.5 в WordPress появилась возможность настраивать автоматическое обновление плагинов и тем непосредственно в административном интерфейсе.

Заключение

Это только начало. WP-CLI обладает высокой степенью расширяемости и может выполнять множество дополнительных задач. Также вам может понадобиться настроить веб-приложенческий брандмауэр ModSecurity для обеспечения безопасности вашего сайта на WordPress. Если ваш веб-сервер — Apache на Debian/Ubuntu, ознакомьтесь с последующим руководством.

  • Настройка ModSecurity для Apache на системах Debian и Ubuntu.

Если на вашем сервере установлена Nginx под управлением Debian или Ubuntu, ознакомьтесь с данным руководством:

  • Настройка ModSecurity для Nginx на системах Debian и Ubuntu.

Если этот пост оказался для вас полезным, не забудьте подписаться на нашу бесплатную рассылку, чтобы получать больше учебных материалов.