Volver
Cómo desplegar tu sitio WordPress con Bedrock y Moss

Cómo desplegar tu sitio WordPress con Bedrock y Moss

- - Artículos

Los desarrolladores WordPress tienen sus propios flujos de trabajo, y éstos difieren muchas veces de los que se suelen utilizar en otros CMS o frameworks. Sin embargo, Bedrock te permite administrar WordPress y sus plugins como cualquier otra dependencia PHP vía composer. También genera una mejor estructura de proyecto que pone a WordPress dentro de su propio subdirectorio. Estas características hacen de Bedrock una buena alternativa a considerar a la hora de desarrollar sitios WordPress, puesto que puedes seguir un flujo de trabajo típico en PHP: actualiza las dependencias localmente, haz commit del fichero composer.lock, y despliega tu aplicación a tu entorno de testing o pre-producción (o a producción finalmente).

Si además te aprovechas de los despliegues sin downtime de Moss, tu flujo de desarrollo WordPress se simplifica considerablemente. En este artículo veremos cómo crear y desplegar tu sitio Bedrock con Moss. Si aún no tienes una cuenta, regístrate en nuestro Plan Gratis que incluye sitios y servidores ilimitados.

Crea tu proyecto Bedrock

Para beneficiarte de despliegues sin downtime, necesitas que el código de tu sitio WordPress esté en un repositorio git. Si ya tienes un proyecto Bedrock bajo control de versiones con git, puedes saltarte esta sección y dirigirte a la siguiente.

En este ejemplo vamos a crear un nuevo proyecto Bedrock llamado «bedrock» por medio de composer. Una vez creado, iniciamos el repo git local, hacemos commit de los cambios, y los subimos al origin correspondiente. Para este artículo he creado un repo público en GitHub llamado «bedrock», por lo que mi origin es [email protected]:fjros/bedrock.git (usa el tuyo en su lugar).

    composer create-project roots/bedrock
    cd bedrock/
    git init
    git add .
    git commit -m "Initial commit"
    git remote add origin [email protected]:fjros/bedrock.git
    git push -u origin master

Ya tenemos una aplicación Bedrock mínima bajo control de versiones. Ahora ha llegado el momento de configurar nuestro servidor web y de base de datos antes de desplegarlo. Puedes ver todo el proceso en el siguiente vídeo:

Crea el sitio en Moss

Asumo que tienes una cuenta de Moss y al menos has conectado un servidor. Si no es el caso, primero debes conectar un servidor existente o instanciar un nuevo servidor desde Moss.

Una vez lo tengas, haz click en Nuevo sitio y rellena el formulario:

  • Selecciona el servidor.
  • Elige WordPress como framework. No marques la casilla «Instalar WordPress».
  • Selecciona la versión de PHP que quieras.
  • Crea el usuario de servidor que será propietario del sitio.
  • Inidca el nombre de dominio del sitio. Si no puedes actualizar tus registros DNS en este momento, puedes usar el dominio de pruebas que Moss te ofrece.
  • Dale un nombre al sitio. Este nombre te permite identificar al sitio en este servidor, aunque más adelante cambies el nombre de dominio.
  • Dile a Moss si quieres que configure HTTPS. En ese caso, proporciona tu propio certificado o pídele a Moss que genere y renueve automáticamente un certificado gratuito de Let’s Encrypt. Si simplemente estás probando Moss, puedes saltarte este paso y configurar el certificado más adelante – especialmente si estás usando el dominio de pruebas que Moss sugiere.
  • Crea una nueva conexión de base de datos. Para ello debes proporcionar el nombre de la base de datos, el del usuario de base de datos, y la contraseña correspondiente. Moss creará la base de datos, el usuario, y configurará los permisos oportunos.
  • Marca la casilla «Instalar Postfix» si quieres que WordPress envíe emails desde tu servidor.
  • Indica que el directorio raíz es web.

