Deploy de Aplicaciones en Heroku: Paso a Paso Práctico

Clase 35 de 35Curso 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

  1. Registrarse en Heroku: Si no tienes una cuenta, ve a Heroku.com y regístrate.
  2. 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

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

  2. 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.
  3. 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

  1. 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
    
  2. 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
    
  3. 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.