Deploy de Aplicaciones en Heroku: Paso a Paso Práctico
Clase 35 de 35 • Curso de Desarrollo Web con PHP y Yii2
Resumen
Preparar proyecto de Yii2 con MySQL para desplegar en Heroku
Este tutorial te guiará a través de los pasos necesarios para configurar y desplegar un proyecto Yii2 en Heroku, utilizando una base de datos MySQL y asegurando que todas las configuraciones sean correctas para un entorno de producción.
1. Crear una cuenta en Heroku
- Registrarse en Heroku: Si no tienes una cuenta, ve a Heroku.com y regístrate.
- Instalar Heroku CLI: Descarga e instala Heroku CLI para manejar tu aplicación desde la terminal.
2. Configurar el proyecto Yii2 en el repositorio existente
-
Configurar
.gitignore
: En la raíz de tu proyecto Yii2, asegúrate de que el archivo.gitignore
excluya las siguientes carpetas y archivos innecesarios:/vendor/ /runtime/ /web/assets/ /tests/_output/ /composer.lock /.env
Esto evitará que archivos innecesarios o confidenciales se suban al repositorio.
-
Añadir el
Procfile
para Heroku: En la raíz de tu proyecto, crea un archivo llamadoProcfile
que Heroku usará para saber cómo ejecutar tu aplicación. Este archivo debería contener:web: vendor/bin/heroku-php-apache2 web/
¿Por qué
vendor/bin/heroku-php-apache2 web/
?- Compatibilidad con dependencias: Este comando asegura que Heroku use la versión específica de Apache que viene con el buildpack PHP de Heroku, instalada a través de Composer en la carpeta
vendor/bin
. - Gestión de dependencias: Garantiza que las versiones de las herramientas utilizadas están alineadas con las dependencias de tu proyecto, mejorando la consistencia y la estabilidad del entorno de producción.
- Aislamiento y control: Al usar esta ruta, se asegura que los cambios en el entorno subyacente de Heroku no afecten a la ejecución de tu aplicación, manteniendo un entorno predecible.
- Compatibilidad con dependencias: Este comando asegura que Heroku use la versión específica de Apache que viene con el buildpack PHP de Heroku, instalada a través de Composer en la carpeta
-
Configurar el archivo
composer.json
: Asegúrate de que todas las dependencias de tu proyecto están listadas y agrega un script para ejecutar migraciones de base de datos automáticamente después de instalar las dependencias:"scripts": { "post-install-cmd": [ "php yii migrate --interactive=0" ] }
3. Crear una base de datos MySQL en la nube
-
Agregar ClearDB MySQL a tu aplicación en Heroku: Heroku ofrece ClearDB para utilizar MySQL. Puedes añadirlo a tu aplicación con el siguiente comando:
heroku addons:create cleardb:ignite
-
Obtener la URL de la base de datos: Después de crear la base de datos, obtén la URL de conexión ejecutando:
heroku config | grep CLEARDB_DATABASE_URL
-
Configurar la conexión a la base de datos en Yii2: Actualiza tu archivo
config/db.php
para usar la variable de entorno proporcionada por Heroku:'dsn' => getenv('CLEARDB_DATABASE_URL'), 'username' => 'usuario', 'password' => 'contraseña', 'charset' => 'utf8',
Siguiendo estos pasos, podrás preparar exitosamente tu aplicación Yii2 para desplegarla en Heroku, con la garantía de que todas las configuraciones necesarias para un entorno de producción están correctamente implementadas.