ItinerisLtd.trellis_install_wp_cli_via_composer
instalacja_wp_cli_przez_composer
Zainstaluj WP-CLI przez composer na serwerach Trellis.
Cel
Problem
Od wersji WP-CLI v2.0.0, główny problem z zależnościami, wymagającymi starej wersji Symfony, został rozwiązany. Jedyne komponenty Symfony, które nadal pozostają, to symfony/finder
, ponieważ nie ma górnego limitu wersji dla tego komponentu.
Jednak paczki phar z zależnościami WP-CLI zawsze są ładowane z phar. W efekcie, ich wersje są "zablokowane".
Na przykład: WP-CLI v2.4.0 używa symfony/process
v2.8.5 jako zależności symfony/finder
. Jeśli mamy my-awesome-command
, który wymaga symfony/process:5.0.0
, polecenie $ wp package install my-awesome-command
zainstaluje symfony/process
v5.0.0, ale wciąż używana będzie wersja v2.8.5 z phar, a nowsza wersja zostanie zignorowana.
Rozwiązanie
Zainstalowanie WP-CLI przez composer rozwiązuje ten problem.
Zmienne roli
# Pakiety composer, które mają być usunięte przed instalacją WP-CLI
wp_cli_composer_global_remove_packages:
- wp-cli/wp-cli-bundle
- psy/psysh
# Pakiety composer, które mają być zainstalowane
wp_cli_composer_global_require_packages:
- "wp-cli/wp-cli:2.4.0"
- "wp-cli/package-command:^2"
- "psy/psysh:^0.9.12"
- "xxx/yyy:'^1.2.3 || ^2.2.3'"
# Pakiet WP-CLI, który ma być zainstalowany
wp_cli_packages:
- "typisttech/image-optimize-command:@stable"
- "[email protected]:Yoast/wp-cli-faker.git"
# Ścieżka WP-CLI
wp_cli_bin_path: /usr/bin/wp
# Ścieżka do autouzupełniania Bash dla WP-CLI
wp_cli_completion_path: /etc/bash_completion.d/wp-completion.bash
Wymagania
- Trellis v1.3.0 lub późniejsze
- Ansible v2.7.0 lub późniejsze
- Python v3.7.6 lub późniejsze
Instalacja
Dodaj
itinerisltd.trellis_install_wp_cli_via_composer
dogalaxy.yml
# galaxy.yml + - src: itinerisltd.trellis_install_wp_cli_via_composer + version: XXX.YYY.ZZZ # Sprawdź najnowszą wersję!
Zastąp rolę
wp-cli
roląitinerisltd.trellis_install_wp_cli_via_composer
# server.yml - - { role: wp-cli, tags: [wp-cli] } + - { role: itinerisltd.trellis_install_wp_cli_via_composer, tags: [wp-cli] }
Zainstaluj role galaxy
trellis galaxy install # Alternatywnie ansible-galaxy install -r galaxy.yml --force
Przeprowadź ponowną konfigurację
trellis provision production # Alternatywnie ansible-playbook server.yml -e env=production
FAQ
Jak zainstalować tylko niektóre polecenia zamiast całego pakietu WP-CLI?
Domyślnie instalowany jest cały pakiet WP-CLI. Jeśli chcesz, aby Twój serwer był bardziej "lekki", zainstaluj pakiety poleceń selektywnie:
wp_cli_composer_global_remove_packages:
- wp-cli/wp-cli-bundle
wp_cli_composer_global_require_packages:
- "wp-cli/wp-cli:^2.4"
- "wp-cli/core-command:^2"
- "wp-cli/cron-command:^2"
- "wp-cli/db-command:^2"
- "wp-cli/package-command:^2"
Co zrobić, gdy composer nie może zainstalować pakietów z powodu konfliktów wersji?
Sprawdź istniejące pakiety composer. Następnie zmień ograniczenia wersji w zmiennych roli. Możesz potrzebować odinstalować niektóre pakiety.
Jak sprawdzić, czy WP-CLI jest zainstalowany przez composer?
# Złe: Zainstalowane przez Trellis
$ wp cli info
WP-CLI root dir: phar://wp-cli.phar/vendor/wp-cli/wp-cli
# Dobre: Zainstalowane przez tę rolę, czyli przez composer
$ wp cli info
WP-CLI root dir: /home/web/.composer/vendor/wp-cli/wp-cli
Czy to jest idempotentne lub deterministyczne?
Nie.
Konkretną wersję pakietu można zainstalować, ale należy je zarządzać ręcznie.
Gdzie mogę znaleźć więcej takich rzeczy?
- Artykuły na blogu Itineris
- Więcej projektów na profilu Itineris na GitHubie
- Więcej wtyczek na profilach wp.org Itineris i TangRufus
- Obserwuj @itineris_ltd i @TangRufus na Twitterze
- Zatrudnij Itineris, aby zbudować swoją świetną stronę
Gdzie mogę napisać recenzje?
Dziękujemy! Cieszymy się, że to się podoba. Ważne jest, aby poinformować mojego szefa, że ktoś korzysta z tego projektu:
- tweetuj coś dobrego, wspominając @itineris_ltd i @TangRufus
- :star: ocen ten repozytorium na GitHubie
- :eyes: obserwuj to repozytorium na GitHubie
- pisz posty na blogu
- składaj pull requesty
- zatrudnij Itineris
Testowanie
ansible-playbook -i 'localhost,' --syntax-check tests/test.yml
Opinie
Proszę podziel się swoją opinią! Chcemy, aby ta biblioteka była użyteczna w jak największej liczbie projektów. Proszę zgłosić problem i wskaż, co Ci się podoba, a co nie, lub sforkuj projekt i zaproponuj sugestie.
Bezpieczeństwo
Jeśli odkryjesz jakiekolwiek problemy związane z bezpieczeństwem, proszę pisz na adres [email protected] zamiast korzystać z trackerów.
Kredyty
instalacja_wp_cli_przez_composer to projekt Itineris Limited stworzony przez Tang Rufus.
Pełna lista współautorów znajduje się tutaj.
Licencja
instalacja_wp_cli_przez_composer jest wydawana na licencji MIT.
ansible-galaxy install ItinerisLtd.trellis_install_wp_cli_via_composer