Instalação CMS · 9 min read · Sep 12, 2025
Como Instalar o OctoberCMS no Debian 12
October CMS é uma aplicação web escrita no framework Laravel. Ele suporta uma variedade de bancos de dados, como MySQL/MariaDB, PostgreSQL e SQLite. Pode ser executado sob Apache, Nginx, Lighthttpd e Microsoft IIS.
Este guia irá orientá-lo pelo processo de instalação do October CMS no Debian 12 com o LEMP Stack (Nginx, MySQL/MariaDB e PHP-FPM), UFW e Certbot.
Pré-requisitos
Para prosseguir com este guia, reúna o seguinte:
- Um servidor Debian 12.
- Um usuário não-root com privilégios de administrador.
- Um nome de domínio apontado para o endereço IP do servidor.
Instalando Dependências
Neste exemplo, você instalará o October CMS no servidor Debian com o LEMP Stack (Nginx, MySQL/MariaDB e PHP-FPM). Portanto, a primeira tarefa que você fará é instalar o LAMP Stack com dependências adicionais, como UFW (Firewall Descomplicado) e Certbot.
Comece este guia atualizando seu repositório Debian usando o seguinte comando.
sudo apt updateEm seguida, instale o LAMP Stack, UFW e os pacotes Certbot usando o seguinte comando.
sudo apt install nginx mariadb-server php composer php-cli php-common php-imap php-redis php-snmp php-xml php-zip php-mbstring php-curl php-mysqli php-intl php-bcmath php-gd php-fpm ufw certbot python3-certbot-nginxDigite Y e pressione ENTER para confirmar a instalação.

Uma vez que a instalação esteja concluída, verifique os serviços do LEMP Stack para garantir que cada serviço esteja em execução e habilitado em seu servidor Debian.
Se o serviço estiver em execução, você deve ver uma saída ativa (em execução). Quando o serviço está habilitado, isso confirma que o serviço será executado automaticamente na inicialização.
Verifique o serviço Nginx usando o seguinte comando.
sudo systemctl is-enabled nginx
sudo systemctl status nginx
Verifique o serviço PHP-FPM usando o comando abaixo. Neste caso, você instalou o PHP-FPM 8.2 do repositório Debian.
sudo systemctl is-enabled php8.2-fpm
sudo systemctl status php8.2-fpm
Por último, verifique o servidor MariaDB usando o comando abaixo.
sudo systemctl is-enabled mariadb
sudo systemctl status mariadb
Configurando UFW
Neste guia, você irá proteger seu servidor Debian com UFW (Firewall Descomplicado). Portanto, nesse caso, você deve abrir portas para os protocolos SSH, HTTP e HTTPS.
Execute o comando ufw abaixo para habilitar os perfis OpenSSH e ‘Nginx Full‘ no UFW. O perfil OpenSSH abrirá a porta SSH padrão 22, enquanto o perfil ‘Nginx Full’ abrirá as portas 80 e 443 para os protocolos HTTP e HTTPS.
sudo ufw allow OpenSSH
sudo ufw allow 'Nginx Full'Agora execute o comando abaixo para iniciar e habilitar o UFW. Digite y e pressione ENTER para prosseguir.
sudo ufw enableUma vez que o UFW esteja em execução, você deve obter uma saída ‘Firewall está ativo e habilitado na inicialização do sistema‘.

Agora execute o comando abaixo para verificar a lista de perfis habilitados no UFW.
sudo ufw statusCertifique-se de que ambos os perfis OpenSSH e ‘Nginx Full’ estejam habilitados.

Configurando o Servidor MariaDB
Depois de configurar o UFW, você agora configurará o servidor MariaDB através da utilidade mariadb-secure-installation, e então criará um novo banco de dados e usuário para o October CMS através do cliente mariadb.
Proteja sua instalação do servidor MariaDB executando o seguinte comando.
sudo mariadb-secure-installationDurante o processo, você será solicitado com algumas recomendações de segurança para o servidor MariaDB. Digite Y para aplicar a recomendação ou n para Não para rejeitá-la.
- A instalação padrão do MariaDB vem sem uma senha, pressione ENTER quando solicitado pela senha.
- Agora digite Y para configurar a senha root do MariaDB. Em seguida, digite a nova senha para o MariaDB e repita a senha.
- Digite Y para remover o usuário anônimo da sua instalação do MariaDB.
- Digite Y novamente quando solicitado para desabilitar o login remoto para o usuário root do MariaDB.
- Digite Y para remover o banco de dados de teste padrão da sua instalação do MariaDB.
- Por último, digite Y para recarregar os privilégios da tabela e aplicar novas alterações.
Agora que você configurou o servidor MariaDB, digite o comando abaixo para fazer login no servidor MariaDB e criar um novo banco de dados e usuário para o October CMS. Digite sua senha root do MariaDB quando solicitado.
sudo mariadb -u root -pExecute as seguintes consultas para criar um novo banco de dados e usuário octobercms, com a senha ‘password‘. Certifique-se de mudar a senha para uma nova senha forte.
CREATE USER 'octobercms'@'localhost' IDENTIFIED BY 'password';
CREATE DATABASE octobercms;
GRANT ALL PRIVILEGES ON octobercms.* TO 'octobercms'@'localhost';
FLUSH PRIVILEGES;
Em seguida, execute a seguinte consulta para verificar os privilégios do usuário octobercms.
SHOW GRANTS FOR 'octobercms'@'localhost';Certifique-se de que o usuário octobercms pode acessar o banco de dados octobercms como o seguinte.

