Neste tutorial, gostaria de mostrar um método muito simples para implantar aplicativos Laravel 5, seguros e protegidos.
Primeiro, digamos que no seu servidor de hospedagem (VPS ou hospedagem compartilhada … seja qual for), você tem o diretório public_html/ atual , acessível publicamente via domínio da web, por exemplo:
/home/comodev/public_html/
Agora, crie um novo diretório, que contém todo o código-fonte do seu aplicativo, no mesmo nível que public_html/ , por exemplo:
/home/comodev/public_html/project/
Você pode usar o git, svn, mecurial ou qualquer outro método que desejar para transferir seu código para este diretório.
Nesse ponto, você pode ver que o código do projeto aparentemente não está acessível para a web, certo?
O próximo passo é copiar todo o conteúdo dentro do diretório /project/public para o diretório public_html/. O exemplo fácil é que, com o novo aplicativo de instalação do Laravel 5, o project/public/index.php deve ser copiado para o public_html/index.php , você entendeu?
Lembre-se de copiar o public/.htaccess para o public_html/. Não se esqueça disso, é muito importante para suas rotas de aplicativos. Sem ele, suas rotas não funcionarão e haverá uma página em branco ou vazia em todas as rotas.
Agora vamos modificar o www/index.php para refletir a nova estrutura. Não modifique o project/public/index.php, ok? Apenas modifique public_html/index.php , lembre-se disso !!!
Encontre a seguinte linha
require __DIR__.’/../bootstrap/autoload.php’;
$app = require_once __DIR__.’/../bootstrap/app.php’;
E atualize-os para os caminhos corretos da seguinte maneira
require __DIR__.’/project/bootstrap/autoload.php’;
$app = require_once __DIR__.’/project/bootstrap/app.php’;
Vale ressaltar que alguns provedores de serviços de hospedagem compartilhada permitem o link simbólico para o diretório public_html do domínio principal. Podemos simplificar o processo. Em vez de copiar todo o project/public/ para /public_html , criamos links simbólicos,
ln -s /home/comodev/project/public /home/comodev/public_html/
Quase pronto, é hora de definir permissões para o diretório de project/ armazenamento, que deve ser gravável.
$ chmod -R o+w project/storage
A etapa final é aqui, configure suas variáveis de aplicativo no project/.env .
Tudo certo, certo! Tudo deve funcionar agora.
Se você ainda não possui o compositor instalado em seu servidor, você pode facilmente pegá-lo no diretório do projeto.
$ cd /home/comodev/project/
$ curl -sS https://getcomposer.org/installer | php — –filename=composer
Agora você pode executar o compositor para gerenciar dependências.
$ php composer install
$ php composer dumpautoload -o
$ php artisan config:cache
$ php artisan route:cache
A partir de agora, toda vez que você implantar, ou seja, atualizar o project/ diretório, será necessário refletir todas as alterações no project/public/ diretório em public_html/ , exceto o public_html/index.php , que já está configurado acima para incluir os caminhos corretos.
Você pode conseguir isso facilmente através da linha de comando do bash shell. Eu escrevi este pequeno script sync.sh , você pode usá-lo colocando no mesmo nível de diretório com project/ e public_html/
$ pwd
/home/comodev/project
$ cd ..
$ pwd
/home/comodev
$ ls
project/ www/ sync.sh
$ chmod +x sync.sh
$ ./sync.sh
#!/bin/sh
mv www/index.php index.php.saved
rm -rf www/*
# update project/ to your directory name
cp -a project/public/* www
cp project/public/.* www
rm -rf www/index.php
mv index.php.saved www/index.php
É isso aí. Bem, então, divirta-se!