Como instalar o phpBB com Nginx no Debian 12, 11 ou 10 Linux

phpBB é um software de fórum de código aberto altamente personalizável e amplamente utilizado que fornece uma plataforma robusta para a construção de comunidades online. Quando combinado com NGINX, MariaDB e PHP, você obtém uma pilha poderosa e eficiente que garante alto desempenho e escalabilidade para o seu fórum. NGINX serve como servidor web, MariaDB como sistema de gerenciamento de banco de dados e PHP como linguagem de script do lado do servidor, formando uma base sólida para o phpBB.

Siga as etapas descritas neste guia para instalar o phpBB no Debian 12, 11 ou 10 com NGINX, MariaDB e PHP. Esta configuração fornecerá um ambiente seguro e de alto desempenho para o seu fórum online.

Instale LEMP (Nginx, MariaDB, PHP)

Atualize o Debian antes da instalação do phpBB

Certifique-se de que seu sistema Debian esteja atualizado antes de instalar a pilha LEMP. Esta etapa ajuda a evitar conflitos de pacotes e garante a execução tranquila dos processos subsequentes. Ele também alinha seu sistema com os patches de segurança e melhorias de software mais recentes.

Para atualizar seu sistema, execute o seguinte comando:

sudo apt update && sudo apt upgrade

O comando sudo apt update atualiza a lista de pacotes disponíveis e suas versões, enquanto o sudo apt upgrade instala as versões mais recentes de seus pacotes.

Instale o NGINX (pilha LEMP Parte 1)

NGINX, um servidor HTTP e proxy reverso de código aberto e de alto desempenho, é a base da pilha LEMP. Para instalar o NGINX, execute o seguinte comando:

sudo apt install nginx

Após a instalação do NGINX, o serviço geralmente inicia automaticamente. No entanto, é uma boa prática confirmar isso e garantir que esteja funcionando conforme o esperado. Você pode verificar o status do serviço NGINX emitindo o seguinte comando:

systemctl status nginx

Você deverá ver uma saída indicando o status ativo (em execução) do serviço NGINX, confirmando o início bem-sucedido do NGINX. Se o servidor não tiver sido iniciado por algum motivo, o comando a seguir poderá iniciá-lo e também configurar o NGINX para iniciar automaticamente na reinicialização do sistema:

sudo systemctl enable nginx --now

Este comando garante que o serviço NGINX possa iniciar na inicialização (habilitar) e iniciar imediatamente (–agora).

Opcionalmente, você pode visitar o endereço IP do servidor para verificar se o Nginx está instalado; você deverá ver uma página de teste semelhante:

Instale MariaDB (pilha LEMP Parte 2)

Instalar o módulo de banco de dados é a próxima etapa na configuração da pilha LEMP. MariaDB, conhecido por seu desempenho e vários atributos suplementares, é preferido ao MySQL na pilha LEMP. Para instalar o MariaDB, execute o seguinte comando:

sudo apt install mariadb-server mariadb-client

Etapa 4: verifique o serviço MariaDB

Depois que o MariaDB estiver instalado, é crucial confirmar o status do serviço MariaDB. É importante garantir que o serviço MariaDB esteja habilitado e funcionando corretamente. O comando para inspecionar o status do serviço é o seguinte:

systemctl status mariadb

Você pode executar o seguinte comando se o servidor não tiver sido ativado. Isso garantirá que o MariaDB seja iniciado imediatamente e configurado para inicializar automaticamente a cada reinicialização do sistema.

sudo systemctl enable mariadb --now

Instalação segura do MariaDB (Security Run-Script)

Proteger seu banco de dados é fundamental para configurar um sistema robusto e confiável; MariaDB não é exceção. Após a instalação, é altamente recomendável que o script de segurança que acompanha a instalação seja executado. Este script fortalece a instalação do MariaDB modificando suas configurações padrão, muitas vezes consideradas inseguras, protegendo assim o sistema de potencial acesso ou exploração não autorizada.

Para executar o script de segurança MariaDB, conhecido como mysql_secure_installation, emita o seguinte comando:

sudo mysql_secure_installation

Depois que o script de segurança for executado, a próxima etapa envolve ajustar várias configurações para aumentar a segurança da instalação do MariaDB. Essas alterações incluem a configuração da senha root, a restrição do acesso remoto, a eliminação de contas de usuários anônimos e a remoção do banco de dados de teste. Cada um desses ajustes adiciona uma camada de segurança à instalação do MariaDB, ajudando a protegê-la contra possíveis ameaças à segurança.

