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

install epel

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.rpm

Digite y e pressione ENTER para prosseguir e adicionar o repositório Remi.

install 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

check repositories

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.1

Quando solicitado, digite y para confirmar e habilitar o repositório REMI do PHP 8.1 e pressione ENTER para prosseguir.

enable php 8.1

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-crypto

Digite y e pressione ENTER quando solicitado para confirmação.

install dependencies

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

accept gpg keys

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-fpm

Você 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.

start and enable services

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 --permanent

Agora 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-services

Você deve ver os serviços HTTP e HTTPS adicionados ao firewalld.

setup 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 mariadb

Abaixo está a saída quando o serviço MariaDB está em execução.

check mariadb

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_installation

Agora 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 -p

Execute 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;

create database

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.

check database settings

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 pecl

Agora execute o comando ‘pecl‘ abaixo para instalar a extensão uploadprogress.

sudo pecl install uploadprogress

Quando a instalação começar, você deve ver a saída como a seguinte:

install uploadprogress

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

setup uploadprogress

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.ini

Altere 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/Stockholm

Salve 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.conf

Altere 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.sock

Salve 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-fpm

Você deve receber a saída como a seguinte - O serviço PHP-FPM está em execução.

check php-fpm

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

phpinfo

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.gz

Em 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/drupal

Por 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-utils

Quando solicitado, digite y para confirmar a instalação e pressione ENTER para prosseguir.

install selinux management

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/drupal

Execute 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 on

Agora 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.conf

Adicione 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 -t

Em 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

setup nginx drupal

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 nginx

Você deve receber a saída como a seguinte - O serviço Nginx está em execução.

check nginx

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‘.

choose language

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

installation profile

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.

database details

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

installation drupal

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.

drupal site settings

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!‘.

installation success

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/files

Em 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.php

Descomente 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.

drupal status reports

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.

Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.