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

  1. Dodaj itinerisltd.trellis_install_wp_cli_via_composer do galaxy.yml

      # galaxy.yml
    
    + - src: itinerisltd.trellis_install_wp_cli_via_composer
    + version: XXX.YYY.ZZZ # Sprawdź najnowszą wersję!
    
  2. 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] }
    
  3. Zainstaluj role galaxy

    trellis galaxy install
    # Alternatywnie
    ansible-galaxy install -r galaxy.yml --force
    
  4. 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?

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:

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.

O projekcie

Install WP-CLI via composer on Trellis servers

Zainstaluj
ansible-galaxy install ItinerisLtd.trellis_install_wp_cli_via_composer
Licencja
mit
Pobrania
237
Właściciel
We’re a full-service digital marketing agency that partners with ambitious clients to help them grow