Você está visualizando atualmente Dia 001 – Guia de Configuração Debian para Laravel

Dia 001 – Guia de Configuração Debian para Laravel

Este Guia tem como objetivo apreentar todos os comandos para instalar, configurar e otimizar um Debian Linux 12 para desenvolvimento de aplicações PHP usando o Laravel Framework.

Execute os comando passo a passo para configurar sua VPS ou Máquina Virtual.

Dúvidas? entre no nosso Discord: https://promovaweb.com/discord

Download da Imagem ISO do Debian

Faça o download da imagem ISO do Debian 12 para configurar no VirtualBox aqui:

https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-12.5.0-amd64-netinst.iso

Configurações Iniciais do SSH

Antes de começar, é necessário gerar uma chave SSH privada. Acesse o Terminal do Windows 11 e digite o comando abaixo:

ssh-keygen

Este comando vai gerar sua chave privada. Você pode apertar uma sequência de ENTER para gerar a sua chave. Não recomendo usar uma passphrase.

Permitindo acesso remoto do root

# Edite o arquivo
nano /etc/ssh/sshd_config

# procure pela entrada

PermitRootLogin without-password

# altere esssa linha para

PermitRootLogin yes

# pressione CTRL + X para salvar

# Reinicia o servidor e aplica as modificações
reboot

Conexão SSH no Windows

Se você está no Windows 11, basta executar o comando abaixo para parear sua chave com o seu servidor Linux remoto.

Execute este comando no Terminal do Windows, trocando:

  • USER = Nome do Usuário do Windows
  • 127.0.0.1 = IP do Servidor Linux Remoto
type C:\Users\USER\.ssh\id_rsa.pub | ssh root@127.0.0.1 "cat >> .ssh/authorized_keys"

Este comando irá adicionar permanentemente sua chave do Windows no servidor Linux.

Conexão SSH no MacOS

Se você está no MacOS, basta executar o comando abaixo para parear sua chave com o seu servidor Linux remoto.

Execute este comando no Terminal do Mac, trocando:

  • USER = Nome do Usuário do Windows
  • 127.0.0.1 = IP do Servidor Linux Remoto
ssh-copy-id -i ~/.ssh/id_rsa.pub USER@127.0.0.1

Este comando irá adicionar permanentemente sua chave do Mac no servidor Linux.

Conexão com um Terminal Linux

Agora que você já pareou as chaves do seu computador local com o seu servidor Linux, é hora de fazer a conexão com o terminal remoto para executar os comandos.

<aside> 💡 Você pode usar o aplicativo Termius para gerenciar as conexões com os seus servidores Linux. Assista esse nosso Guia para o Termius no Youtube.

</aside>

Setup Inicial do Servidor Debian 12

Vamos instalar o básico do básico para configurar os aplicativos:

apt-get install -y sudo gnupg2 wget ca-certificates apt-transport-https 

Aqui vamos instalar os aplicativos básicos para começar o nosso trabalho de configuração:

apt-get install -y curl sudo software-properties-common git \
build-essential cron bzip2 wget gnupg lsb-release \
libpcre3-dev nano htop zip unzip git supervisor g++ \
zlib1g-dev libjpeg-dev libmagickwand-dev \
git libpng-dev htop zip unzip libgif-dev libtiff-dev libz-dev \
libpq-dev libcurl4-openssl-dev libaprutil1-dev \
libssl-dev libicu-dev libxml2-dev sysvbanner \
libzip-dev libjpeg62-turbo-dev libfreetype6-dev \
imagemagick ghostscript jpegoptim optipng pngquant \
libnss3-dev ca-certificates fonts-liberation \
libasound2 libatk-bridge2.0-0 libatk1.0-0 \
libc6 libcairo2 libcups2 libdbus-1-3 \
libexpat1 libfontconfig1 libgbm1 libgcc1 \
libglib2.0-0 libgtk-3-0 libnspr4 libnss3 libpango-1.0-0 \
gcc g++ make

