Instalando Laravel no painel ISPConfig 3

Aprenda a configurar e instalar via composer o Laravel no painel ISPConfig 3.

Por | Laravel

Fala pessoal tudo beleza?

Conheci o painel ISPConfig 3 buscando uma solução para meu droplet na Digital Ocean, onde eu tinha meu site e gerenciava ele apenas via SSH. Fazer tudo via SSH muitas das vezes não é produtivo (mas é muito insano), então um painel é uma ótima opção.

Encontrei um site ótimo onde aprendi mais sobre o ISP. Hoje gerencio meu site (este mesmo que você está acessando) através desse painel que otimiza e muito nosso trabalho.

ISPConfig é um painel para gerenciar sites, banco de dados, e-mails, relatórios e muito mais. Para mais informações sobre o painel visite o site https://www.ispconfig.org/.

Só que hoje não será dele que irei falar, mas de como instalar e configurar as diretivas do servidor web para que o Laravel funcione corretamente em seu ISPConfig.

No final do artigo deixarei um link muito bom para quem quiser aprender sobre o ISPConfig.

Criando um site

Para criar um site no ISPConfig vá em Site -> Adicionar novo site. Preencha os campos necessários na aba Domínio e clique em Salvar.

Nota: Para que o site responda pelo seu domínio não esqueça de apontar na sua tabela de DNS o IP do servidor ISPConfig.

Após criar o site entre nele novamente e vá na aba Opções. No final da página você verá a caixa de Diretivas do Nginx. Será aí que iremos adicionar nossas diretivas para que o Laravel funcione.

Diretivas do Nginx

Para que o Laravel funcione essas diretivas abaixo são essenciais. Copie e cole na caixa de diretivas.

location = /robots.txt {
   root {DOCROOT}public;
   access_log off;
   log_not_found off;
   allow all;          
}

location / {
   root {DOCROOT}public;
   try_files $uri $uri/ /index.php?q=$uri&$args;
}

location @php {
   try_files $uri =404;
   root {DOCROOT}public;
   include /etc/nginx/fastcgi_params;
   fastcgi_pass unix:/var/lib/php7.1-fpm/web1.sock;
   fastcgi_index index.php;
   fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
   fastcgi_intercept_errors off;
}

Nota: a diretiva acima está definida para o usuário web1 conforme a linha fastcgi_pass unix:/var/lib/php7.1-fpm/web1.sock. Altere essa diretiva para o usuário que você estará usando em seu Painel.

Se vocês notarem nas 3 diretivas acima todos possuem a linha:

root {DOCROOT}public

Essa variável docroot é o próprio painel que facilita nossa vida. Então ficaria algo como:

root /var/www/example.com/web/public

Nessa linha indicamos ao Nginx que ele irá buscar os arquivos nesse diretório, ou seja, quando usamos um Framework que é o caso do Laravel, o diretório onde ficam os arquivos é a pasta public e não a raiz do site. Portanto devemos indicar isso ao nosso servidor web.

Note que até o arquivo robots.txt é necessário essa diretiva, pois caso contrário o servidor retornará um erro 404 caso tentarmos acessar o endereço http://example.com/robots.txt.

Instalando o Laravel

Primeiro vamos criar um usuário shell pelo painel ISP. Vá em Sites -> Usuários shell e clique em adicionar novo usuário. Preencha todas as informações necessárias.

Na opção Shell enjaulado (chroot) sempre escolha Jailkit. Isso deixará o usuário shell sempre em Jail (enjaulado), evitando que caso alguém consiga quebrar sua senha e ter acesso ao servidor fique enjaulado dentro de um espaço do site e não tenha acesso ao resto do servidor.

Acesse seu servidor via SSH com o usuário que foi criado agora (em Jail) e vamos fazer uma instalação limpa do Laravel utilizando o composer no diretório /web do usuário. Será necessário remover todo o conteúdo do diretório /web para que o composer consiga baixar a aplicação. Execute os comandos:

cd /web
rm -rf *
composer create-project --prefer-dist laravel/laravel .

O ponto no final quer dizer que a instalação será feita no diretório atual, ou seja, no /web do usuário. Após o composer finalizar toda a instalação acesse o endereço da sua aplicação e verá a tela inicial do Laravel.

Agora basta criar um banco de dados, usuário para o banco e configurar seu arquivo .env para conectá-lo ao seu banco e começar a brincar.

Bom vou deixar aqui um link de um site que eu acompanho bastante e que me ajuda muito com o painel ISPConfig.

Até a próxima.

Aristides Neto

Aristides Neto

Sou programador web focado no back-end, mas esforçado no front e um grande entusiasta em gerenciamento de servidores Linux.

Veja também