# Instalando Laravel no painel ISPConfig 3

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/](https://www.ispconfig.org/?ref=aristides.dev).

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 -&gt; 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.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1735043860947/86baf15a-a63b-47d8-b8dd-064243881b26.png align="left")

Caixa de diretivas Nginx

## Diretivas do Nginx

Para que o Laravel funcione corretamente, a configuração abaixo é essencial. Copie e cole na caixa de diretivas.

```nginx
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:

```nginx
root {DOCROOT}public
```

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

```nginx
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** -&gt; **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:

```bash
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.

![Tela inicial do Laravel](https://cdn.hashnode.com/res/hashnode/image/upload/v1735043919948/8e05eab0-a7e7-401e-8f24-6a1664689c4b.png align="left")

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 dois links de sites que eu acompanho bastante e que me ajuda muito com o painel ISPConfig.

* HowtoForge: [https://www.howtoforge.com](https://www.howtoforge.com/?ref=aristides.dev)
    
* Fator Binário: [https://fatorbinario.com](https://fatorbinario.com/?ref=aristides.dev)
    

Até a próxima.