Setup do ZSH

O ZSH é um dos terminais mais populares do universo Linux e do MacOS. Ele vai colorir e trazer informações úteis para o seu shell. A instalação é bem simples, basta executar os comandos abaixo:

# instala o szh
apt install -y zsh

# verifica a versão inst
alada
zsh --version
# altera o shell do Linux
chsh -s $(which zsh)

# configura o oh-my-zsh
sh -c "$(curl -fsSL <https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh>)"

# sai da sessão atual para aplicar as alterações
exit

Instalação do PHP 8.3

Agora vamos instalar o PHP 8.33 com os módulos necessários para que o Laravel 11 funcione normalmente.

# baixa os pacotes do php
curl -sSL <https://packages.sury.org/php/README.txt> | sudo bash -x

# atualizamos os pacotes
sudo apt update

# atualizamos os aplicativos
sudo apt-get upgrade -y

# instalamos o php básico
sudo apt -y install php-common php-cli

# instalamos as bibliotecas usadas pelo Laravel
sudo apt-get install -y php-mysql php-xml php-xmlrpc php-curl \
  php-gd php-imagick php-dev php-imap php-mbstring \
  php8.3-opcache php-soap php-zip php-intl php-redis \
  php-readline ssl-cert php-mailparse php-pgsql

# compila e habilita bibliotecas externas
pecl install redis imagick  apcu

Configurando o Composer

O composer é o gerenciador de pacotes mais popular para o PHP. Para instalar o composer basta executar o passo a passo abaixo:

# instrala o composer
curl -sS <https://getcomposer.org/installer> | sudo php -- --install-dir=/usr/bin --filename=composer

# adiciona variáveis de ambiente do composer no sistema
echo "export COMPOSER_ALLOW_SUPERUSER=1" >> ~/.zshrc
echo "export COMPOSER_MEMORY_LIMIT=-1" >> ~/.zshrc
echo "export PATH=$PATH:~/.config/composer/vendor/bin" >> ~/.zshrc
source ~/.zshrc

# verifica o setup do composer
composer diagnose

Configurando o NodeJS

Para configurar o NodeJS 20 basta seguir este passo a passo:

# Adiciona os pacotes do node 20
curl -sL <https://deb.nodesource.com/setup_20.x> | sudo -E bash

# atualiza os pacotes do linux
sudo apt-get update

# instala o node 20
sudo apt-get install -y nodejs

Configurando o Redis Server

Instala o servidor Redis que vamos usar muito no laravel.

apt-get install -y redis-server

Configurando o MySQL (Percona Server 8.0)

Vamos instalar um servidor MySQL local para facilitar o desenvolvimento.

# Baixa o pacote do Percona
wget https://repo.percona.com/apt/percona-release_latest.bookworm_all.deb

# atualiza o pacote no sistema
dpkg -i percona-release_latest.bookworm_all.deb

# configura a versão do percona
percona-release setup ps80

# atualiza os pacotes do sistema
apt-get update

# instala o percona server 8
apt-get install -y percona-server-server

# remove o pacote temporário
rm percona-release_latest.bookworm_all.deb

# Verificando a instalação
sudo systemctl status mysql

Agora vamos configurar o MySQL para iniciar automaticamente no boot do sistema.

# para que inicie automaticamente após um reboot
systemctl enable mysql && systemctl start mysql

Vamos criar um usuário para acesso remoto ao servidor MySQL:

# Entra no MySQL
mysql

Execute este comando no console do MySQL.

Troque toor pela senha desejada:

CREATE USER root@'%' IDENTIFIED BY 'toor' WITH MAX_USER_CONNECTIONS 50;
GRANT ALL PRIVILEGES ON *.* TO root@'%';

Configura o Instalador do Laravel 11

Agora vamos instalar o pacote global do instalador do Laravel 11.

composer global require laravel/installer

Deixe um comentário