Neste post irei mostrar como hospedar sua aplicação numa das plataformas que gosto muito que é a Heroku. Mas antes de começar falarei um pouco sobre ela.
A Heroku é uma plataforma em nuvem como um serviço (PaaS), que suporta várias linguagens de programação que são usadas como um modelo de implantação de aplicativos da Web. A Heroku, uma das primeiras plataformas em nuvem, está em desenvolvimento desde junho de 2007, quando só oferecia suporte à linguagem Ruby, mas agora é compatível com Java, NodeJs, Scala, Closure, Python, PHP e Go.
Por esta razão, Heroku é dito ser uma plataforma poliglota, uma vez que permite a construção de desenvolvedores, executar aplicações em escala de forma semelhante em todos os idiomas. A Heroku foi adquirida pela Salesforce.com em 2010 por US $ 212 milhões.
Agora vamos ver algumas funcionalidades básicas, configurar um novo ambiente e publicar uma aplicação PHP com uma conta gratuita no Heroku.
Pré-Requisitos
- Instalar o Git aqui;
- Criar uma conta no Github aqui;
- Instalar o Composer aqui;
- Criar uma conta free no Heroku aqui;
- Instalar o Heroku Toolbelt aqui.
Com TODOS os pré-requisitos atendidos, vamos começar. Abra o console e digite: heroku login.
Aparecerá os campos para informar suas credenciais, ou seja, login e senha da conta criada no Heroku. Feito isso, digite o seguinte comando para criar um novo projeto no Heroku: heroku create nome_do_projeto.
Agora vamos iniciar o repositório do Git e adicionar os arquivos do projeto. Para isso, digite os comandos abaixo:
git init
git add .
Configurando o BuildPack
Então vamos fazer a seguinte configuração. No console, digite:
heroku config:add BUILDPACK_URL= https://github.com/heroku/heroku-buildpack-multi.git
Agora vamos criar na pasta raiz do nosso projeto chamado: .buildpacks. Dentro dele iremos colar as respectivas urls dos componentes que iremos utilizar. Volte no github do heroku e copie as urls dos buildpacks referentes aos componentes que você irá utilizar. A url do PHP é: https://github.com/heroku/heroku-buildpack-php.git
git commit -m “first commit”
git push heroku master
Agora o Heroku irá se encarregar de criar a aplicação para nós, e no final irá gerar uma url para acessarmos. Copie a url e insira no browser ou simplesmente digite o comando: heroku open.
O browser vai retornar um erro 403 – Access Forbidden. Mas calma, agora sabemos que nossa aplicação foi hospedada com sucesso. Para corrigirmos este erro teremos que mapear a path do nosso document root, que fica na pasta public. Criaremos então um arquivo chamado Procfile, e nele vamos inserir a seguinte configuração:
web: $(composer config bin-dir)/heroku-php-apache2 public/
Então vamos ao browser e atualizamos a página da nossa aplicação. Provavelmente será retornado outro erro, desta vez o erro é do Laravel. Mas calma, isto se deve ao fato de que não configuramos nossas variáveis de ambiente e de conexão com banco de dados, e não rodamos nossas migrations. E é o que faremos a seguir.
Opcional: Se você quiser ver o erro que o Laravel está retornando, é necessário configurar as variáveis APP_ENV e APP_DEBUB. Essas variáveis estão no arquivo .env. Para isso, executamos os comandos:
heroku config:set APP_ENV=local
heroku config:set APP_DEBUB=true
O Heroku disponibiliza na conta free, o banco de dados PostgreSQL. Agora vamos criar um banco de dados e configurar as variáveis de conexão com o mesmo.
Para criar o banco, digite no console: heroku add-ons:create heroku-postgresql: hobby-dev.
Agora acesse https://www.heroku.com e efetue login na sua conta. Clique no menu e na opção Data, você será redirecionado para página que contém seus bancos de dados criados. Clique naquele que acabamos de criar, depois clique na opção View Credentials. Aparecerão as informações para conexão, que vamos utilizar agora.
Na raiz do nosso projeto do Laravel, abra o arquivo .env, nele existem as principais variáveis de ambiente do framework. Vamos configurá-las no Heroku através do comando: heroku config. Para mais informações digite, heroku config --help. Para configurar digitamos os comandos abaixo:
heroku config:set APP_KEY=somerandomstring
heroku config:set DB_CONNECTION=pgsql
heroku config:set DB_HOST=
heroku config:set DB_DATABASE=
heroku config:set DB_USERNAME=
heroku config:set DB_PASSWORD
Obs.: Como o arquivo .env é ignorado pelo Git, devemos alterar nosso database.php, na variável default de conexão com o banco de dados. Devemos alterar o valor para default para pgsql. Exemplo:
'default' => env('DB_CONNECTION', 'pgsql'),
Para executar nossas migrations do projeto no Heroku, basta inserir o comando: heroku run “php artisan migrate”.
Após isso, basta atualizar a página no browser. A aplicação deverá ser executada normalmente! Caso haja algum erro, revise as variáveis configuradas.
Obs.: Caso você queira rodar seeds, deverá comentar o comando truncate das tabelas, pois o PostgreSQL assim como Mysql não permite executar tal comando nas tabelas que possuem relacionamento.
Bom é isso para este post, uma dica que eu dou é que você tente fazer cada passo pausadamente e faça todos os items do pré-requisito, para que tudo de certo no final!
Comentários
Postar um comentário