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 hostcanonicaly, opcionalmente, listar sus correspondientes hosts de redireccionamientoredirects. 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 SSLmultisite- opciones Multisite. Ver docs sobre Multisitecache- opciones de cache Nginx FastCGI. Ver docs sobre Cacheh5bp- Archivos de configuración de configuración de server h5bp a incluircache_file_descriptors- Ver configuración de server h5bp (predeterminado:not_dev)extra_security- Ver configuración de server h5bp (predeterminado:true)no_transform- Ver configuración de server h5bp (predeterminado:false)x_ua_compatible- Ver configuración de server h5bp (predeterminado:true)cache_busting- Ver configuración de server h5bp (predeterminado:false)cross_domain_fonts- Ver configuración de server h5bp (predeterminado:true)expires- Ver configuración de server h5bp (predeterminado:false)protect_system_files- Ver configuración de server h5bp (predeterminado:true)
env- variables de entornodisable_wp_cron- Desactivar WP cron y utilizar el cron del sistema (predeterminado:true)wp_home- constanteWP_HOME(predeterminado:<protocol>://${HTTP_HOST})wp_siteurl- constanteWP_SITEURL(predeterminado:${WP_HOME}/wp)wp_env- entorno (predeterminado:envvia 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, invault.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 invault.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 entornoauth_key- Generarlas (requerido envault.yml)secure_auth_key- Generarlas (requerido envault.yml)logged_in_key- Generarlas (requerido envault.yml)nonce_key- Generarlas (requerido envault.yml)auth_salt- Generarlas (requerido envault.yml)secure_auth_salt- Generarlas (requerido envault.yml)logged_in_salt- Generarlas (requerido envault.yml)nonce_salt- Generarlas (requerido envault.yml)