rodrigosantosbr

Hospedando aplicação PHP no Heroku

Mar 27th, 2020
185
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!

fonte: https://medium.com/@FernandoDebrand/hospedando-aplicacao-php-no-heroku-bc6606fa378f

Heroku é uma das plataformas de serviço na nuvem (PaaS) mais populares. Foi uma das primeiras plataformas de nuvem, e já está em desenvolvimento desde 2007. É popular devido a seu apoio para a variedade de linguagens, incluindo Ruby, Python, Java, Node.js, Scala, Go, Clojure e PHP. E também porque ela permite que você pague somente pelos recursos que você usar e oferece banco de dados como um serviço, juntamente com vários Add-ons avançados para a flexibilidade.
O Heroku usa uma unidade de máquina virtual chamada “Dyno”, a grosso modo, considere um Dyno como uma máquina virtual “pequena” com 4 cores e até 512Mb de RAM sem swap file e sem suporte a persistência de arquivos.
Neste artigo vamos ver algumas funcionalidades básicas, configurar um novo ambiente e publicar uma aplicação PHP com uma conta gratuita no Heroku.
Visão Geral
Para começarmos, assumimos que você já tenha os seguintes pré-requisitos instalados:
PHP
Git
Composer
Uma conta no Heroku
Heroku Toolbelt
Neste tutorial, foi usado o sistema operacional Ubuntu, com o terminal. Mas você também pode instalar Heroku Toolbelt no Windows ou Mac OS X.
O suporte a PHP no Heroku é aplicado automaticamente quando a aplicação tem um arquivo chamado composer.json no diretório raiz. Mesmo se sua aplicação não utiliza o gerenciador de dependências composer, o mais simples é incluir pelo menos um composer.json vazio ( {} ), a fim de ser reconhecido como uma aplicação PHP. Outra forma de aplicar o suporte é setando um Buildpack, que pode ser feito manualmente (Mais informações podem ser vistas em Buildpacks-Heroku).
Começando com Heroku
Uma vez que já tem sua conta e o Toolbelt instalado, você precisa fazer login usando seu e-mail e senha (ou seja, os dados de acesso a sua conta no Heroku).
No terminal execute:
$ heroku login
Enter your Heroku credentials.
Email: phprs@example.com
Password: ***
Preparando sua aplicação
Primeiro crie um diretório onde ficará nossa aplicação, neste exemplo será “phprs”, entre no diretório recém criado e inicie um repositório Git.
No terminal execute:
$ git init
Agora conforme mencionado acima, para o Heroku identificar que sua aplicação é PHP, você deve criar um arquivo composer.json.
Outra configuração necessária é a criação do Procfile, é um arquivo de texto no diretório raiz da sua aplicação que define os tipos de processo e explicitamente declara o comando que deve ser executado para iniciar a sua aplicação.
Seu Procfile será algo parecido com isto:
web: vendor/bin/heroku-php-apache2
Opcionalmente, você pode usar para iniciar sua aplicação um arquivo que não está no diretório raiz do seu projeto. Para fazer isso, modifique o Procfile para adicionar um argumento no final do script de inicialização. O argumento será o nome do diretório que deve ser usado como a raiz do projeto.
Por exemplo, se você tem uma pasta chamada public que contém seus JavaScript, CSS, imagens e arquivo index.php, o Procfile definiria o servidor web Apache com esse diretório usado como raiz do documento da seguinte forma:
web: vendor/bin/heroku-php-apache2 public/
Neste exemplo vamos utilizar a pasta “public”, então crie a mesma dentro do diretório “phprs”, Na pasta “publi”c crie um novo arquivo com o nome “index.php” e adicione o seguinte código:
<?php
phpinfo();
Feito isso, adicione estes novos arquivos criados ao versionamento do git, para isso volte para o diretório raiz da nossa aplicação “phprs” e execute os seguintes comandos.
$ git add .
$ git commit -m "Hospedando meu projeto PHP no Heroku"
Publicando sua aplicação PHP
Nesta etapa, vamos implantar a aplicação no Heroku.
Vamos criar um aplicativo no Heroku, que o prepara para receber nosso código-fonte, executando o seguinte comando:
$ heroku create phprs
Se tudo ocorreu com sucesso, como resposta você receberá a url da sua aplicação no Heroku.
Quando você cria um aplicativo, um controle remoto git (chamado heroku) também é criado e associado ao seu repositório git local.
Se você não passar um nome para sua aplicação, Heroku gera um nome aleatório para o seu aplicativo, ou você pode passar um parâmetro para especificar seu próprio nome do aplicativo, no nosso caso passamos “phprs”.
Agora vamos publicar nosso código executando:
$ git push heroku master
Nossa aplicação agora está publicada. Para garantir que pelo menos uma instância do aplicativo está sendo executada, executamos:
$ heroku ps:scale web=1
Agora, visite a aplicação na URL gerada pelo nome do aplicativo que criamos. Como um atalho, você pode abrir a aplicação da seguinte forma:
$ heroku open
Verificando os logs de execução, Heroku trata todos os eventos de execução e gera logs, proporcionando um canal único para visualizar todos os eventos.
Assim podemos ver informações sobre o aplicativo em execução usando o seguinte comando:
$ heroku logs --tail
Configurando serviço de banco de dados
Como comentado no inicio, Heroku disponibiliza banco de dados como serviço através de Add-ons, para este exemplo vamos utilizar o MySQL através do serviço JawsDB MySQL. Para adicionar o Add-ons, execute:
$ heroku addons:create jawsdb
JawsDB uma vez adicionado, uma variável de sistema JAWSDB_URL estará disponível na configuração da aplicação e irá conter os dados de conexão do MySQL.
Obs.: O banco de dados MySQL será criado à partir do zero e vai exigir alguns minutos para se tornar totalmente disponível. A variável de configuração JAWSDB_URL ficará disponível assim que o banco de dados estiver pronto.
Esta variável pode ser acessada a qualquer momento usando o comando:
$ heroku config:get JAWSDB_URL
Agora em posse das credenciais de acesso ao banco, vamos testar nossa conexão, para isso vamos alterar o arquivo “index.php”, conforme abaixo:
<?php
mysqli_connect("host", "user", "password", "db") or die(mysqli_error());
echo "Connected to MySQL<br />";
Substitua host, user, password e db pelas configurações disponíveis na variável JAWSDB_URL.
E agora vamos atualizar o arquivo no git e publicar a atualização no Heroku, execute os seguintes comandos:
$ git commit -a -m "Adicionando conexão com MySQL"
$ git push heroku master
Agora, acesse a aplicação na URL gerada pelo nome do aplicativo que criamos. Como um atalho, podemos abrir a aplicação da seguinte forma:
$ heroku open
Se tudo ocorreu bem, no navegador vai receber a mensagem “Connected to MySQL”. Senão, verifique os logs para ver o que pode estar errado, executando:
$ heroku logs --tail
Pronto!
Agora você está pronto para utilizar a sua aplicação PHP com Heroku.
Você pode seguir desenvolvendo seu projeto e sempre que desejar atualizar no servidor, basta fazer um git push.
Todas estas configurações que realizamos também podem ser vistas através do “dashboard” do Heroku.
Os arquivos utilizados neste post podem ser encontrados aqui.
Texto originalmente publicado no blog da Comunidade PHPRS .

Add Comment
Please, Sign In to add comment