GithubHelp home page GithubHelp logo

luisandaur / slim-php-mysql-heroku Goto Github PK

View Code? Open in Web Editor NEW

This project forked from flippijs/slim-php-mysql-heroku

0.0 0.0 0.0 720 KB

Aplicaci贸n Slim Framework 4 PHP + MySQL con despliegue en Heroku 馃殌

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

Shell 1.11% PHP 98.37% Procfile 0.52%

slim-php-mysql-heroku's Introduction

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

slim-php-mysql-heroku's People

Contributors

flippijs avatar luisandaur avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    馃枛 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 馃搳馃搱馃帀

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google 鉂わ笍 Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.