PHP RS

Hospedando aplicação PHP no Heroku

Heroku e PHP

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:

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: [email protected]
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.

The post Hospedando aplicação PHP no Heroku appeared first on Grupo de Programadores PHP do RS | PHPRS.

Powered by WPeMatico