Diferència entre revisions de la pàgina «Heroku»

De Cacauet Wiki
Salta a la navegació Salta a la cerca
Línia 53: Línia 53:
 
# Haurieu de tenir instal·lat ja PostgreSQL a la màquina local, si heu arribat aquí. En cas contrari, l'instal·leu amb APT.
 
# Haurieu de tenir instal·lat ja PostgreSQL a la màquina local, si heu arribat aquí. En cas contrari, l'instal·leu amb APT.
 
# Mireu-vos l'article [[PostgreSQL]] per iniciar-vos a com utilitzar aquesta BDD en local. Caldrà crear una BD i usuari/contrasenya per poder accedir-hi. El nom d'usuari ha de ser el mateix que el del sistema operatiu.
 
# Mireu-vos l'article [[PostgreSQL]] per iniciar-vos a com utilitzar aquesta BDD en local. Caldrà crear una BD i usuari/contrasenya per poder accedir-hi. El nom d'usuari ha de ser el mateix que el del sistema operatiu.
 +
#: Es recomana (per simplificar): crear un usuari amb el mateix nom del del SO, i crear una BBDD amb el mateix nom de l'usuari.
 
# Canvieu la contrasenya de l'usuari de Postgre amb:<pre>postgre=>ALTER USER enric PASSWORD 'enric123';</pre>
 
# Canvieu la contrasenya de l'usuari de Postgre amb:<pre>postgre=>ALTER USER enric PASSWORD 'enric123';</pre>
 
# Si el vostre projecte és PHP pur, hauríem de posar-lo a la carpeta <code>/var/www/html</code> per publicar-ho a l'Apache. Però tenim maneres alternatives per publicar-ho. En concret, aquesta, dins la pròpia carpeta del projecte:<pre>php -S localhost:8080 -t ./ index.php</pre>
 
# Si el vostre projecte és PHP pur, hauríem de posar-lo a la carpeta <code>/var/www/html</code> per publicar-ho a l'Apache. Però tenim maneres alternatives per publicar-ho. En concret, aquesta, dins la pròpia carpeta del projecte:<pre>php -S localhost:8080 -t ./ index.php</pre>
 
# Visiteu amb el navegador per visualitzar:<pre>http://localhost:8080</pre>
 
# Visiteu amb el navegador per visualitzar:<pre>http://localhost:8080</pre>
# Les instruccions de connexió a BD amb PHP no us funcionaran. Caldrà que construïu la variable $DATABASE_URL adequadament abans d'executar la comanda de PHP:<pre>$ export DATABASE_URL=postgres://enric:enric123@localhost:5432/tasklist</pre>
+
# Les instruccions de connexió a BD amb PHP no us funcionaran. Caldrà que construïu la variable $DATABASE_URL adequadament abans d'executar la comanda de PHP:<pre>$ export DATABASE_URL=postgres://enric:enric123@localhost:5432/enric</pre>
  
  

Revisió del 16:41, 10 des 2018


Introducció

Heroku és una PaaS (Platform as a Service) que ens permet fer desplegaments sense necessitat de tenir un servidor.

Servidors d'aplicacions web


Primeres passes

Inicia't amb aquest tutorial per PHP simple:

https://devcenter.heroku.com/articles/getting-started-with-php#introduction

Quan hagis acabat, tindràs en marxa una web d'exemple. Fes un cop d'ull al Procfile, veuràs que la carpeta web/ és on s'inicia la nostra aplicació web.

Substitueix els continguts de la carpeta web/ per un index.php senzill per començar a fer la nostra app.


Plugins i bases de dades

Un cop hem estat capaços de crear una web, crearem una base de dades. Aparentment podem crear una MySQL gratuita, però ens demana la targeta de crèdit. En canvi, amb PostgreSQL no ens en demana.

Teniu la Documentació oficial de PostgreSQL per a Heroku on explica com posar a punt la BD.

Crearem una base de dades PostgreSQL als Add-ons (via web o via comandes CLI). Podràs veure les credencials de la BBDD per utilitzar-ho en el PDO després.

Crea una pàgina PHP d'una TASKLIST amb PostgreSQL. Ha de quedar més o menys com aquesta:

https://floating-beyond-40727.herokuapp.com

Post utilitzar aquest exemple de PDO:

https://uf.ctrl-alt-d.net/material/mostra/50/php-acces-a-dades-amb-pdo

Caldrà que creis la taula, un formulari per entrar les tasks, i visualitzar-les.

Accedint a la shell del PostgreSQL

Normalment, i si no tenim algun proxy o tallafocs intermig, ens podem connectar des de la shell LOCAL amb:

$ heroku pg:psql

Però si tenim algun d'aquests casos de proxy/tallafocs, podem fer un hack:

  1. Ens loguem a la web de Heroku
  2. Entrem a la nostra aplicació -> More... -> Run console
  3. Executem "bash"
  4. Dintre de la consola web, executem:
    $ psql $DATABASE_URL
    Podria ser que enlloc de $DATABASE_URL la variable fos $HEROKU_POSTGRESQL_WHITE_URL
    Per examinar totes les variables d'entorn pots executar "env" a la shell



Per desenvolupar en local

Per treballar més àgilment convé treballar en local. Només desplegarem el projecte a Heroku quan el tinguem més o menys funcional.

  1. Haurieu de tenir instal·lat ja PostgreSQL a la màquina local, si heu arribat aquí. En cas contrari, l'instal·leu amb APT.
  2. Mireu-vos l'article PostgreSQL per iniciar-vos a com utilitzar aquesta BDD en local. Caldrà crear una BD i usuari/contrasenya per poder accedir-hi. El nom d'usuari ha de ser el mateix que el del sistema operatiu.
    Es recomana (per simplificar): crear un usuari amb el mateix nom del del SO, i crear una BBDD amb el mateix nom de l'usuari.
  3. Canvieu la contrasenya de l'usuari de Postgre amb:
    postgre=>ALTER USER enric PASSWORD 'enric123';
  4. Si el vostre projecte és PHP pur, hauríem de posar-lo a la carpeta /var/www/html per publicar-ho a l'Apache. Però tenim maneres alternatives per publicar-ho. En concret, aquesta, dins la pròpia carpeta del projecte:
    php -S localhost:8080 -t ./ index.php
  5. Visiteu amb el navegador per visualitzar:
    http://localhost:8080
  6. Les instruccions de connexió a BD amb PHP no us funcionaran. Caldrà que construïu la variable $DATABASE_URL adequadament abans d'executar la comanda de PHP:
    $ export DATABASE_URL=postgres://enric:enric123@localhost:5432/enric



Heroku amb frameworks