Por último haz click en Crear y Moss iniciará una operación en segundo plano para instalar el software necesario y realizar las configuraciones pertinentes. Una vez finalice la operación, tu servidor web y de base de datos se habrán configurado para alojar tu sitio WordPress creado con Bedrock. Pero aún no lo has desplegado… y eso es precisamente lo que harás en los próximos pasos.

Indica tu repositorio git

Si te diriges a la pestaña Despliegues verás la opción de añadir un repositorio git al sitio. Si aún no has enlazado tu cuenta de GitLab, GitHub o Bitbucket con Moss, éste es un buen momento para hacerlo (también puedes elegir la opción Custom si usas un proveedor git distinto).

Una vez has seleccionado el proveedor, debes elegir el propietario del repo de tu sitio y seleccionar éste último de entre la lista que aparecerá. Consejo: si tienes muchos repositorios, el filtro de búsqueda te resultará útil para encontrar rápidamente el que buscas.

Finalmente, dile a Moss la rama o el tag que debe desplegar cuando lo solicites. Normalmente será master, pero puedes adoptar la convención que te parezca mejor (p.ej. deploy, trunk, etc).

Mientras que Moss termina la configuraciones requeridas, vayamos ajustando el proceso de despliegue.

Configura tus despliegues

Fichero de entorno

Tu archivo .env no pertenece al repositorio git, puesto que contiene información específica del entorno (p.ej. configuraciones de desarrollo, pre-producción, o producción) incluidas contraseñas y otros secretos. Moss llama a este tipo de ficheros (o carpetas) persistentes porque se comparten entre despliegues. Es decir, desplegar tu web no sobreescribirá el fichero .env.

Así, debes indicarle a Moss que existe un fichero persistente llamado .env y debes proporcionarlo por cualquier otro medio – puesto que clonar tu repo no traerá ese archivo. La forma más sencilla es editar el fichero en local y subirlo después a la ruta apropiada de tu servidor usando SCP o un cliente SFTP.

La mayor parte de la información que necesitas para rellenar el fichero .env se puede obtener fácilmente de Moss, tal y como muestra el vídeo de arriba. Puedes generar los secretos restantes en la web de roots.io. Aquí puedes ver un ejemplo de contenido del fichero:

    DB_NAME=bedrock
    DB_USER=bedrock
    DB_PASSWORD=mvQcodMzZ5mSlJ568a6IxoAlcGoTsEaf
    # Optionally, you can use a data source name (DSN)
    # When using a DSN, you can remove the DB_NAME, DB_USER, DB_PASSWORD, and DB_HOST variables
    # DATABASE_URL=mysql://database_user:database_password@database_host:database_port/database_name
    # Optional variables
    # DB_HOST=localhost
    # DB_PREFIX=wp_
    WP_ENV=production
    WP_HOME=https://bedrock.46.101.131.224.getmoss.site
    WP_SITEURL=${WP_HOME}/wp
    # Generate your keys here: https://roots.io/salts.html
    AUTH_KEY='{oxl(siw&wNhj$_Pj|5B[/qyEIy6NuY=CG=OR#9L9;*#z`:cYV+_mj$]LNO(TbA:'
    SECURE_AUTH_KEY='=vn`/|sSss+o;wtakM#*@R-tx[Hk}a`eN(QT0IymU2{zsdT9K+Ls@Kxn}+PJ[_WC'
    LOGGED_IN_KEY='Q$HQ(A_S_QNI0*-dX-l%%HcJ}UB@vC{!A?]o>ASWenb%zvL(JWdTud$TT8O>Qh1d'
    NONCE_KEY='):Wr*,(6dfpKP2vK@Ul=kaaLsADg}b/lh]k!RWqQ^*v1QI6G$,vTbY*wc,n}M?7q'
    AUTH_SALT='`x6?OmXm9jXZhb$:X7Iq$f=W+mppU53CA>^?,;Lc.jDa<wo5oUbVH|sltt}-[`0Z'
    SECURE_AUTH_SALT='-ywl;3&G0S=S=@qFIyTh/<HHp@H@N0VY`ATQKC?$vVKw^E$7+0n.|Fw{Y9.Ug+{?'
    LOGGED_IN_SALT='B1ZoY!_`w!$9DL$<Tw*[8@lYSc&!hsYlwn4E*O-]2uDDU$*!}:&-fzIQL&XLgPOY'
    NONCE_SALT='CvwJp&!bZ`H>zLwzAyGB_3|]vc*^W&sT@fzD_><l9/gMtjT+f%bd{|Vj_8URO?{]'

