Desplegar una web app con Symfony en Azure App Service Linux

Este viernes te conté cómo puedes desplegar tu aplicación desarrollada con el framework de Symfony en Azure App Service en su modalidad Windows. Hoy quiero mostrarte cómo puedes hacerlo sobre la versión Linux de este servicio. El ejemplo que voy a desplegar es exactamente el mismo que te expliqué en aquel post, a excepción del archivo web.config, que se utiliza sólo para la configuración de un servidor IIS.

La forma de crear el recurso App Service es exactamente la misma, solo que eligiendo la versión Linux durante la creación. Es importante además que selecciones la versión de PHP 7.2 en el combo Runtime Stack, para evitar incompatibilidades con las dependencias que se instalarán con composer.

Create App Service Linux – Symfony

En el articulo anterior, sobrescribimos la ruta para que no tuviéramos que lidiar con el path /public/ cada vez que quisiéramos hacer una llamada a alguno de los controladores o recursos que tengamos en nuestra aplicación. En el caso de Linux estamos trabajando sobre un servidor de Apache, por lo que la forma de reescribir la ruta debe ser a través del archivo de configuración .htaccess. Para este ejemplo, crea el archivo en la raíz del proyecto y añade lo siguiente:

<IfModule mod_rewrite.c>
    RewriteEngine On    
    RewriteRule !\.(js|gif|jpg|png|css|txt)$ public/index.php [L]
    RewriteCond %{REQUEST_URI} !^/public/
    RewriteRule ^(.*)$ public/$1 [L]
</IfModule>

Ya tenemos todo lo que necesitamos en el proyecto para desplegarlo sobre Linux. El último paso sería configurar la integración continua, a través de la sección Development Center, de la misma forma que hicimos en el artículo para Windows. En mi caso, he creado un nuevo proyecto dentro de Azure DevOps en lugar de utilizar el mismo que para la versión Windows, pero se podría utilizar el mismo proyecto si se quisiera (lo único que ocurriría es que tendríamos otro pipeline para Build y otro para Release dentro de las secciones correspondientes).

App Service – Development Center – Configure – Symfony on Linux

Una vez haya finalizado la configuración y se realice el primer despliegue, podrás comprobar que la aplicación sigue funcionando correctamente, pero esta vez desde Linux 😉

¡Saludos!