микрозаймы онлайн займы на карту займы по паспорту

Deploy de Aplicações Laravel com Rocketeer 4

Olá, o Laravel 4.1 foi lançado ontem, pra comemorar, resolvi escrever esse tutorial, que mostra como fazer um deploy simples de sua aplicação Laravel usando o Rocketeer.

Bom, o primeiro passo é manter seu projeto sob versionamento usando GIT, mas você já sabia disso não é?

Nosso projeto Demo, será hospedado em uma máquina dedicada, a pasta public do vhost é /var/www/public

1) Adicionar o Rocketeer na lista de dependencias do composer:
Localmente na raiz do projeto, execute:

composer require anahkiasen/rocketeer:dev-master

Ok, agora temos o fonte do Rocketeer em nosso projeto, porem ainda não conseguimos fazer muito, vamos então ao passo 2.

2) Configurações do Laravel

vamos adicionar a entrada

'Rocketeer\RocketeerServiceProvider',

ao array providers em app/config/app.php

e depois iremos adicionar esse entrada ao array aliases:

'Rocketeer' => 'Rocketeer\Facades\Rocketeer',
também em app/config/app.php.

Para publicar as configurações no projeto, rodamos o comando:

php artisan deploy:ignite

3) Configurando o Rocketeer

As configurações do Rocketer podem ser encontradas em app/config/packages/anahkiasen/rocketeer/config.php

Esse arquivo está bem documentado, mas segue uma explicação básica das principais opções

‘connections’: Nome das conexões remotas a serem usadas, elas devem estar configuradas em app/config/remote.php

‘scm’: Aqui onde entram os dados do repositório do GIT que servirá como base para o Deploy, a url do repositório entra em ‘repository’ e se o servidor já tem acesso SSH ao repositório configurado, você pode deixar as sessões ‘username’ e ‘password’ em branco, em ‘branch’ você pode especificar qual branch do repositório git será usada para o deploy.

‘stages’: Por padrão, os deploys são feitos em postaremota/releases e o link simbólico com nome de pastaremota/current e aponta para o deploy ativo, configurando essa opção você pode mudar esse comportamente, para que o deploy seja feito em subpastas, por exemplo pastaremota/producao — pastaremota/staging etc.

remote’: Aqui serão feitas configurações do ambiente de deploy:

‘root_directory’: Armazena o local dos arquivos, no meu caso, ‘root_directory’   => ‘/var/www/’;

‘application_name’: Nome da aplicação, será uma subpasta de ‘root_directory’;

‘keep_releases’: Número de Releases a Manter no servidor

‘shared’: Essa opção server para configurarmos o armazenamento persistente da aplicação, ou seja, o conteudo que não deve ser apagado em um novo release, geralmente irá corresponder ao conteudo de app/storage do seu projeto, mas você pode especificar quantas entradas quiser, no nosso exemplo,  adicionei algumas entradas a mais do que a configuração padrão:

'shared' => array(
'{path.storage}/logs',
'{path.storage}/sessions',
'{path.storage}/cache',
'{path.storage}/meta',
'{path.storage}/view',
),

Os dados serão mantidos de fato em pastaremota/shared e dentro do projeto, serão links simbólicos.

‘permissions’: Sessão onde você poderá configurar permissões personalizadas aos arquivos e pastas do projeto, bem como o dono e grupo dos arquivos, o padrão já é www-data, usuário comum do servidor web em ambientes Linux.

‘tasks’: Tarefas a serem executadas no Deploy, muito útil para automatizar de fato processos personlizados

‘on’: Sessão onde é possível sobrescrever as configurações gerais em um determinado ambiente ou conexão, útil quando os ambientes não são idênticos.

Bom, após configurar o Rocketeer, é so publicar, veja a lista de comandos disponíveis (Traduzi as entradas do próprio Artisan):

deploy                             Alias para deploy:deploy
deploy:check                  Verifica se o servidor está pronto para receber a aplicação
deploy:cleanup              Limpa os releases antigos do servidor
deploy:current               Mostra qual o release ativo
deploy:deploy                Faz o Deploy de um novo Release.
deploy:flush                   Limpa o cache de credenciais
deploy:ignite                 Publica os arquivos de Configuração
deploy:rollback             Faz o rollback para o release anterior, ou algum especificado
deploy:setup                  Configura o servidor remoto para receber o Deploy
deploy:teardown           Remove a aplicação e os caches existentes
deploy:test                      Roda os testes no servidor e exibe os resultados
deploy:update                Atualiza o projeto no servidor sem fazer um novo release

Bom, vamos publicar nossa aplicação pela primeira vez, então rode localmente o comando

php artisan deploy

Isso fará com que nosso projeto seja enviado com sucesso para o servidor, e se a aplicação foi configurada com o nome ‘demo’, então teremos no servidor

/var/www/demo/releases/* – Armazena os releases do projeto

/var/www/demo/current – Link simbólico para o deploy ativo

/var/www/demo/shared – Arquivos que configuramos como persistentes e não serão afetados pelo deploy.

Bom, mas em /var/www/ ainda não tem a pasta public que é a raiz do vhost, podemos resolver isso com o comando.

ln -s /var/www/demo/current/public /var/www/public

Esse tutorial é um tanto quanto introdutório, muito mais pode ser feito com o Rocketeer, inclusive deploy de aplicação não Laravel, espero que gostem, Abraços!

  • Bruno Quaresma

    Tava precisando muito disso. Isso serviria só para deploys em PaaS ou shared tbm?

    • http://brayanrastelli.com/ Brayan Rastelli

      Desde que você tenha acesso SSH, teoricamente serve para qualquer hospedagem :)

      • Diego Hernandes

        E Git no servidor

  • tporto

    Como faria para publicar em um host usando ftp?