P.ej. puedes subir el fichero al servidor con SCP así:

scp .env <site-user>@<server-ip>:~/sites/<site-name>/shared/

Una vez subido, digámosle a Moss el comando que debe ejecutar para construir el sitio durante un despliegue.

Scripts de despliegue

Moss muestra el Flujo de Despliegue que sigue durante un despliegue. Puedes editar los scripts de pre-activación y de post-activación que se ejecutan. Dado que estás configurando un sitio WordPress usando Bedrock, simplemente edita el script de pre-activación para ejecutar composer:

composer install

Añade ahí cualquier otro comando que necesites para construir tu sitio, ¡y despleguémoslo al fin!

Despliega tu sitio WordPress

1-Click

Sólo tienes que hacer click en Desplegar. Cuando la operación correspondiente termine, puedes navegar por tu sitio y verás el instalador de WordPress. También puedes consultar el Log de la Operación para ver los detalles del despliegue.

Push-to-deploy

También puedes desplegar automáticamente haciendo git push de tus cambios a la rama/tag que especificaste en Moss. Para habilitar esta característica, dirígete a la pestaña Flujo de Despliegue y activa el switch de Push-to-deploy.

Ventajas adicionales de usar Moss

A partir de ahora puedes seguir desarrollando tu aplicación y desplegar siempre que lo necesites de forma automática o con un solo click. Pero usar Moss tiene multitud de ventajas añadidas:

  • Ya hemos comentado que todos los despliegues vía git en Moss son sin downtime. Esto también quiere decir que si tu nuevo despliegue falla por algún motivo, tus usuarios no se verán afectados porque se sigue sirviendo en todo momento tu versión anterior.
  • Además recibirás una notificación por correo electrónico o Slack cuando tus despliegues finalicen correctamente o tras un error.
  • Como has podido observar en el vídeo, ofrece visibilidad en tiempo real acerca de las operaciones que se ejecutan sobre tus servidores y sitios. Además puedes consultar el log de cada operación, lo que ayuda mucho a solucionar problemas cuando se presentan.
  • Puedes crear una base de datos en un servidor remoto directamente desde Moss, y éste se encarga de abrir el firewall sólo a tu(s) servidor(es) de aplicación. Nota: recuerda actualizar la variable de entorno DB_HOST en este caso.
  • Moss realiza muchas configuraciones destinadas a mejorar la seguridad de tus servidores.
  • Sólo instala el software que realmente se necesita en cada servidor.
  • Tiene soporte de equipos en todos sus planes (colaboradores ilimitados).
  • Por US$5 al mes (como máximo), puede monitorizar un servidor y los sitios que contiene. De esta forma puedes evaluar el consumo de recursos de tus servidores, comprobar que tus sitios no están caídos, o que están accesibles por HTTPS, entre otros. Y además recibirás una alerta si algo va mal.
  • Centro de Ayuda en español. Los planes superiores también incluyen soporte vía chat.
  • ¡Y más! Échale un vistazo porque ofrece más características y se añaden nuevas periódicamente.

Conclusión

En este artículo hemos visto que puedes seguir el flujo de desarrollo habitual en PHP y desplegar fácilmente y sin downtime tus sitios WordPress usando Bedrock y el Plan Gratis de Moss. Puedes usar éste último para todas tus aplicaciones y servidores, y subir a un plan de pago sólo si necesitas integraciones adicionales, desplegar con mayor frecuencia, o contactar con nuestro equipo de soporte.

Créditos: Imagen de cabecera de Kovah en Unsplash

¡No te pierdas ningún post! Subscríbete al Blog de Moss