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:
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:
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.