Sitios WordPress

Ahora que tienes los requerimientos de Trellis instalados y un proyecto local configurado, el siguiente paso es configurar un sitio WordPress.

En Trellis todo está armado sobre alrededor del concepto de "sites". Cada servidor manejado por Trellis (máquina virtual local o servidor remoto) puede manejar uno o más sitios WordPress. Trellis configurará automáticamente todo lo necesario para alojar un sitio WordPress, desde bases de datos, vhosts Nginx, directories, etc.

Estos sitios se configuran en archivos YAML para cada entorno. Por ej, group_vars/development/wordpress_sites.yml.

Hay dos lugares para configurar sitios:

  • Settings comunes en group_vars/development/wordpress_sites.yml
  • Passwords/secretos en group_vars/development/vault.yml

Settings comunes

wordpress_sites es un parámetro de nivel superior utilizado para definir todos los sitios que uno desea. Este sería un ejemplo con las variables mínimas requeridas para desarrollo local:

# group_vars/development/wordpress_sites.yml
wordpress_sites:
  example.com:
    site_hosts:
      - canonical: example.test
    local_path: ../site # ruta apuntando al directorio del sitio en Bedrock (relativo a la raíz de Ansible)
    admin_email: admin@example.test
    multisite:
      enabled: false
    ssl:
      enabled: false
    cache:
      enabled: false

Cada sitio comienza con una "key" (example.com en este caso). Trellis utiliza este dato internamente como el nombre del sitio y como el valor predeterminado de muchas otras variables. Recomendamos nombrar los sitios como el dominio para ser lo más descriptivo posible.

Debajo de esta "key", anidadas, tenemos las variables relativas a ese sitio. Más abajo encontrará algunas variables que deben ser definidas únicamente si se quiere sobreescribir sus valores.

Passwords/secretos

Cuando se agrega/edita un sitio en wordpress_sites.yml también es necesario editar el archivo vault.yml. Este archivo facilita la encriptación mediante Ansible Vault para archivos específicos. Idealmente, es recomendable no incluir contraseñas de texto plano en el repositorio git por lo que, opcionalmente, ofrecemos la posibilidad de encriptar estos archivos vault.yml dejando el resto de los archivos sin encriptar. Vea Vault para mayor información al respecto.

#  group_vars/development/vault.yml
vault_wordpress_sites:
  example.com:
    admin_password: admin
    env:
      db_password: example_dbpassword

Tenga en cuenta que las "keys" del sitio wordpress_sites y vault_wordpress_sites deben coincidir. En este caso, lo llamamos example.com.

Para un ejemplo completo de un sitio en WordPress en la vida real, puede ver los archivos de configuración en roots-example-project.com.

Opciones

Comunes

  • site_hosts - Listado de hosts que Nginx escuchará. Al menos uno es necesario. Cada elemento del host deberá especificar un host canonical y, opcionalmente, listar sus correspondientes hosts de redireccionamiento redirects. Recuerda de configurar un DNS para cada host listado. No se puede utilizar únicamente una dirección IP.
# mínimo requerido
example.com:
  site_hosts:
    - canonical: example.com

# es posible contar con multiple hosts y redireccionamientos
example.com:
  site_hosts:
    - canonical: example.com
      redirects:
        - www.example.com
        - site.com
    - canonical: example.co.uk
      redirects:
        - www.example.co.uk
  • local_path - ruta apuntando al directorio del sitio en Bedrock (requerido)
  • current_path - symlink al último release (predeterminado: current)
  • db_create - permite crear automáticamente la base de datos o no (predeterminado: true)
  • packagist_token - Token utilizado par utilizar autenticación con Packagist.com para repositorios Composer privados (opcional)
  • ssl - opciones SSL. Ver docs sobre SSL
  • multisite - opciones Multisite. Ver docs sobre Multisite
  • cache - opciones de cache Nginx FastCGI. Ver docs sobre Cache
  • h5bp - Archivos de configuración de configuración de server h5bp a incluir
  • env - variables de entorno
    • disable_wp_cron - Desactivar WP cron y utilizar el cron del sistema (predeterminado: true)
    • wp_home - constante WP_HOME (predeterminado: <protocol>://${HTTP_HOST})
    • wp_siteurl - constante WP_SITEURL (predeterminado: ${WP_HOME}/wp)
    • wp_env - entorno (predeterminado: env via Ansible)
    • db_name - nombre de base de datos (predeterminado: <site name>_<env>)
    • db_user - nombre de usuario de base de datos (predeterminado: <site name>)
    • db_password - contraseña de base de datos (required, in vault.yml)
    • db_host - nombre de host de base de datos (predeterminado: localhost)
    • db_user_host - nombre de host o rango ip utilizado para restringir conexiones a la base de datos (predeterminado: localhost)

Desarrollo local

  • site_install - si instalamos WordPress o no (predeterminado: true)
  • site_title - Título del sitio WP (predeterminado: site name)
  • admin_user - Nombre usuario WP admin (predeterminado: admin)
  • admin_email - Dirección de correo electrónico del admin WP (required)
  • admin_password - Contraseña del WP admin (required in vault.yml)
  • initial_permalink_structure - estructura permalink aplicada al momento de instalar WP (predeterminado: /%postname%/)

Servidores Remotos

  • repo - URL del repositorio Git del proyecto Bedrock (requerido)
  • repo_subtree_path - ruta relativa al directorio Bedrock/WP en tu repositorio (arriba) si no es la raíz (ej. site/ en roots-example-project)
  • branch - nombre de la rama del repositorio, nombre de etiqueta, o el commit SHA1 sobre el que quieres hacer el deploy (default: master)
  • env - variables de entorno
    • auth_key - Generarlas (requerido en vault.yml)
    • secure_auth_key - Generarlas (requerido en vault.yml)
    • logged_in_key - Generarlas (requerido en vault.yml)
    • nonce_key - Generarlas (requerido en vault.yml)
    • auth_salt - Generarlas (requerido en vault.yml)
    • secure_auth_salt - Generarlas (requerido en vault.yml)
    • logged_in_salt - Generarlas (requerido en vault.yml)
    • nonce_salt - Generarlas (requerido en vault.yml)