Vamos nos aprofundar em cada um desses ajustes:

  • Configurando a senha root: Esta é a senha do usuário root da instalação do MariaDB. É crucial escolher uma senha forte para evitar acesso não autorizado.
  • Restringindo o acesso remoto: O usuário root pode acessar o banco de dados de qualquer local por padrão. A restrição do acesso remoto garante que o usuário root só possa acessar o banco de dados da máquina local, reduzindo o risco de ataques remotos.
  • Eliminando contas de usuários anônimos: As contas de usuários anônimos não têm nomes. Essas contas representam um risco à segurança, pois podem ser usadas para obter acesso não autorizado ao banco de dados. O script de segurança permite remover essas contas.
  • Removendo o banco de dados de teste: MariaDB possui um banco de dados de teste que qualquer usuário pode acessar. Esse banco de dados é desnecessário para uso em produção e pode ser removido com segurança para reduzir a superfície de ataque.

Ao reservar um tempo para proteger a instalação do MariaDB, você está dando um passo significativo para garantir a integridade e a segurança dos seus dados.

Instale o PHP (pilha LEMP Parte 3)

O componente final da pilha LEMP é o serviço PHP, que atua como ponte entre o Nginx e o MariaDB. Essa ponte é realizada pelo serviço PHP-FPM e módulos extras exigidos pelo phpMyAdmin. Para instalar PHP, PHP-FPM e os módulos necessários em seu sistema Debian, execute o seguinte comando:

sudo apt install php-fpm php php-cli php-mysql php-curl php-common php-mbstring php-xml

Verificando o status do serviço PHP

Após a instalação, é fundamental confirmar o status do serviço PHP. Esta validação garante que o PHP esteja habilitado e funcione perfeitamente e sem erros. O comando depende da versão do PHP instalada; no nosso caso, era PHP 8.2.

systemctl status php8.2-fpm

Ativando serviço PHP

Se o serviço PHP estiver inativo, o comando a seguir o habilita e garante que ele seja iniciado automaticamente a cada reinicialização.

sudo systemctl enable php-fpm --now

Este comando ativará o serviço PHP-FPM e garantirá que ele seja iniciado automaticamente durante cada inicialização do sistema.

Instalação de back-end do phpBB

É hora de instalar fóruns phpBB com a pilha LEMP instalada com sucesso. No momento deste tutorial, a versão mais recente era phpBB 3.3.10. No entanto, isso pode mudar com o tempo, já que novos lançamentos normalmente são lançados a cada seis meses. Para verificar a versão atual, visite o página de downloads do phpBB.

Nota: Não se esqueça de pegar o phpBB-xxxzip mais recente e ajustar os comandos abaixo; isso é crítico.

Baixe o phpBB e configure diretórios

Primeiro, baixe o pacote phpBB:

cd /tmp && wget https://download.phpbb.com/pub/release/3.3/3.3.10/phpBB-3.3.10.zip
unzip phpBB-3.3.10.zip
sudo mv phpBB3 /var/www/html/phpbb

A seguir, modifique as permissões de diretório para NGINX:

sudo chown -R www-data:www-data /var/www/html/phpbb
sudo chmod -R 755 /var/www/html/phpbb

Configurando MariaDB para phpBB

Agora, crie um banco de dados para sua instalação do phpBB. Primeiro, abra o terminal MariaDB como root:

sudo mysql -u root -p

Crie o banco de dados para seus fóruns:

CREATE DATABASE phpbb;

Crie um novo usuário de banco de dados chamado phpbbuser com uma nova senha:

CREATE USER 'phpbbuser'@'localhost' IDENTIFIED BY 'new_password_here';

Conceda ao usuário acesso total ao banco de dados:

GRANT ALL ON phpbb.* TO 'phpbbuser'@'localhost' IDENTIFIED BY 'user_password_here' WITH GRANT OPTION;

Libere os privilégios para aplicar as alterações:

FLUSH PRIVILEGES;

Saia do terminal MariaDB:

EXIT;

Seu banco de dados phpBB está pronto. Você inserirá esses detalhes durante a parte de instalação da interface da web do tutorial.

Configurando PHP para phpBB

Para garantir uma instalação bem-sucedida do phpBB e seu funcionamento ideal, você deve ajustar algumas opções no php.ini arquivo de configuração.

Abra o php.ini arquivo:

sudo nano /etc/php/{version}/fpm/php.ini

Lembre-se de substituir {version} com a versão específica do PHP-FPM que você instalou, como 83., 8.2, 8.1, 8.0 ou 7.4.

