Что такое WP-CLI
WP-CLI — это утилита для командной строки Unix-систем: Linux (Ubuntu, Debian, CentOS, FreeBSD), OS X, — с помощью которой можно управлять сайтами на WordPress, расположенными на сервере. Она позволяет устанавливать и обновлять плагины и темы, само ядро WordPress, управлять комментариями, настраивать мультисайт WordPress MU
, и многое другое из консоли без использования браузера.
Официальный сайт: http://wp-cli.org/
Все команды отправляем через консоль SSH, и они исполняются удалённым сервером. Для работы, нам понадобится Far Manager или PuTTY.
Как установить WP-CLI
Linux (Debian, Ubuntu)
Для начала, убедитесь, что WP-CLI ещё не установлен, используя команду:
wp --version
Если увидите в ответе wp: команда не найдена
, значит пора приступать к установке.
Чтобы установить WP-CLI, нужно использовать команду:
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
либо
wget https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
Если на данном этапе выскакивает ошибка
curl: команда не найдена
, значит,curl
не установлен. Чтобы его установить, используйте следующую команду (если авторизованы не подroot
, добавляйте префиксsudo
):apt-get install curlЗатем перезагрузите Apache
service apache2 restartили перезагрузите php-fpm
service php5-fpm restart
Затем, как только wp-cli.phar
скачается, можно проверить, как он работает, командой:
php wp-cli.phar --info
Если Вы авторизованы под
root
, на данном этапе выскочит предупреждение о том, что использовать WP-CLI подroot
небезопасно:If you REALLY mean to run this as root, we won't stop you, but just bear in mind that any code on this site will then have full control of your server, making it quite DANGEROUS. If you'd like to continue as root, please run this again, adding this flag: --allow-root If you'd like to run it as the user that this site is under, you can run the following to become the respective user: sudo -u USER -i -- wp <command>Это нормальная реакция, пока не обращайте на неё внимания, просто имейте в виду, что если для сайта есть свой UNIX-пользователь, то и команды
WP-CLI
должны выполняться из-под него.
А проверку проведите командой:php wp-cli.phar --info --allow-root
В результате, Вы увидите что-то подобное:
PHP binary: /usr/bin/php5 PHP version: 5.6.30-0+deb8u1 php.ini used: /etc/php5/cli/php.ini WP-CLI root dir: phar://wp-cli.phar WP-CLI packages dir: WP-CLI global config: WP-CLI project config: WP-CLI version: 1.1.0
Теперь, чтобы иметь возможность использовать wp
как команду, сделайте следующее:
chmod +x wp-cli.phar
Эта команда прописывает chmod для того, чтобы иметь возможность исполнять wp-cli.phar
mv wp-cli.phar /usr/local/bin/wp
Команда перемещает wp-cli.phar
в /usr/local/bin/
и переименовывает wp-cli.phar
в wp
.
Снова проверяем, теперь уже команду wp
:
wp --info --allow-root
В результате должны увидеть подобное:
PHP binary: /usr/bin/php5 PHP version: 5.6.30-0+deb8u1 php.ini used: /etc/php5/cli/php.ini WP-CLI root dir: phar://wp-cli.phar WP-CLI packages dir: WP-CLI global config: WP-CLI project config: WP-CLI version: 1.1.0
Установка WP-CLI завершена.
Windows
- Убедиться, что в Windows установлен PHP, и он доступен глобально, то есть срабатывает по команде
php
в командную строку; - Скачать wp-cli.phar и положить в каталог
C:\wp-cli
; - Создать файл
wp.bat
в том же каталогеC:\wp-cli
. Внутри файла должен быть код:@ECHO OFF php "c:/wp-cli/wp-cli.phar" %*
- Добавить путь в переменную PATH с помощью командной строки:
setx path "%path%;C:\wp-cli"
Установка завершена. Проверить можно командой:
wp --info
Как пользоваться WP-CLI
Для начала, желательно авторизоваться по SSH под нужным пользователем.
Затем, достаточно перейти в любую директорию (папку) сайта и запустить команду в консоли ssh:
wp --info
Эта команда выведет информацию об установленной версии PHP и другую служебную информацию, как в примере выше.
Либо, как было сказано в подсказке, Вы можете из-под root
выполнить:
sudo -u USER -i -- wp --info
где USER
— логин пользователя, под которым установлен WordPress, результат будет тот же.
Есть вариант работать и под
root
. Для этого, нужно использовать ключ--allow-root
. Однако, помните: все файлы, которые будут скачаны, например, при установке системы или плагинов, будут иметь владельцаroot
, что может вызвать конфликты. Вы можете воспользоваться chown, чтобы в конце всех работ установить нужного пользователя в роли владельца файлов WordPress.
Примеры команд WP-CLI
Самое полезное, что может пригодиться, это установка WordPress
wp core download --locale=ru_RU
wp config create
wp core install
Обновление ядра WordPress
wp core update
Установка плагина WP Super Cache
wp plugin install wp-super-cache
Обновление всех плагинов
wp plugin update --all
Создать бекап базы данных WordPress, добавив опцию Drop Table
на таблицы (то есть, даже если таблицы на момент импорта из дампа будут существовать в базе данных, они будут сброшены и принудительно перезаписаны)
wp db export --add-drop-table
Импортировать базу из файла wordpress_database.sql
wp db import wordpress_database.sql
Удалить все таблицы из базы данных (будьте осторожны, сделайте предварительно бекап базы данных)
wp db reset --yes
Удалить базу данных (будьте осторожны, сделайте предварительно бекап базы данных)
wp db drop
Создать базу данных (например, после удаления). Создаст базу данных с привилегиями, указанными в wp-config.php
wp db create
При переезде на новый домен (например, сайт с локального сервера переезжает на рабочий хостинг или просто меняет имя домена) пригодится:
wp search-replace 'http://old.domain' 'http://new.domain'
Также, пример при установке сертификата SSL и переезда с HTTP на HTTPS:
wp search-replace 'http://example.com' 'https://example.com'
Очистить транзитный кеш полностью
wp transient delete --all
Обновление самого WP CLI:
wp cli update --allow-root
WP CLI для WordPress Multisite
Допустим, у нас есть мультисайтовая сборка WordPress MU на базе домена example.com
. И нам нужно сбросить транзитный кеш для 1 сайта сети доменом sub.example.com
. Это можно сделать следующей командой:
wp transient delete --all --url=sub.example.com --allow-root
Чтобы запустить команду для всех сайтов мультисайтовой сборки WordPress MU, можно воспользоваться следующим синтаксисом:
wp site list --field=url --allow-root | xargs -n1 -I % wp transient delete --all --url=% --allow-root
Свежие комментарии