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 llamado Procfile 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.
-
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.