WordPress: Wiersz poleceń wp-cli

Spis treści

Narzędzie wp-cli to wiersz poleceń upchnięty w pliku .phar (PHP Archive), przy pomocy którego możemy zarządzać instalacją WordPress'a bez potrzeby zaprzęgania do tego przeglądarki. Przy pomocy tego skryptu będziemy w stanie instalować i aktualizować rdzenne pliki WordPress'a, jego wtyczki i motywy, a także dokonywać szeregu operacji na bazie danych. Projekt jest na licencji MIT, zaś jego źródła są dostępne na githubie.

Instalacja wp-cli

Prawdopodobnie wszystkie pakiety, potrzebne do prawidłowego działania tej aplikacji będą już zainstalowane na serwerze gdzie będziemy trzymać WordPress'a. Niemniej jednak, warto wiedzieć, że skoro to jest paczka .phar, to wymaga do działania PHP (min. php5-cli ). Dodatkowo, jako że będziemy się łączyć z bazą danych, potrzebujemy modułu do PHP, który (przynajmniej na debianie) jest dostępny w pakiecie php5-mysql .

By skorzystać z wp-cli, będzie nam także potrzebny dostęp do shella na serwerze. Gdy już takowy mamy zapewniony, możemy przejść do instalacji tego narzędzia. W tym celu przy pomocy curl lub wget pobieramy paczkę .phar :

$ curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar

Sprawdzamy czy aby na pewno wszystko jest w należytym porządku i skrypt jest w stanie zwrócić nam informację o wersji PHP obecnej na serwerze:

$ php wp-cli.phar --info
PHP binary:     /usr/bin/php5
PHP version:    5.6.9-1
php.ini used:   /etc/php5/cli/php.ini
WP-CLI root dir:        phar://wp-cli.phar
WP-CLI global config:
WP-CLI project config:
WP-CLI version: 0.19.1

Jeśli nie zostaną nam zwrócone żadne komunikaty błędów, oznacza to, że jest dobrze.

Wpisywanie za każdym razem php wp-cli.phar nie jest zbyt wygodne. Możemy z tego typu wywołania zrezygnować na rzecz bardziej przyjaznego użytkownikowi, z tym, że będziemy musieli wrzucić plik .phar do jednego z katalogów w zmiennej $PATH . Jeśli mamy prawa zapisu do jednego z tych folderów, to by ułatwić sobie pracę z wp-cli, przeprowadzamy poniższe kroki:

$ echo $PATH
/usr/local/bin:/usr/bin:/bin

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

Od tego momentu wywołanie skryptu będzie sprowadzać się do wpisania w terminalu jedynie samego wp .

Pamiętajmy o tym, że każda aplikacja wymaga aktualizacji, nawet wp-cli . Dlatego też co jakiś czas sprawdzajmy czy nie została wypuszczona nowa wersja skryptu, która zwykle będzie dostosowana do najnowszej wersji samego WordPress'a.

By jeszcze bardziej ułatwić sobie życie, możemy zaprzęgnąć do pracy auto uzupełnianie poleceń (wymagany pakiet bash-completion) przez naciśnięcie klawisza Tab . W tym celu musimy pozyskać ten plik i wrzucić go do, np. katalogu domowego, pod nazwą wp-completion.bash , po czym dopisujemy poniższą linijkę do ~/.profile

[ -r ~/wp-completion.bash ] && . ~/wp-completion.bash

Operowanie na wp-cli

By korzystać z wp-cli, musimy cały czas przechodzić do katalogu z instalacją WordPress'a oraz definiować określone parametry, co nie jest zbyt wygodne. Możemy jednak utworzyć plik konfiguracyjny dla wp-cli i tam wpisać wszystkie te wprowadzane przez nas parametry, które będą brane pod uwagę ilekroć będziemy chcieli pracować z WordPress'em. Możemy także przestawić domyślą ścieżkę do plików WordPress'a przy pomocy opcji path: , co wyeliminuje nawet przechodzenie do katalogu z instalacją.

Mamy do dyspozycji trzy pliki. Najpierw jest czytany wp-cli.local.yml , który musi znajdować się w katalogu roboczym lub wyżej. W przypadku jego braku, czytany jest wp-cli.yml , który również musi znajdować w się w katalogu roboczym lub wyże. Jeśli natomiast żaden z tych dwóch plików nie zostanie odnaleziony, wtedy pod uwagę jest brany ~/.wp-cli/config.yml . natomiast dokładną listę opcji możemy znaleźć pod tym linkiem.

Skrypt wp-cli jest wykonywany z prawami konkretnego użytkownika w systemie i wszelkie stworzone za jego pomocą pliki będą dziedziczyć te prawa, co może czasem zablokować możliwość korzystania z niektórych funkcji WordPress'a.

Mikhail Morfikov avatar
Mikhail Morfikov
Po ponad 10 latach spędzonych z różnej maści linux'ami (Debian/Ubuntu, OpenWRT, Android) mogę śmiało powiedzieć, że nie ma rzeczy niemożliwych i problemów, których nie da się rozwiązać. Jedną umiejętność, którą ludzki umysł musi posiąść, by wybrnąć nawet z tej najbardziej nieprzyjemniej sytuacji, to zdolność logicznego rozumowania.