Como implantar o aplicativo Laravel em hospedagem compartilhada

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!