Localize as seguintes configurações e ajuste-as da seguinte forma:

max_execution_time = 180 max_input_time = 90 memory_limit = 256M upload_max_filesize = 64M

Essas configurações geralmente são padrão, mas se você estiver usando um VPS com recursos limitados ou hospedagem compartilhada, pode ser necessário ajustá-las para menos. Lembre-se que cada instalação do phpBB, como qualquer outro sistema CMS, pode variar.

Uma vez feito isso, salve e saia do arquivo. Você precisará reiniciar o PHP FPM para que as alterações tenham efeito:

sudo systemctl restart php8.2-fpm

Configurando Nginx para phpBB

No bloco do servidor Nginx, declare o upstream do PHP e depois os locais do PHP. A melhor maneira de fazer isso é criar um novo bloco de servidor usando um subdomínio como forums ou community.

Primeiro, crie o bloco do servidor:

sudo nano /etc/nginx/sites-available/phpbb.conf

Copie e cole o seguinte no bloco do servidor, modificando o nome de domínio, SSL, caminho raiz e qualquer outra coisa para atender às suas necessidades. Não mexa nos locais ou no PHP, a menos que você saiba o que está fazendo.

Atenção: A seguinte marcação de sintaxe de configuração do Nginx inclui comentários anotados para orientá-lo na personalização da configuração de acordo com seus requisitos específicos. É altamente recomendável examinar cuidadosamente cada segmento e fazer os ajustes apropriados para se adequar à configuração do seu sistema. Sua atenção a esses detalhes é muito apreciada.

# Upstream to abstract backend connection(s) for PHP
upstream phpbb {
    # Path to PHP 8.2 FPM socket, replace this with your own socket path
    server unix:/run/php/php8.2-fpm.sock;
}

server {
    listen 80;
    listen [::]:80;

    # Change these to your main server name(s)
    server_name www.example.com example.com;

    # Replace this with your site root directory
    root /var/www/html/example.com-root/;
    index index.php index.html index.htm index.nginx-debian.html;

    # Change this to your specific server name
    server_name forums.linuxcapable.com;

    # Replace this with your site root directory
    root /var/www/html/phpbb/;
    index index.php index.html index.htm index.nginx-debian.html;

    # Log files, replace these paths if you have different log file paths
    access_log /var/log/nginx/forums-access.log;
    error_log /var/log/nginx/forums-error.log;

    location / {
        try_files $uri $uri/ @rewriteapp;

        # PHP processing, make sure to use your own upstream name if different
        location ~ \.php(/|$) {
            include fastcgi.conf;
            fastcgi_split_path_info ^(.+\.php)(/.*)$;
            fastcgi_param PATH_INFO $fastcgi_path_info;
            fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
            fastcgi_param DOCUMENT_ROOT $realpath_root;
            try_files $uri $uri/ /app.php$is_args$args;
            fastcgi_pass phpbb;
            fastcgi_intercept_errors on;    
        }

        # Deny access to certain PHPBB files
        location ~ /(config\.php|common\.php|cache|files|images/avatars/upload|includes|(?<!ext/)phpbb(?!\w+)|store|vendor) {
            deny all;
            internal;
        }
    }

    location @rewriteapp {
        rewrite ^(.*)$ /app.php/$1 last;
    }

    location /install/ {
        try_files $uri $uri/ @rewrite_installapp =404;

        # PHP processing for installer
        location ~ \.php(/|$) {
            include fastcgi.conf;
            fastcgi_split_path_info ^(.+\.php)(/.*)$;
            fastcgi_param PATH_INFO $fastcgi_path_info;
            fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
            fastcgi_param DOCUMENT_ROOT $realpath_root;
            try_files $uri $uri/ /install/app.php$is_args$args =404;
            fastcgi_pass phpbb;
            fastcgi_intercept_errors on;    
        }
    }

    location @rewrite_installapp {
        rewrite ^(.*)$ /install/app.php/$1 last;
    }

    # Deny access to version control system directories
    location ~ /\.svn|/\.git {
        deny all;
        internal;
    }

    gzip on; 
    gzip_comp_level 6;
    gzip_min_length 1000;
    gzip_proxied any;
    gzip_disable "msie6";

    # Gzip compression types
    gzip_types
        application/atom+xml
        application/geo+json
        application/javascript
        application/x-javascript
        application/json
        application/ld+json
        application/manifest+json
        application/rdf+xml
        application/rss+xml
        application/xhtml+xml
        application/xml
        font/eot
        font/otf
        font/ttf
        image/svg+xml
        text/css
        text/javascript
        text/plain
        text/xml;

    # Static assets, media
    location ~* \.(?:css(\.map)?|js(\.map)?|jpe?g|png|gif|ico|cur|heic|webp|tiff?|mp3|m4a|aac|ogg|midi?|wav|mp4|mov|webm|mpe?g|avi|ogv|flv|wmv)$ {
        expires    90d;
        access_log off;
    }

    # SVG, fonts
    location ~* \.(?:svgz?|ttf|ttc|otf|eot|woff2?)$ {
        add_header Access-Control-Allow-Origin "*";
        expires    90d;
        access_log off;
    }
}

