No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Despliegue de aplicación de Yii2 a Heroku

35/35
Recursos

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.

Aportes 4

Preguntas 1

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Darle las gracias al profesor, me gusto bastante el curso. Conceptos bien claros e hicimos un ejercicio bastante completo y bien explicado, para entender las funcionalidades de Yii.
En el Resumen de la clase encuentras un **tutorial para preparar tu repositorio, configurar tu cuenta de Heroku y una base de datos MySQL en la nube**. 🤓💚 Encuentras todo el tutorial debajo del reproductor de video. ![](https://static.platzi.com/media/user_upload/image-711cfe0e-e1d6-439b-8b82-3b9f493bcc87.jpg)
Hola, hay un espacio en donde el profe cambió el index.php para adaptarlo a producción, pero puede ocasionar problemas si quieres seguir trabajando en el proyecto, porque quien lo clone va a tener la versión de producción y no la de desarrollo. La solución más sencilla es agregar una variable de entorno que se llame environment, y en el index.php colocas: ```js if(getenv('environment')!=='production'){ //Agreegue los metodo de debuggeo de Yii 2 } ```y en el sources.sh colocas la variable environment como Dev, Local o etc. Así, cualquier desarrollador que descargue la app va a trabajar en entorno local, y en entorno productivo no habrá inconveniente.
Esta clase el audio y video estan desfazados....