Agora digite quit para sair do servidor MariaDB.
Instalando o Código Fonte do OctoberCMS
O October CMS pode ser instalado de várias maneiras, via zip ou via Composer. Neste exemplo, você instalará o October CMS via Composer.
Vá para o diretório /var/www/ e baixe o código fonte do October CMS usando o comando wget abaixo. Uma vez baixado, você verá o arquivo v3.5.0.zip.
cd /var/www/
wget https://github.com/octobercms/october/archive/refs/tags/v3.5.0.zipExtraia o arquivo v3.5.0.zip usando unzip para o diretório octobercms. Isso significa que seu diretório raiz da web do October CMS estará em /var/www/octobercms.
unzip v3.5.0.zip
sudo mv october-* octobercmsEm seguida, execute o seguinte comando para mudar a propriedade de /var/www/octobercms para o usuário www-data e grupo www-data. Além disso, configure a permissão para diretórios para 0755 e arquivos para 0644.
sudo chown -R www-data:www-data octobercms
find /var/www/octobercms -type d -exec chmod 755 {} \;
find /var/www/octobercms -type f -exec chmod 644 {} \;Agora, execute o comando composer abaixo para instalar as dependências PHP para o October CMS.
sudo -u www-data composer install
Inicie a instalação do October CMS usando o seguinte comando.
sudo -u www-data php artisan october:installDurante o processo, você será solicitado com o seguinte:
- Selecione o idioma padrão como en ou inglês.
- Digite o nome de domínio da sua instalação do October CMS. Por exemplo http://howtoforge.local/
- Digite a URL do backend ou caminho do admin para o October CMS. Neste caso, usaremos octoberadmin.
- Digite o número 1 para selecionar o mecanismo de banco de dados como MySQL.
- Digite os detalhes do seu banco de dados.
- Digite sim para instalar dados de demonstração e tema.
- Digite a licença gratuita do October CMS para continuar.
Abaixo está a captura de tela da instalação do October CMS.

Configurações do site para o October CMS.

Saída durante a instalação do October CMS.

Uma vez que a instalação do October CMS esteja concluída, você verá a seguinte saída.

Por último, execute o comando abaixo para migrar o banco de dados.
sudo -u www-data php artisan october:migrate
Configurando o Bloco de Servidor Nginx
Após baixar o October CMS e configurar seu diretório raiz da web, você criará uma nova configuração de bloco de servidor Nginx que será usada para executar o October CMS. Certifique-se de que você tenha seu nome de domínio pronto.
Execute o comando do editor nano abaixo para criar um novo arquivo /etc/nginx/sites-available/octobercms.conf.
sudo nano /etc/nginx/sites-available/octobercms.confInsira a seguinte configuração e certifique-se de mudar o nome de domínio howtoforge.local para o seu domínio.
server {
listen 80;
server_name howtoforge.local;
index index.php index.html;
root /var/www/octobercms;
location / {
# Deixe o October CMS lidar com tudo por padrão.
# O caminho não resolvido pelo roteador do October CMS retornará a página 404 do October CMS.
# Tudo que não corresponder à lista de permissões abaixo cairá nisso.
rewrite ^/.*$ /index.php last;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
fastcgi_read_timeout 120s;
}
# Lista de permissões
location ~ ^/favicon\.ico { try_files $uri /index.php; }
location ~ ^/sitemap\.xml { try_files $uri /index.php; }
location ~ ^/robots\.txt { try_files $uri /index.php; }
location ~ ^/humans\.txt { try_files $uri /index.php; }
# Bloquear todos os arquivos .dotfiles, exceto os bem conhecidos
location ~ /\.(?!well-known).* { deny all; }
## Deixe o nginx retornar 404 se o arquivo estático não existir
location ~ ^/storage/app/uploads/public { try_files $uri 404; }
location ~ ^/storage/app/media { try_files $uri 404; }
location ~ ^/storage/app/resources { try_files $uri 404; }
location ~ ^/storage/temp/public { try_files $uri 404; }
location ~ ^/modules/.*/assets { try_files $uri 404; }
location ~ ^/modules/.*/resources { try_files $uri 404; }
location ~ ^/modules/.*/behaviors/.*/assets { try_files $uri 404; }
location ~ ^/modules/.*/behaviors/.*/resources { try_files $uri 404; }
location ~ ^/modules/.*/widgets/.*/assets { try_files $uri 404; }
location ~ ^/modules/.*/widgets/.*/resources { try_files $uri 404; }
location ~ ^/modules/.*/formwidgets/.*/assets { try_files $uri 404; }
location ~ ^/modules/.*/formwidgets/.*/resources { try_files $uri 404; }
location ~ ^/modules/.*/reportwidgets/.*/assets { try_files $uri 404; }
location ~ ^/modules/.*/reportwidgets/.*/resources { try_files $uri 404; }
location ~ ^/plugins/.*/.*/assets { try_files $uri 404; }
location ~ ^/plugins/.*/.*/resources { try_files $uri 404; }
location ~ ^/plugins/.*/.*/behaviors/.*/assets { try_files $uri 404; }
location ~ ^/plugins/.*/.*/behaviors/.*/resources { try_files $uri 404; }
location ~ ^/plugins/.*/.*/reportwidgets/.*/assets { try_files $uri 404; }
location ~ ^/plugins/.*/.*/reportwidgets/.*/resources { try_files $uri 404; }
location ~ ^/plugins/.*/.*/formwidgets/.*/assets { try_files $uri 404; }
location ~ ^/plugins/.*/.*/formwidgets/.*/resources { try_files $uri 404; }
location ~ ^/plugins/.*/.*/widgets/.*/assets { try_files $uri 404; }
location ~ ^/plugins/.*/.*/widgets/.*/resources { try_files $uri 404; }
location ~ ^/themes/.*/assets { try_files $uri 404; }
location ~ ^/themes/.*/resources { try_files $uri 404; }
}Salve e feche o arquivo quando terminar.
Em seguida, execute o comando abaixo para ativar o arquivo de bloco do servidor octobercms.conf e verificar a sintaxe do Nginx.
sudo ln -s /etc/nginx/sites-available/octobercms.conf /etc/nginx/sites-enabled/
sudo nginx -tSe você tiver a sintaxe correta, deve obter uma saída como ‘sintaxe está ok - teste bem-sucedido’.

Por último, aplique suas alterações ao Nginx reiniciando o serviço Nginx usando o comando abaixo.
sudo systemctl restart nginxProtegendo o OctoberCMS com Certificados SSL/TLS
Neste ponto, seu October CMS está em execução e acessível. Mas para garantir que sua instalação esteja segura, você implementará HTTPS gerando certificados SSL/TLS do letsencrypt.
Execute o comando abaixo para gerar certificados SSL/TLS para sua instalação do October CMS. Certifique-se de mudar o endereço de e-mail e o nome de domínio com suas informações.
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d howtoforge.localUma vez que o processo esteja concluído, seu nome de domínio será automaticamente configurado com HTTPS. E seus certificados SSL/TLS estarão disponíveis no diretório /etc/letsencrypt/live/seudominio.com.
Acessando o OctoberCMS
Visite o nome de domínio da sua instalação do October CMS, por exemplo, https://howtoforge.local/ usando seu navegador web favorito.
Se sua instalação for bem-sucedida, você deve obter a página inicial padrão do OctoberCMS como a seguinte.
Clique no botão ‘Área de Backend‘ para acessar a página de administração do October CMS.

Digite os detalhes do novo usuário administrador, nome, endereço de e-mail e senha. Clique em Criar Conta para confirmar.

Quando terminar, você deve obter o painel de administração do October CMS como o seguinte.

Conclusão
Parabéns! Você agora completou a instalação do October CMS no servidor Debian 12. Você instalou o October CMS com o LEMP Stack (Nginx, MariaDB e PHP-FPM). Você também protegeu sua instalação com UFW (Firewall Descomplicado) e SSL/TLS via Letsencrypt.
Receba novas postagens na sua caixa de entrada
Sem spam. Cancele a assinatura a qualquer momento.