Após a configuração, habilite o novo bloco de servidor:

sudo ln -s /etc/nginx/sites-available/phpbb.conf /etc/nginx/sites-enabled/

Agora você pode verificar a configuração:

sudo nginx -t 

Se tudo estiver configurado corretamente, você verá:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Reinicie o serviço Nginx para tornar o phpBB acessível através da interface web:

sudo systemctl restart nginx

Isso conclui a instalação backend do phpBB.

Implementando criptografia SSL com Let's Encrypt (opcional)

Se você pretende proteger seu servidor Nginx com HTTPS, uma escolha inteligente seria utilizar Let's Encrypt. Let's Encrypt é uma autoridade de certificação confiável, gratuita e totalmente automatizada, governada pela organização sem fins lucrativos Internet Security Research Group (ISRG).

Instalando Certbot

Nosso primeiro passo envolve a instalação do pacote Certbot. Certbot é um cliente eficiente para Let's Encrypt que pode automatizar a emissão e instalação de certificados sem tempo de inatividade. Ele também possui uma interface de linha de comando bastante rica.

Para instalar o pacote Certbot, use o seguinte comando:

sudo apt install python3-certbot-nginx -y

Criando seu certificado

Com o Certbot instalado, agora podemos gerar seu certificado SSL. Este procedimento envolve a execução do seguinte comando:

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email you@example.com -d forums.example.com

O comando que emitimos facilita uma configuração ideal, que inclui redirecionamentos HTTPS 301 forçados, um cabeçalho Strict-Transport-Security e estabilidade OCSP. Cada um desses elementos contribui para a segurança do seu servidor.

Substituir 'you@example.com' e 'forums.example.com' pelo seu e-mail e nome de domínio é crucial.

Transição para HTTPS

Após a execução bem-sucedida desses comandos, seu fórum agora deverá estar acessível via HTTPS em https://forums.example.com em vez do anterior http://forum.example.com. Qualquer tentativa de acessar o URL HTTP antigo será redirecionada perfeitamente para a versão HTTPS segura.

Para ler mais sobre como proteger o Nginx, consulte nosso guia detalhado sobre Como proteger o Nginx com Let's Encrypt no Debian Linux.

Conclua a instalação da interface da web do phpBB

Depois de configurar o backend com sucesso, faremos agora a transição para o frontend para concluir a instalação do phpBB. Você pode acessar a página de instalação visitando o URL designado do fórum phpBB. Para fins ilustrativos, estamos usando https://forums.linuxcapable.com.

Iniciando a instalação

Ao visitar o URL especificado, você chegará à página de instalação do phpBB. Inicie o processo clicando no botão de instalação no canto superior esquerdo da página.

Você será direcionado para uma página detalhando os requisitos mínimos do sistema e outras especificações técnicas essenciais para o phpBB.

Assim que seu sistema atender a esses pré-requisitos, clique em Instalar na parte inferior da página.

Configurando a conta de administrador

A próxima etapa envolve a criação de sua conta de administrador do phpBB. Uma senha forte para esta conta é vital para recuperação e segurança geral.

Configurando detalhes do banco de dados

Depois de estabelecer sua conta de administrador, você será solicitado a fornecer detalhes do banco de dados. Mantenha o padrão 'MySQL com extensão MySQLi' e insira 'localhost', a menos que seu banco de dados resida em um servidor diferente. Nesse caso, insira o IP e a porta do servidor (se não for o padrão).

Nosso tutorial utiliza um banco de dados chamado 'phpbb', com 'phpbbuser' como o usuário com acesso concedido (junto com root) ao banco de dados phpBB. Mantenha o prefixo padrão 'phpbb_', a menos que você planeje hospedar vários fóruns; nesse caso, alterar o prefixo pode ajudar a diferenciá-los.

Finalizando a configuração do servidor

