ItinerisLtd.trellis_install_wp_cli_via_composer
trellis_instalar_wp_cli_via_composer
Instalar WP-CLI a través de composer en servidores Trellis.
Objetivo
El Problema
Desde WP-CLI v2.0.0, el conjunto más problemático de dependencias, el requisito a una versión antigua de Symfony, ha desaparecido. El único componente de Symfony que todavía tenemos es symfony/finder
, ya que no hay un límite superior de versión para este.
Sin embargo, los paquetes phar con dependencias de WP-CLI están siempre cargados desde el phar, lo que significa que sus versiones están bloqueadas. Esto puede causar problemas al intentar usar versiones más nuevas de dependencias requeridas por comandos específicos.
La Solución
Instalar WP-CLI a través de composer resuelve este problema, permitiendo que las versiones de las dependencias sean más flexibles.
Variables del Rol
# Paquetes de Composer que se deben eliminar antes de instalar WP-CLI
# Predeterminado: []
wp_cli_composer_global_remove_packages:
- wp-cli/wp-cli-bundle
- psy/psysh
# Paquetes de Composer que se deben instalar
# Predeterminado: "wp-cli/wp-cli-bundle:{{ wp_cli_version }}"
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'"
# Paquete WP-CLI a instalar
# Predeterminado: []
wp_cli_packages:
- "typisttech/image-optimize-command:@stable"
- "[email protected]:Yoast/wp-cli-faker.git"
# Ruta de WP-CLI
# Predeterminado: /usr/bin/wp
wp_cli_bin_path: /usr/bin/wp
# Ruta de finalización de Bash para WP-CLI
# Predeterminado: /etc/bash_completion.d/wp-completion.bash
wp_cli_completion_path: /etc/bash_completion.d/wp-completion.bash
Requisitos
- Trellis v1.3.0 o superior
- Ansible v2.7.0 o superior
- Python v3.7.6 o superior
Instalación
Agrega
itinerisltd.trellis_install_wp_cli_via_composer
agalaxy.yml
# galaxy.yml + - src: itinerisltd.trellis_install_wp_cli_via_composer + version: XXX.YYY.ZZZ # ¡Verifica la última versión!
Reemplaza el rol
wp-cli
conitinerisltd.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] }
Instala roles de galaxy
trellis galaxy install # Alternativamente ansible-galaxy install -r galaxy.yml --force
Reprovisiona
trellis provision production # Alternativamente ansible-playbook server.yml -e env=production
Preguntas Frecuentes
¿Cómo instalar solo ciertos comandos en lugar de todo el paquete WP-CLI?
Por defecto, se instala todo el paquete WP-CLI. Si deseas mantener tus servidores más ligeros, instala los comandos de manera selectiva.
wp_cli_composer_global_remove_packages:
- wp-cli/wp-cli-bundle
wp_cli_composer_global_require_packages:
# Requerido: marco de WP-CLI
- "wp-cli/wp-cli:^2.4"
# Solo instala los comandos que necesitas:
- "wp-cli/core-command:^2"
- "wp-cli/cron-command:^2"
- "wp-cli/db-command:^2"
- "wp-cli/package-command:^2"
¿Qué hacer si composer no puede instalar paquetes debido a restricciones de versiones en conflicto?
Revisa los paquetes existentes de composer y cambia las restricciones de versión a través de las variables del rol. Puede que necesites desinstalar algunos paquetes.
¿Cómo verificar si WP-CLI está instalado a través de composer?
# Mal: instalado a través de Trellis, es decir, el phar
$ wp cli info
WP-CLI root dir: phar://wp-cli.phar/vendor/wp-cli/wp-cli
# Bien: instalado a través de este rol, es decir, composer
$ wp cli info
WP-CLI root dir: /home/web/.composer/vendor/wp-cli/wp-cli
¿Es idempotente o determinista?
No.
Es posible que versiones específicas de paquetes ayuden, pero deberás gestionarlas manualmente.
¿Dónde puedo encontrar más cosas interesantes como esta?
- Artículos en el blog de Itineris
- Más proyectos en el perfil de GitHub de Itineris
- Más complementos en los perfiles de wp.org de Itineris y TangRufus
- Sigue a @itineris_ltd y @TangRufus en Twitter
- Contrata a Itineris para construir tu próximo sitio impresionante
¿Dónde puedo dejar reseñas de :star::star::star::star::star:?
¡Gracias! Nos alegra que te guste. Es importante para nosotros que mi jefe sepa que alguien está utilizando este proyecto. Si no está alojado en wordpress.org, considera:
- Tuitear algo bueno mencionando a @itineris_ltd y @TangRufus
- :star: dar estrellas a este repositorio de Github
- :eyes: seguir este repositorio de Github
- Escribir publicaciones en blogs
- Enviar pull requests
- Contratar a Itineris
Pruebas
ansible-playbook -i 'localhost,' --syntax-check tests/test.yml
Comentarios
¡Por favor, proporciona comentarios! Queremos hacer que esta biblioteca sea útil en tantos proyectos como sea posible. Por favor, envía un issue y señala qué te gusta y qué no, o bifurca el proyecto y haz sugerencias. Ningún comentario es demasiado pequeño.
Seguridad
Si descubres problemas de seguridad, envía un correo electrónico a [email protected] en lugar de usar el rastreador de problemas.
Créditos
trellis_install_wp_cli_via_composer es un proyecto de Itineris Limited creado por Tang Rufus.
La lista completa de colaboradores se puede encontrar aquí.
Licencia
trellis_install_wp_cli_via_composer se publica bajo la Licencia MIT.
ansible-galaxy install ItinerisLtd.trellis_install_wp_cli_via_composer