ToDoVel [Parte 26] Deploy PaaS – PagodaBox

Observação: Este tutorial refere-se ao Laravel-4-BETA, estando totalmente DESATUALIZADO para a versão atual. Muita coisa mudou no framework…

No post anterior mostrei como colocar o nosso aplicativo em um servidor Shared, que é o que quase todos os projetos em PHP necessitam.
Mas, e se fossemos desenvolver um aplicativo profissional, que desejamos vender, que desejamos ter milhares de usuários?
A melhor escolha para iniciar um projeto desse tipo é utilizar um PaaS.
O PaaS vai controlar todo o ambiente que sua aplicação irá precisar para rodar com segurança e com disponibilidade.
Você, como programador, só precisa se preocupar com o código.

Nesse post vamos utilizar o PagodaBox, um PaaS para PHP muito legal, que possui uma instância free para quem quiser conhecer o serviço.
Existem outras opções de PaaS bem legais para PHP, escolhi o PagodaBox por recomendação do Google.

Você irá precisar de:

Após criar uma conta no PagodaBox volte para esse post.

Um novo projeto PagodaBox

Na conta inicial selecione new application e, posteriormente empty repo.
O PagodaBox irá criar um repositório GIT e um ambiente para a nossa aplicação.
Você precisará criar no seu ambiente local uma chave SSH.

Versionando o Projeto

Você deve versionar o seu projeto com o GIT (caso você não estava fazendo isso desde o começo).
A essa altura do campeonato, para fins de aprendizado, é mais vantagem clonar o projeto lá no GitHub:

git clone https://github.com/frenetic/todovel.git

E ai, cadastre o repositório PagodaBox como remote:

git remote add pagoda git@git.pagodabox.com:seu_repositório

Boxfile

Para o PagodaBox saber como configurar seu ambiente é preciso criar um arquivo chamado Boxfile.
Neste arquivo você diz ao Pagodabox qual a versão do PHP ele deve utilizar, quais as biblitoecas/dependências, os bancos de dados do projeto…
Esse é o Boxfile que criei para o projeto:

web1: 
  name: todovel
  php_version: 5.3.10
  php_display_errors: "32767"
  php_extensions:
    - mcrypt
    - pdo_mysql
    - zip
    - apc
    - mbstring
  shared_writable_dirs:
    - app/storage/cache
    - app/storage/logs
    - app/storage/meta
    - app/storage/sessions
    - app/storage/views
  document_root: public
  after_build: 
    - "if [ ! -f composer.phar ]; then curl -s http://getcomposer.org/installer | php; fi; php composer.phar install --prefer-source"
  before_deploy:
    - "php artisan migrate"
  after_depoly:
    - "rm -f app/storage/cache/*"
    - "rm -f app/storage/views/*"
db1: 
  name: todovel_db
  type: mysql

Configurando o Banco de Dados

O nosso projeto Laravel precisa saber qual o banco de dados que ele vai utilizar.
A gente pode fazer de duas formas: a primeira é colocar tudo no ar, esperar o banco de dados ser criado automagicamente e ai pegar as informações do banco e configurar o seu projeto.
OU
Podemos utilizar umas das facilidades do Pagodabox.
O Pagodabox coloca nas variáveis de ambiente, acessadas por $_SERVER, informações sobre o banco de dados.
Na verdade ele bota um monte de coisa legal no ambiente, mas só queremos saber do banco de dados.
Para configurar o nosso banco de dados, façamos assim: app/config/database.php

'mysql' => array(
	'driver'    => 'mysql',
	'host'      => $_SERVER['DB1_HOST'],
	'database'  => $_SERVER['DB1_NAME'],
	'username'  => $_SERVER['DB1_USER'],
	'password'  => $_SERVER['DB1_PASS'],
	'charset'   => 'utf8',
	'collation' => 'utf8_unicode_ci',
	'prefix'    => '',
),

Colocando No Ar

Antes de colocar no ar note que a versão do PHP selecionada para o Pagodabox foi 5.3.10.
Infelizmente o Pagodabox ainda não tem suporte para o PHP 5.4.x.
Isso implica dizer que não teremos o array short syntax disponível nesse projeto, o que fará com que nosso código precise de algumas pequenas modificações (no routes.php e no UserController.php).

Para colocar tudo no ar basta versionarmos o projeto, enviarmos para o Pagodabox e esperar que ele se configure.

git add .
git commit -m "versionando tudo para colocar no pagodabox"
git push pagoda --all

Você poderá ler no seu terminal as informações sobre configuração.
Em menos de 5 minutos seu ambiente estará no ar.
Ai é só curtir.

O meu está em: http://todovel.pagodabox.com.

Saiba Mais:

PagodaBox
Understanding the Boxfile
Moving Your App to Pagoda Box
Creating a PHP MySQL Database

5 thoughts on “ToDoVel [Parte 26] Deploy PaaS – PagodaBox

  1. Cara muito bom. Obrigado por compartilhar um projeto do início ao fim. É sempre bom ver esse tipo de conteúdo porque você conhece os recursos na prática.

    Gostei muito desse pagodabox também.

    Continue compartilhando coisas do Laravel. Se não for muito abuso seria legal ver um esquema na prática ou tutorial de Queue usando a amazon.

    []’s

  2. Alguém sabe me dizer oque é aquela pasta vendor?
    Criei uma conta no pagoda Box, ai criei um novo aplicação e selecionei o laravel, o proprio pagodabox criou tudo pra mim, ai quando clonei o projeto para minha maquina, percebi que deu um erro quando executo a aplicação, ele não encontra a pasta vendor.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *