Drupal Installation · 15 min read · Oct 13, 2025
Como Instalar o Drupal CMS com Nginx no Rocky Linux 8

Drupal é um sistema de gerenciamento de conteúdo web gratuito e de código aberto, escrito em PHP e distribuído sob a Licença Pública Geral GNU. O Drupal fornece uma ferramenta robusta de gerenciamento de conteúdo com APIs sofisticadas para publicação multicanal.
Drupal é um dos CMS mais utilizados na internet, usado por pelo menos 14% dos 10.000 principais sites da internet, e é utilizado por indústrias globais, governos, educação e sites de instituições. O Drupal fornece um sistema altamente escalável, integrado com aplicações digitais, e pode ser usado para criar multisites para diferentes organizações com suporte multilíngue.
Neste tutorial, você aprenderá como configurar o CMS Drupal (Sistema de Gerenciamento de Conteúdo) com a pilha LEMP no servidor Rocky Linux. Você também aprenderá como colocar o Drupal em funcionamento no Rocky Linux com o modo de aplicação SELinux e o Firewalld habilitado.
Pré-requisitos
Para começar com este guia, você precisará dos seguintes requisitos:
- Um servidor Rocky Linux - Este exemplo usa o Rocky Linux 8.x com o nome do host ‘drupal-server‘.
- Um usuário não-root com privilégios de administrador sudo/root.
- Um nome de domínio apontado para o endereço IP do servidor Rocky Linux - especialmente quando você está no ambiente de produção.
Configurando Repositórios
A pilha LEMP (Nginx, MariaDB/MySQL e PHP-FPM) é um grupo de software de código aberto para hospedagem de aplicações web. No Rocky Linux, a maioria dos pacotes da pilha LEMP estão disponíveis em repositórios de terceiros.
No primeiro passo, você adicionará e habilitará dois repositórios em seu sistema. Você adicionará o repositório EPEL que fornece pacotes adicionais para sistemas operacionais baseados em RHEL, e o repositório REMI que fornece várias versões de pacotes PHP.
Execute o seguinte comando para adicionar o repositório EPEL ao seu sistema Rocky Linux. Quando solicitado para confirmação, digite y e pressione ENTER.
sudo dnf install epel-release
Agora execute o comando dnf abaixo para adicionar o repositório REMI para o Rocky Linux 8.4.
sudo dnf install dnf-utils http://rpms.remirepo.net/enterprise/remi-release-8.rpmDigite y e pressione ENTER para prosseguir e adicionar o repositório Remi.

Por fim, execute o comando dnf abaixo para verificar a lista de repositórios disponíveis em seu sistema. Você deve ver dois repositórios adicionais EPEL e REMI adicionados ao sistema Rocky Linux.
sudo dnf repolist
Instalando Dependências de Pacotes
O Drupal é um CMS flexível e poderoso que pode ser instalado com qualquer servidor web, como Apache2/httpd, Nginx ou IIS Microsoft. Além disso, o Drupal suporta vários RDBMS, incluindo MariaDB/MySQL, PostgreSQL e SQLite. Para outros bancos de dados, como Microsoft SQL Server e MongoDB, você pode usar ambos via módulos da comunidade.
Agora você instalará as dependências de pacotes da pilha LEMP para o Drupal. Você instalará o Nginx via o repositório EPEL, instalará o MariaDB do appstream e os pacotes PHP 8.1 do repositório REMI.
Primeiro, redefina e habilite o módulo PHP do repositório REMI via o comando dnf abaixo. Neste exemplo, você habilitará um módulo para PHP 8.1, que é suportado pela versão mais recente do Drupal.
sudo dnf module reset php
sudo dnf module enable php:remi-8.1Quando solicitado, digite y para confirmar e habilitar o repositório REMI do PHP 8.1 e pressione ENTER para prosseguir.

Em seguida, use o comando dnf abaixo para instalar os pacotes básicos da pilha LEMP.
sudo dnf install nginx mariadb-server php php-fpm php-cli php-devel php-mbstring php-gd php-xml php-curl php-mysqlnd php-pdo php-json php-opcache php-pear php-pecl-apcu php-pecl-cryptoDigite y e pressione ENTER quando solicitado para confirmação.

Além disso, digite y quando solicitado para a confirmação de adicionar a chave GPG para alguns repositórios.

Uma vez que os pacotes da pilha LEMP estão instalados, você pode usar o seguinte comando systemctl para iniciar os serviços Nginx, MariaDB e PHP-FPM. Além disso, você habilitará todos esses serviços para serem executados automaticamente na inicialização.
sudo systemctl start nginx mariadb php-fpm
sudo systemctl enable nginx mariadb php-fpmVocê verá a saída como a seguinte - a pilha LEMP deve agora estar em execução em seu sistema Rocky Linux e todos os serviços da pilha LEMP estão habilitados.

Configurando o Firewalld
O Firewalld é o firewall padrão em sistemas operacionais baseados em RHEL, incluindo o Rocky Linux. Executar o Drupal ou qualquer aplicação web com um firewall habilitado é recomendado, especialmente em um ambiente de nível de produção.
Agora você adicionará ambas as portas HTTP e HTTPS ao firewalld para permitir que os clientes acessem sua instalação do Drupal.
Execute o seguinte comando firewall-cmd abaixo para adicionar os serviços HTTP e HTTPS ao firewalld.
sudo firewall-cmd --add-service=http --permanent
sudo firewall-cmd --add-service=https --permanentAgora recarregue o firewalld para aplicar as novas alterações. Em seguida, verifique a lista de serviços habilitados no firewalld.
sudo firewall-cmd --reload
sudo firewall-cmd --list-servicesVocê deve ver os serviços HTTP e HTTPS adicionados ao firewalld.

Configurando o Servidor MariaDB
Neste passo, você começará a configurar o banco de dados MariaDB que será usado para o Drupal. Você começará garantindo a implantação do MariaDB, depois criará um novo banco de dados e usuário para a instalação do Drupal.
Antes de começar, execute o seguinte comando para verificar o serviço MariaDB e certifique-se de que o serviço está em execução.
sudo systemctl status mariadbAbaixo está a saída quando o serviço MariaDB está em execução.

Em seguida, execute o seguinte comando para garantir a implantação do servidor MariaDB. Esta linha de comando ‘mysql_secure_installation‘ é fornecida pelos pacotes do MariaDB que ajudam a garantir a instalação.
sudo mysql_secure_installationAgora você deve ser questionado sobre algumas perguntas relacionadas às configurações do servidor MariaDB:
- 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 fim, digite Y para recarregar os privilégios da tabela e aplicar novas alterações.
Após garantir a implantação do MariaDB, você configurará um novo banco de dados e usuário para o Drupal.
Faça login no shell do MySQL/MariaDB via o usuário root com o comando mysql abaixo.
sudo mysql -u root -pExecute as seguintes consultas para criar um novo banco de dados e usuário para o Drupal. Neste exemplo, você criará o banco de dados drupaldb com o usuário drupal@localhost. Além disso, certifique-se de alterar a senha do banco de dados padrão.
CREATE DATABASE drupaldb;
CREATE USER drupal@localhost IDENTIFIED BY 'password';
GRANT ALL ON drupaldb.* TO drupal@localhost WITH GRANT OPTION;
FLUSH PRIVILEGES;
Em seguida, execute as seguintes consultas para verificar os privilégios para o usuário MariaDB drupal@localhost. Você verá que o usuário MariaDB drupal@localhost tem acesso e privilégios ao banco de dados drupaldb.
SHOW GRANTS FOR drupal@localhost;Agora execute a consulta ‘exit‘ ou ‘quit‘ para sair do shell do MariaDB.

Instalando a Extensão PECL: uploadprogress
A uploadprogress é uma extensão que será usada pelo Drupal para mostrar uma barra de progresso. A uploadprogress pode ser instalada via o repositório PECL (PHP Extension Community Library).
Agora você instalará a extensão uploadprogress do repositório PECL e a habilitará na sua instalação do PHP.
Para começar, execute o seguinte comando para garantir que o comando ‘pecl‘ esteja disponível em seu sistema. O ‘pecl‘ está disponível, você deve ver o caminho completo do arquivo binário ‘pecl‘.
which peclAgora execute o comando ‘pecl‘ abaixo para instalar a extensão uploadprogress.
sudo pecl install uploadprogressQuando a instalação começar, você deve ver a saída como a seguinte:

Em seguida, execute o seguinte comando para criar um novo arquivo de configuração ‘ /etc/php.d/uploadprogress.ini ‘, e habilitar a extensão uploadprogress.
cat <Por fim, reinicie o serviço PHP-FPM para aplicar novas alterações. O PHP-FPM agora está em execução com a extensão adicional uploadprogress habilitada.
sudo systemctl restart php-fpm
Configurando o PHP-FPM
Agora você configurará a configuração básica do PHP-FPM via o arquivo ‘ /etc/php.ini ‘ e configurará um pool específico do PHP-FPM para o Drupal.
Modifique o arquivo ‘ /etc/php.ini ‘ usando o seguinte editor nano.
sudo nano /etc/php.iniAltere a configuração padrão como abaixo. Além disso, certifique-se de alterar a opção date.timezone com seu ambiente.
memory_limit = 512M
upload_max_filesize = 60M
max_execution_time = 300
date.timezone = Europe/StockholmSalve o arquivo e saia do editor quando terminar.
Em seguida, copie a configuração padrão do pool PHP-FPM ‘ /etc/php-fpm.d/www.conf ‘ para ‘ /etc/php-fpm.d/drupal.conf ‘. Então, modifique a nova configuração do pool ‘ /etc/php-fpm.d/drupal.conf ‘ usando o editor nano.
sudo cp /etc/php-fpm.d/www.conf /etc/php-fpm.d/drupal.conf
sudo nano /etc/php-fpm.d/drupal.confAltere o nome padrão para ‘[drupal]‘ e o usuário e grupo padrão para ‘nginx‘. Além disso, certifique-se de alterar o arquivo sock de listagem para o pool PHP-FPM ‘drupal’ para ‘ /run/php-fpm/drupal.sock‘.
[drupal]
user = nginx
group = nginx
listen.owner = nginx
listen.group = nginx
listen = /run/php-fpm/drupal.sockSalve o arquivo e saia do editor quando terminar.
Agora reinicie o serviço PHP-FPM via o comando systemctl abaixo. Em seguida, verifique o status do serviço PHP-FPM.
sudo systemctl restart php-fpm
sudo systemctl status php-fpmVocê deve receber a saída como a seguinte - O serviço PHP-FPM está em execução.

Em seguida, execute o seguinte comando para criar um novo arquivo PHPINFO ‘ /usr/share/nginx/html/info.php ‘.
cat <
EOF Por fim, abra o navegador web e visite o endereço IP do servidor seguido do caminho ‘/info.php’ (ou seja: http://192.168.5.100/info.php). Você deve obter informações detalhadas sobre o PHP

Baixando o Código Fonte do Drupal
Neste ponto, você terminou a configuração do servidor de banco de dados MariaDB e do PHP-FPM para a instalação do Drupal. Em seguida, você fará o download da versão mais recente do Drupal para o seu servidor.
Primeiro, mova o diretório de trabalho atual para ‘ /tmp ‘ e baixe a versão mais recente do Drupal via o comando wget como abaixo. Você deve ver o arquivo ‘ drupal.tar.gz ‘ após o processo de download ser concluído.
cd /tmp
wget https://www.drupal.org/download-latest/tar.gz -O drupal.tar.gzEm seguida, extraia o arquivo ‘ drupal.tar.gz ‘ usando o comando tar e mova o diretório extraído para ‘ /var/www/drupal ‘, que será usado como a instalação do Drupal.
tar -xvf drupal.tar.gz
mv drupal-* /var/www/drupalPor fim, execute o seguinte comando para alterar a propriedade e a permissão do diretório de instalação do Drupal ‘ /var/www/drupal ‘. A propriedade deve ser o usuário e grupo ‘nginx‘, para que o servidor web Nginx possa ler e acessar o código fonte do Drupal. E para a permissão, deve ser ‘755‘.
sudo chown -R nginx:nginx /var/www/drupal/
sudo chmod -R 755 /var/www/drupal/Configurando o SELinux
Após baixar o código fonte do Drupal, você configurará o SELinux para o Drupal. Você fará o download da ferramenta de gerenciamento do SELinux para o seu servidor e configurará a rotulagem para o código fonte do Drupal e regras adicionais para o Nginx.
Execute o comando dnf abaixo para instalar o pacote ‘ policycoreutils-python-utils ‘ para gerenciar o SELinux em seu sistema.
sudo dnf install policycoreutils-python-utilsQuando solicitado, digite y para confirmar a instalação e pressione ENTER para prosseguir.

Em seguida, execute o seguinte comando para configurar a rotulagem para o código fonte do Drupal.
sudo semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/drupal(/.*)?"
sudo semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/drupal/sites/default/settings.php'
sudo semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/drupal/sites/default/files'
sudo restorecon -Rv /var/www/drupalExecute o seguinte comando para permitir que o servidor web Nginx acesse certos serviços. Para a instalação do Drupal, você deve permitir que o Nginx acesse os serviços de rede e de e-mail.
sudo setsebool -P httpd_can_sendmail on
sudo setsebool -P httpd_can_network_connect onAgora que você baixou o código fonte do Drupal e configurou a propriedade correta para o usuário e grupo ‘nginx‘, configurou a permissão correta para ‘755‘, e configurou o SELinux para o Drupal.
Configurando o Servidor Web Nginx
Agora que você terminou algumas configurações do servidor de banco de dados MariaDB e do PHP-FPM. Além disso, você baixou o código fonte do Drupal e configurou o SELinux. No próximo passo, você configurará os blocos de servidor do Nginx para seu domínio.
Antes de começar, certifique-se de que você tem o nome de domínio apontado para o endereço IP do seu servidor. Além disso, certifique-se de que você gerou o SSL Letsencrypt.
Crie uma nova configuração de bloco de servidor Nginx ‘ /etc/nginx/conf.d/drupal.conf ‘ usando o seguinte editor nano.
sudo nano /etc/nginx/conf.d/drupal.confAdicione a seguinte configuração ao arquivo. E certifique-se de alterar o nome do domínio e o caminho dos certificados SSL. Este exemplo usa o domínio http://drupal.howtoforge.local como o domínio principal para a instalação do Drupal.
server {
listen 80;
server_name drupal.howtoforge.local;
return 301 https://$host$request_uri;
}
server {
listen 443 http2 ssl;
server_name drupal.howtoforge.local;
root /var/www/drupal;
ssl_certificate /etc/letsencrypt/live/drupal.howtoforge.local/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/drupal.howtoforge.local/privkey.pem;
access_log /var/log/nginx/drupal.howtoforge.local.access.log;
error_log /var/log/nginx/drupal.howtoforge.local.error.log;
location = /favicon.ico {
log_not_found off;
access_log off;
}
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
location ~ \\..*/.*\.php$ {
return 403;
}
location ~ ^/sites/.*/private/ {
return 403;
}
# Bloquear acesso a scripts no diretório de arquivos do site
location ~ ^/sites/[^/]+/files/.*\.php$ {
deny all;
}
location ~ (^|/)\. {
return 403;
}
location / {
try_files $uri /index.php?$query_string;
}
location @rewrite {
rewrite ^/(.*)$ /index.php?q=$1;
}
location ~ /vendor/.*\.php$ {
deny all;
return 404;
}
location ~ '\.php$|^/update.php' {
fastcgi_split_path_info ^(.+?\.php)(|/.*)$;
include fastcgi_params;
# Bloquear ataques httpoxy. Veja https://httpoxy.org/.
fastcgi_param HTTP_PROXY "";
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param QUERY_STRING $query_string;
fastcgi_intercept_errors on;
fastcgi_pass unix:/run/php-fpm/drupal.sock;
}
location ~ ^/sites/.*/files/styles/ { # Para Drupal >= 7
try_files $uri @rewrite;
}
# Lidar com arquivos privados através do Drupal. O caminho do arquivo privado pode vir
# com um prefixo de idioma.
location ~ ^(/[a-z\-]+)?/system/files/ { # Para Drupal >= 7
try_files $uri /index.php?$query_string;
}
location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ {
try_files $uri @rewrite;
expires max;
log_not_found off;
}
}Salve o arquivo e saia do editor quando terminar.
Agora, execute o seguinte comando para verificar a configuração do Nginx. Você deve receber a mensagem de saída como ‘teste bem-sucedido - sintaxe ok‘, o que significa que você tem configurações corretas do Nginx e sem erros.
sudo nginx -tEm seguida, execute o seguinte comando systemctl para reiniciar o serviço Nginx e aplicar a nova configuração do bloco de servidor.
sudo systemctl restart nginx
O serviço Nginx agora deve estar em execução com a nova configuração do bloco de servidor ‘/etc/nginx/conf.d/drupal.conf’. Execute o seguinte comando para verificar o serviço Nginx e certifique-se de que o serviço está em execução.
sudo systemctl status nginxVocê deve receber a saída como a seguinte - O serviço Nginx está em execução.

Agora você deve ser capaz de acessar sua instalação do Drupal através do seu domínio.
Iniciando a Instalação do Drupal
Neste ponto, você terminou a configuração das dependências de pacotes para o Drupal. Agora você pode acessar seu Drupal através do seu domínio.
Neste passo, você iniciará a instalação do Drupal, além de configurar detalhes sobre seu Drupal e configurar o usuário administrador para o Drupal.
Abra seu navegador web e visite o nome de domínio da sua instalação do Drupal (ou seja: https://drupal.howtoforge.local/). Você deve ver a página de instalação do Drupal.
Selecione o idioma para sua instalação do Drupal ou você pode usar o padrão ‘Inglês‘ e clique no botão ‘Salvar e continuar‘.

Selecione o perfil de instalação para sua instalação e clique em ‘Salvar e continuar‘. Este exemplo usa o perfil ‘Padrão‘.

Agora configure o banco de dados para sua instalação do Drupal. Insira os detalhes do banco de dados MariaDB e usuário que você já possui e criou anteriormente.
Clique em Salvar e continuar novamente.

E agora a instalação do Drupal começará.

Insira informações detalhadas sobre sua instalação do Drupal. Além disso, certifique-se de usar seu nome de usuário para o administrador do Drupal e usar uma senha forte.
Clique em Salvar e continuar.

Quando a instalação do Drupal estiver concluída, você verá a seguinte página. Você pode ver mensagens como ‘Parabéns, você instalou o Drupal!‘.

Finalizando a Instalação do Drupal
Execute o seguinte comando para configurar a rotulagem para o arquivo de configuração do Drupal e diretório.
sudo restorecon -v /var/www/drupal/sites/default/settings.php
sudo restorecon -Rv /var/www/drupal/sites/default/filesEm seguida, execute o seguinte comando para alterar a permissão do arquivo ‘ /var/www/drupal/sites/default/settings.php ‘ e torná-lo gravável. Depois, edite o arquivo usando o editor nano.
sudo chmod 644 /var/www/drupal/sites/default/settings.php
sudo nano /var/www/drupal/sites/default/settings.phpDescomente a linha do script ‘trusted_host_patterns‘ e adicione seu nome de domínio. Isso habilitará o trusted_host na sua instalação do Drupal.
$settings['trusted_host_patterns'] = [
'^hwdomain\.io$',
'^drupal.hwdomain\.io$',
];Salve o arquivo e saia do editor quando terminar.
Por fim, volte ao seu navegador web no seu site Drupal e visite o relatório de status na seguinte URL. Substitua o nome do domínio principal pelo seu domínio - ou você pode acessá-lo através do menu Administração > Relatórios.
https://drupal.howtoforge.local/admin/reports/status
No relatório a seguir - você pode ver 25 requisitos do sistema para a instalação do Drupal são verificados. Isso significa que sua instalação do Drupal está correta e não tem erros.

Conclusão
Neste guia, você aprendeu como instalar a versão mais recente do Drupal v9 em um servidor Rocky Linux. Você também aprendeu a instalação da pilha LAMP (Linux, Apache2/httpd, MySQL/MariaDB e PHP) e a configuração básica para hospedar o Drupal. Além disso, você aprendeu como instalar extensões PHP do repositório PECL (PHP Extension Community Library).
Com o Drupal em funcionamento e protegido com certificados SSL e habilitada a configuração ‘trusted_hosts’, você pode agora estender a implantação do Drupal instalando novos temas ou adicionando alguns plugins para sua instalação do Drupal.
Receba novas postagens na sua caixa de entrada
Sem spam. Cancele a assinatura a qualquer momento.