Что такое 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 ещё не установлен, используя команду:
1 | wp --version |
Если увидите в ответе wp: команда не найдена
, значит пора приступать к установке.
Чтобы установить WP-CLI, нужно использовать команду:
1 | curl -O https: //raw .githubusercontent.com /wp-cli/builds/gh-pages/phar/wp-cli .phar |
либо
1 | wget https: //raw .githubusercontent.com /wp-cli/builds/gh-pages/phar/wp-cli .phar |
Если на данном этапе выскакивает ошибка
curl: команда не найдена
, значит,curl
не установлен. Чтобы его установить, используйте следующую команду (если авторизованы не подroot
, добавляйте префиксsudo
):
1apt-get
install
curl
Затем перезагрузите Apache
1service apache2 restart
или перезагрузите php-fpm
1service php5-fpm restart
Затем, как только wp-cli.phar
скачается, можно проверить, как он работает, командой:
1 | php wp-cli.phar --info |
Если Вы авторизованы под
root
, на данном этапе выскочит предупреждение о том, что использовать WP-CLI подroot
небезопасно:
1234567If 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
должны выполняться из-под него.
А проверку проведите командой:
1php wp-cli.phar --info --allow-root
В результате, Вы увидите что-то подобное:
1 2 3 4 5 6 7 8 | 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
как команду, сделайте следующее:
1 | chmod +x wp-cli.phar |
Эта команда прописывает chmod для того, чтобы иметь возможность исполнять wp-cli.phar
1 | mv wp-cli.phar /usr/local/bin/wp |
Команда перемещает wp-cli.phar
в /usr/local/bin/
и переименовывает wp-cli.phar
в wp
.
Снова проверяем, теперь уже команду wp
:
1 | wp --info --allow-root |
В результате должны увидеть подобное:
1 2 3 4 5 6 7 8 | 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
. Внутри файла должен быть код:12@ECHO
OFF
php
"c:/wp-cli/wp-cli.phar"
%*
- Добавить путь в переменную PATH с помощью командной строки:
1
setx path
"%path%;C:\wp-cli"
Установка завершена. Проверить можно командой:
1 | wp --info |
Как пользоваться WP-CLI
Для начала, желательно авторизоваться по SSH под нужным пользователем.
Затем, достаточно перейти в любую директорию (папку) сайта и запустить команду в консоли ssh:
1 | wp --info |
Эта команда выведет информацию об установленной версии PHP и другую служебную информацию, как в примере выше.
Либо, как было сказано в подсказке, Вы можете из-под root
выполнить:
1 | sudo -u USER -i -- wp --info |
где USER
— логин пользователя, под которым установлен WordPress, результат будет тот же.
Есть вариант работать и под
root
. Для этого, нужно использовать ключ--allow-root
. Однако, помните: все файлы, которые будут скачаны, например, при установке системы или плагинов, будут иметь владельцаroot
, что может вызвать конфликты. Вы можете воспользоваться chown, чтобы в конце всех работ установить нужного пользователя в роли владельца файлов WordPress.
Примеры команд WP-CLI
Самое полезное, что может пригодиться, это установка WordPress
1 | wp core download --locale=ru_RU |
1 | wp config create |
1 | wp core install |
Обновление ядра WordPress
1 | wp core update |
Установка плагина WP Super Cache
1 | wp plugin install wp-super-cache |
Обновление всех плагинов
1 | wp plugin update --all |
Создать бекап базы данных WordPress, добавив опцию Drop Table
на таблицы (то есть, даже если таблицы на момент импорта из дампа будут существовать в базе данных, они будут сброшены и принудительно перезаписаны)
1 | wp db export --add-drop-table |
Импортировать базу из файла wordpress_database.sql
1 | wp db import wordpress_database.sql |
Удалить все таблицы из базы данных (будьте осторожны, сделайте предварительно бекап базы данных)
1 | wp db reset -- yes |
Удалить базу данных (будьте осторожны, сделайте предварительно бекап базы данных)
1 | wp db drop |
Создать базу данных (например, после удаления). Создаст базу данных с привилегиями, указанными в wp-config.php
1 | wp db create |
При переезде на новый домен (например, сайт с локального сервера переезжает на рабочий хостинг или просто меняет имя домена) пригодится:
1 | wp search-replace 'http://old.domain' 'http://new.domain' |
Также, пример при установке сертификата SSL и переезда с HTTP на HTTPS:
1 | wp search-replace 'http://example.com' 'https://example.com' |
Очистить транзитный кеш полностью
1 | wp transient delete --all |
Обновление самого WP CLI:
1 | wp cli update --allow-root |
WP CLI для WordPress Multisite
Допустим, у нас есть мультисайтовая сборка WordPress MU на базе домена example.com
. И нам нужно сбросить транзитный кеш для 1 сайта сети доменом sub.example.com
. Это можно сделать следующей командой:
1 | wp transient delete --all --url=sub.example.com --allow-root |
Чтобы запустить команду для всех сайтов мультисайтовой сборки WordPress MU, можно воспользоваться следующим синтаксисом:
1 | wp site list --field=url --allow-root | xargs -n1 -I % wp transient delete --all --url=% --allow-root |
Сервисы, которые я рекомендую:
Свежие комментарии