Skip to content

flippiJS/slim-php-mysql-heroku

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

30 Commits

Repository files navigation

鈿狅笍 Atenci贸n Esta opci贸n dej贸 de ser gratuita debido a cambios en la plataforma de Heroku. Mas info.

Aplicaci贸n Slim Framework 4 PHP con despliegue autom谩tico en Heroku.

Introducci贸n

El principal objetivo de este repo es poder desplegar de forma autom谩tica nuestra aplicaci贸n PHP Slim Framework 4 en Heroku.

1- Forkear proyecto

Como primer paso, forkeamos este proyecto desde el boton ubicado en la parte superior derecha de la pagina del repositorio.

2- Subimos nuestro c贸digo (opcional si agregan c贸digo)

Una vez forkeado, clonamos el repo con git clone <url del repo> y agregamos nuestro codigo PHP (SLIM Framework) dentro de la carpeta /app/. Luego comiteamos y pusheamos los cambios.

git add .
git commit -m "first commit"
git push -u origin main

3- Crear y configurar la App en Heroku

Nos dirigimos a la p谩gina de Heroku https://heroku.com/, iniciamos sesi贸n si tenemos cuenta o creamos una.

Heroku al iniciar sesi贸n nos muestra su dashboard, aqu铆 haremos clic en New y luego en Create new app:

Heroku1

En esta secci贸n agregamos el nombre de la app, seleccionamos la regi贸n United States y luego clic en bot贸n Create app

Heroku2

Ahora vamos a la secci贸n Deploy y hacemos clic en la opci贸n de GitHub, la cual nos mostrar谩 nuestro usuario o tendremos que iniciar sesi贸n con GitHub. Despu茅s buscamos el nombre de nuestro repo y aparecer谩 abajo:

Heroku3

Seleccionamos el repo y hacemos clic en Connect

Una vez hecho esto, elegimos la rama de github que queremos deplegar con nuestra aplicaci贸n Heroku, en nuestro caso main, y hacemos clic en Enable Automatic Deploys. De esta forma, cada vez que se haga una modificaci贸n a esta rama, Heroku va actualizar autom谩ticamente la aplicaci贸n.

Heroku4

Lo utlimo que deberiamos hacer es clic en el bot贸n Deploy Branch. Esto solo se hace una sola vez, luego se har谩 de forma autom谩tica.

Heroku5

Podemos verificar desde GitHub si el depliegue se hizo con exito.

https://github.com/flippiJS/slim-php-mysql-heroku/deployments

Heroku6

Desde el bot贸n View deployment accedemos a la URL de la app desplegada.

https://slim-php-mysql-heroku.herokuapp.com/

4- Crear y configurar la base de datos MySQL (RemoteMysql)

Para esto vamos a crear una cuenta en RemoteMysql -> https://remotemysql.com/login.php que nos permite acceder gratuitamente a un servidor MySQL en la nube.

En la parte de Create Account completamos los datos y creamos la cuenta:

mysql1

Validamos la cuenta desde el link enviado al correo.

Iniciamos sesi贸n, vamos a DATABASES y luego CREATE NEW DATABASE

mysql2

Una vez creada, nos van a figurar los datos de conexion a la base de datos, es MUY IMPORTANTE copiar esa informacion porque solo aparecer谩 una vez.

mysql3

Copiamos estos datos y nos vamos al dashboard del proyecto en Heroku, en la pesta帽a Settings, la opci贸n Config Vars.

Agregamos los siguientes datos Clave -> Valor:

MYSQL_HOST=remotemysql.com (campo "Server" de los datos que guardamos al crear la base en remotemysql.com)
MYSQL_PORT=3306 (campo "Port" de los datos que guardamos al crear la base en remotemysql.com)
MYSQL_USER=elcNx8VTCx (campo "Username" de los datos que guardamos al crear la base en remotemysql.com)
MYSQL_PASS=1234 (campo "Password" de los datos que guardamos al crear la base en remotemysql.com)
MYSQL_DB=elcNx8VTCx (campo "Database Name" de los datos que guardamos al crear la base en remotemysql.com)

mysql3-1

Acceder a phpMyAdmin, gesti贸n la base de datos remota

Desde las opciones de la base creada, accedemos a phpMyAdmin

mysql4

Iniciamos sesion con los datos de la base

mysql5

Desde el panel de este sitio vamos a poder administrar las diferentes bases, crear y borrar tablas y hacer consultas SQL.

mysql6

Requisitos para correr localmente

php -r "copy('//getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('SHA384', 'composer-setup.php') === 'e115a8dc7871f15d853148a7fbac7da27d6c0030b848d9b3dc09e2a0388afed865e6a3d6b3c0fad45c48e2b5fc1196ae') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php

Correr localmente via XAMPP

  • Copiar proyecto dentro de la carpeta htdocs
C:\xampp\htdocs\
  • Acceder por linea de comandos a la carpeta del proyecto y luego instalar Slim framework via Compose
cd C:\xampp\htdocs\<ruta-del-repo-clonado>
composer update
  • En el archivo index.php agregar la siguiente linea debajo de AppFactory::create();
// Set base path
$app->setBasePath('/app');

Correr localmente via PHP

  • Acceder por linea de comandos a la carpeta del proyecto y luego instalar Slim framework via Compose
cd C:\<ruta-del-repo-clonado>
composer update
php -S localhost:666 -t app

Archivo .env localmente

Crear dentro de la carpeta /app/ el archivo .env tomando de referencia .env.example

Agregamos los siguientes datos Clave -> Valor:

MYSQL_HOST=remotemysql.com (campo "Server" de los datos que guardamos al crear la base en remotemysql.com)
MYSQL_PORT=3306 (campo "Port" de los datos que guardamos al crear la base en remotemysql.com)
MYSQL_USER=elcNx8VTCx (campo "Username" de los datos que guardamos al crear la base en remotemysql.com)
MYSQL_PASS=1234 (campo "Password" de los datos que guardamos al crear la base en remotemysql.com)
MYSQL_DB=elcNx8VTCx (campo "Database Name" de los datos que guardamos al crear la base en remotemysql.com)

Ayuda

Cualquier duda o consulta por el canal de slack

2022 - UTN FRA