A seguir, você terá a oportunidade de definir as configurações do servidor. As configurações padrão deverão ser suficientes se você não estiver executando SSL. No entanto, se você implementou SSL, ajuste as configurações para alinhá-las aos seus requisitos específicos.

Configuração SMTP

Após a configuração do servidor, você pode estabelecer configurações de SMTP, se aplicável. Caso contrário, você pode pular esta etapa e prosseguir com as configurações padrão.

Estabelecendo detalhes do fórum

Por fim, designe o título do seu fórum e escolha o idioma desejado. Se não tiver certeza sobre o título do fórum, use a opção padrão por enquanto; você sempre pode revisá-lo mais tarde.

Ao concluir essas etapas, você deverá chegar a uma tela final, confirmando o sucesso da instalação do seu fórum phpBB, junto com um link direcionando você para o ACP (Painel de Controle Administrativo). Se você encontrar algum erro, talvez seja necessário revisitar as etapas anteriores para garantir que nenhuma etapa ou permissão foi ignorada.

Conclusão da instalação e configuração do phpBB

Excluir diretório de instalação do phpBB

Parabéns por chegar nesta fase. Após seu login inicial no Painel de Controle de Administração do phpBB (ACP), você será saudado com um alerta vermelho proeminente instruindo-o a renomear ou eliminar seu diretório de instalação. É altamente recomendável que você exclua este diretório em vez de apenas movê-lo. Para fazer isso, execute o seguinte comando em seu terminal:

sudo rm -R /var/www/html/phpbb/install

Se você não fizer isso, provavelmente descobrirá que seu fórum não poderá ser usado até que você remova o diretório de instalação:

Configurando as permissões CHMOD corretas (etapa vital)

Enquanto estamos envolvidos com os comandos do terminal, é crucial atribuir as permissões CHMOD apropriadas após a instalação. Ignorar esta etapa pode expor seu sistema a vulnerabilidades de segurança significativas, então execute isso exatamente ou utilize seu método se você acredita que é superior, mas evite manter as permissões padrão!!

Execute os seguintes comandos:

sudo find /var/www/html/phpbb -type d -exec chmod 755 {} \;
sudo find /var/www/html/phpbb -type f -exec chmod 644 {} \;

Posteriormente, precisamos conceder algumas permissões especiais a determinados diretórios e arquivos:

sudo chmod 777 -R /var/www/html/phpbb/files
sudo chmod 777 -R /var/www/html/phpbb/cache
sudo chmod 777 -R /var/www/html/phpbb/store
sudo chmod 777 -R /var/www/html/phpbb/images/avatars/upload

Negligenciar isso prejudicará as funções do seu conselho. Certifique-se de seguir estritamente esses caminhos; caso contrário, você poderá conceder inadvertidamente acesso irrestrito de leitura e gravação a todo o diretório phpBB, reintroduzindo um problema de segurança.

Instituindo um Cronjob para phpBB (recomendado)

A etapa final deste guia é estabelecer um cronjob. Em fóruns com tráfego substancial ou tempos de resposta lentos, é recomendado configurar cron jobs para serem executados a cada 5 minutos, de acordo com as diretrizes do phpBB. Veja como fazer isso.

Inicie o crontab com este comando:

sudo crontab -e

Opção para o primeiro cronjob:

*/5 * * * * /usr/bin/php /var/www/html/phpbb/bin/phpbbcli.php cron:run > /dev/null 2>&1

Para salvar, pressione CTRL+O e para sair, pressione CTRL+X. Se feito corretamente, você verá a seguinte resposta em seu terminal:

crontab: installing new crontab

Esta resposta indica que o cronjob está ativo e funcionando. Embora o phpBB recomende executar cronjobs a cada 5 minutos, você pode ajustar a frequência para atender às suas necessidades.

Por fim, retorne ao painel de administração do phpBB e habilite o cron job do servidor nas configurações do servidor.

Com essas etapas, você concluiu a fase de pós-instalação da instalação do phpBB no Debian.

Conclusão

Com o phpBB instalado com sucesso em seu sistema Debian usando NGINX, MariaDB e PHP, agora você pode criar e gerenciar uma comunidade online robusta. Certifique-se de atualizar regularmente todos os componentes para manter a segurança e o desempenho. Aproveite a flexibilidade e o poder que esta configuração traz ao seu fórum phpBB, proporcionando uma experiência integrada e envolvente para seus usuários.

Joshua James
Me siga
Últimos posts por Joshua James (exibir todos)

Deixe um comentário