Pesquisa de site

Como instalar o software da comunidade Flarum no Ubuntu 24.04


Nesta página

  1. Pré-requisitos
  2. Passo 1 - Configurar Firewall
  3. Passo 2 - Instale o Nginx
  4. Passo 3 – Instale o PHP
  5. Passo 4 - Instalar o Compositor
  6. Passo 5 - Instale o MariaDB
  7. Passo 6 - Configurar MariaDB
  8. Passo 7 - Instale o Flarum
  9. Passo 8 – Instalar SSL
  10. Passo 9 - Configurar PHP-FPM
  11. Etapa 10 – Configurar o Nginx
  12. Etapa 11 - Acesse e conclua a instalação do Flarum

    1. Habilitar 2FA
    2. Definir configurações de e-mail
  13. Passo 12 - Atualizar Flarum
  14. Passo 12 - Backup e restauração do Flarum
  15. Conclusão

Flarum é um software de discussão de código aberto que é o sucessor combinado das placas esoTalk e FluxBB. Ele é escrito em PHP e sua interface é desenvolvida em Mithril, uma estrutura JavaScript com um tamanho pequeno. É responsivo, rápido e oferece suporte a extensões por meio de uma poderosa API de extensão. Também é leve, por isso pode ser executado em um servidor bastante mais barato.

Neste tutorial, aprenderemos como instalar o Flarum Community Software em um servidor baseado em Ubuntu 24.04.

Pré-requisitos

    Um servidor executando Ubuntu 24.04.

    Um usuário não root com privilégios sudo.

    Um nome de domínio totalmente qualificado (FQDN) como flarum.example.com apontando para o seu servidor.

    Certifique-se de que seu servidor tenha o armazenamento swap habilitado se você estiver em um servidor com 1 GB de RAM.

    Certifique-se de que tudo esteja atualizado.

    $ sudo apt update && sudo apt upgrade
    

    Alguns pacotes essenciais são necessários para a execução do tutorial e do Flarum. Alguns deles já estarão em seu servidor.

    $ sudo apt install wget curl nano ufw software-properties-common dirmngr apt-transport-https gnupg2 ca-certificates lsb-release ubuntu-keyring unzip -y
    

Passo 1 - Configurar Firewall

O primeiro passo é configurar o firewall. O Debian vem com ufw (Firewall Descomplicado) por padrão.

Verifique se o firewall está em execução.

$ sudo ufw status

Você obterá a seguinte saída.

Status: inactive

Permita a porta SSH para que o firewall não interrompa a conexão atual ao ativá-lo.

$ sudo ufw allow OpenSSH

Permita portas HTTP e HTTPS também.

$ sudo ufw allow http
$ sudo ufw allow https

Habilite o Firewall

$ sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup

Verifique o status do firewall novamente.

$ sudo ufw status

Você deverá ver uma saída semelhante.

Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
80/tcp                     ALLOW       Anywhere
443                        ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)
80/tcp (v6)                ALLOW       Anywhere (v6)
443 (v6)                   ALLOW       Anywhere (v6)

Passo 2 - Instale o Nginx

O Ubuntu 24.04 vem com uma versão mais antiga do Nginx. Para instalar a versão mais recente, você precisa baixar o repositório oficial do Nginx.

Importe a chave de assinatura do Nginx.

$ curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
    | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null

Adicione o repositório para a versão estável do Nginx.

$ echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \
http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" \
    | sudo tee /etc/apt/sources.list.d/nginx.list

Configure a fixação do repositório para dar preferência ao repositório oficial em vez dos pacotes do Ubuntu.

echo -e "Package: *\nPin: origin nginx.org\nPin: release o=nginx\nPin-Priority: 900\n" \
    | sudo tee /etc/apt/preferences.d/99nginx

Atualize os repositórios do sistema.

$ sudo apt update

Instale o Nginx.

$ sudo apt install nginx

Verifique a instalação.

$ nginx -v
nginx version: nginx/1.26.1

Inicie o servidor Nginx.

$ sudo systemctl start nginx

Verifique o status do serviço.

$ sudo systemctl status nginx
? nginx.service - nginx - high performance web server
     Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; preset: enabled)
     Active: active (running) since Mon 2024-06-03 10:41:52 UTC; 2s ago
       Docs: https://nginx.org/en/docs/
    Process: 1817 ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf (code=exited, status=0/SUCCESS)
   Main PID: 1818 (nginx)
      Tasks: 3 (limit: 4543)
     Memory: 2.9M (peak: 3.1M)
        CPU: 15ms
     CGroup: /system.slice/nginx.service
             ??1818 "nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf"
             ??1819 "nginx: worker process"
             ??1820 "nginx: worker process"

Jun 03 10:41:52 flarum systemd[1]: Starting nginx.service - nginx - high performance web server...
Jun 03 10:41:52 flarum systemd[1]: Started nginx.service - nginx - high performance web server.

Abra o endereço IP do seu servidor no seu navegador. Você deverá ver a página a seguir, o que significa que seu servidor está instalado e funcionando.

Passo 3 – Instale o PHP

Ubuntu 24.04 vem com PHP 8.3 por padrão. Você pode instalá-lo executando o seguinte comando.

$ sudo apt install php-cli php-fpm php-mysql php-xml php-gd php-json php-mbstring php-zip php-curl -y

Para ficar sempre atualizado com a versão mais recente do PHP ou se quiser instalar várias versões do PHP, adicione o repositório PHP do Ondrej.

Adicione o repositório PHP de Ondrej Sury.

$ sudo add-apt-repository ppa:ondrej/php

Atualize a lista de repositórios do sistema.

$ sudo apt update

Você pode ignorar o seguinte erro. O Launchpad não oferece suporte ao algoritmo de criptografia mais forte exigido pelo Ubuntu 24.04. A mensagem deve desaparecer em breve.

A seguir, instale o PHP e as extensões exigidas pelo Flarum.

$ sudo apt install php8.3-cli php8.3-fpm php8.3-mysql php8.3-xml php8.3-gd php8.3-mbstring php8.3-zip php8.3-curl -y

Verifique se o PHP está funcionando corretamente.

$ php --version

Você deverá ver uma saída semelhante.

PHP 8.3.7 (cli) (built: May 23 2024 12:36:54) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.3.7, Copyright (c) Zend Technologies
    with Zend OPcache v8.3.7, Copyright (c), by Zend Technologies

Passo 4 - Instalar o Compositor

Composer é um gerenciador de dependências para PHP. O Composer é necessário ao Flarum para instalar vários componentes necessários para instalar e executar.

Execute os seguintes comandos para instalar o Composer. Primeiro, pegamos o instalador, verificamos o hash para verificá-lo e, em seguida, executamos o instalador usando a linha de comando do PHP. Em seguida, movemos o binário para o diretório /usr/local/bin.

$ php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
$ php -r "if (hash_file('sha384', 'composer-setup.php') === 'dac665fdc30fdd8ec78b38b9800061b4150413ff2e3b6f88543c636f7cd84f6db9189d43a81e5503cda447da73c7e5b6') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
$ php composer-setup.php
$ php -r "unlink('composer-setup.php');"
$ sudo mv composer.phar /usr/local/bin/composer

Verifique se o Composer está instalado corretamente.

$ composer --version
Composer version 2.7.6 2024-05-04 23:03:15
PHP version 8.3.7 (/usr/bin/php8.3)
Run the "diagnose" command to get more detailed diagnostics output.

Passo 5 - Instale o MariaDB

MariaDB é um substituto imediato do MySQL, o que significa que os comandos para executar e operar o MariaDB são os mesmos do MySQL.

O Ubuntu 24.04, por padrão, vem com o MariaDB 10.11.7, que está um pouco desatualizado. Você precisa usar o repositório oficial para obter a versão estável mais recente do MariaDB. O repositório oficial do Ubuntu 24.04 não está listado na página de download do MariaDB, mas funcionou quando este tutorial foi escrito.

Importe a chave GPG do MariaDB.

$ sudo curl -o /etc/apt/keyrings/mariadb-keyring.pgp 'https://mariadb.org/mariadb_release_signing_key.pgp'

Crie o arquivo de repositório do MariaDB.

$ echo "deb [signed-by=/etc/apt/keyrings/mariadb-keyring.pgp] https://deb.mariadb.org/10.11/ubuntu `lsb_release -cs` main" | sudo tee /etc/apt/sources.list.d/mariadb-server.list

Atualize a lista de repositórios do sistema.

$ sudo apt update

Emita o seguinte comando para instalar o servidor MariaDB.

$ sudo apt install mariadb-server -y

Verifique se o MariaDB está instalado corretamente.

$ mysql --version

Você deverá ver a seguinte saída.

mysql  Ver 15.1 Distrib 10.11.8-MariaDB, for debian-linux-gnu (x86_64) using  EditLine wrapper

Você também pode usar mariadb --version para verificar a versão.

O serviço MariaDB já está habilitado e em execução. Verifique seu status usando o seguinte comando.

$ sudo systemctl status mariadb
? mariadb.service - MariaDB 10.11.8 database server
     Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; preset: enabled)
    Drop-In: /etc/systemd/system/mariadb.service.d
             ??migrated-from-my.cnf-settings.conf
     Active: active (running) since Mon 2024-06-03 11:31:09 UTC; 27s ago
       Docs: man:mariadbd(8)
             https://mariadb.com/kb/en/library/systemd/
    Process: 14981 ExecStartPre=/usr/bin/install -m 755 -o mysql -g root -d /var/run/mysqld (code=exited, status=0/SUCCESS)
    Process: 14983 ExecStartPre=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS)
    Process: 14985 ExecStartPre=/bin/sh -c [ ! -e /usr/bin/galera_recovery ] && VAR= ||   VAR=`cd /usr/bin/..; /usr/bin/galera_recovery`; [ $? -eq 0 ]   && systemctl set-environment _WSREP_START_POSITION=$VAR ||>    Process: 15029 ExecStartPost=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS)
    Process: 15032 ExecStartPost=/etc/mysql/debian-start (code=exited, status=0/SUCCESS)
   Main PID: 15015 (mariadbd)
     Status: "Taking your SQL requests now..."
      Tasks: 14 (limit: 29985)
     Memory: 78.9M (peak: 81.8M)
        CPU: 559ms
     CGroup: /system.slice/mariadb.service
             ??15015 /usr/sbin/mariadbd

Execute o comando a seguir para executar a configuração padrão, como fornecer uma senha root, remover usuários anônimos, proibir login root remotamente e descartar tabelas de teste.

$ sudo mariadb-secure-installation

Será solicitada sua senha de root. Como não temos nenhuma senha de root definida, pressione a tecla Enter para continuar.

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
haven't set the root password yet, you should just press enter here.

Enter current password for root (enter for none): [PRESS ENTER]
OK, successfully used password, moving on...

A seguir, você será perguntado se deseja mudar para o plugin unix_socket. O plugin unix_socket permite que você faça login no MariaDB com suas credenciais de usuário Linux. Escolha n para pular a mudança, pois você já tem uma conta root protegida.

Setting the root password or using the unix_socket ensures that nobody
can log into the MariaDB root user without the proper authorisation.

You already have your root account protected, so you can safely answer 'n'.

Switch to unix_socket authentication [Y/n] n
 ... skipping.

Em seguida, você será perguntado se deseja alterar sua senha root. No Ubuntu 24.04, a conta root do MariaDB está intimamente ligada à manutenção automatizada do sistema, portanto você não deve alterar os métodos de autenticação configurados para a conta. Fazer isso permitiria que uma atualização de pacote interrompesse o sistema de banco de dados, removendo o acesso à conta administrativa. Digite n para continuar.

You already have your root account protected, so you can safely answer 'n'.

Change the root password? [Y/n] n
 ... skipping.

A partir daqui, pressione y e depois Enter para aceitar os padrões para todas as perguntas a seguir. Isso removerá o acesso a usuários anônimos, testará bancos de dados, desabilitará o login root remoto e carregará as alterações.

By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] y
 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] y
 ... Success!

By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] y
 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

É isso. Da próxima vez que você quiser fazer login no shell MariaDB, use o seguinte comando.

$ sudo mysql

Digite sua senha root do Linux quando solicitado.

Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 37
Server version: 10.11.8-MariaDB-ubu2404 mariadb.org binary distribution

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>

Pressione exit para fechar o shell MariaDB.

Passo 6 - Configurar MariaDB

Faça login no shell MariaDB.

$ sudo mysql

Crie um novo banco de dados MySQL, usuário de banco de dados e senha para sua instalação do Flarum.

MariaDB> CREATE DATABASE flarum;
MariaDB> CREATE USER 'flarumuser'@'localhost' IDENTIFIED BY 'yourpassword';
MariaDB> GRANT ALL PRIVILEGES ON flarum.* TO 'flarumuser'@'localhost';

Substitua flarum, flarumuser e sua senha pelas credenciais de sua escolha. Escolha uma senha forte.

Além disso, crie um usuário administrativo com os mesmos recursos da conta root.

MariaDB> GRANT ALL ON *.* TO 'admin'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;

Libere os privilégios para garantir que eles sejam salvos na sessão atual.

MariaDB> FLUSH PRIVILEGES;

Saia do shell MariaDB.

MariaDB> exit

Passo 7 - Instale o Flarum

Crie um diretório onde o Flarum ficará.

$ sudo mkdir /var/www/flarum -p

Usar a diretiva -p cria diretórios pais que não existiam antes.

Altere a propriedade do diretório Flarum para o usuário Linux atualmente conectado para que você possa executar comandos sem usar sudo.

$ sudo chown -R $USER:$USER /var/www/flarum

Permitir acesso de gravação ao diretório.

$ sudo chmod 775 -R /var/www/flarum

Navegue até a pasta de instalação.

$ cd /var/www/flarum

Baixe e instale o Flarum usando o Composer.

$ composer create-project flarum/flarum .

Altere a propriedade do diretório Flarum para nginx para o servidor Nginx.

$ sudo chown -R nginx:nginx /var/www/flarum

A partir daqui, o Composer precisará de permissões sudo para ser executado, o que não é recomendado. Você também pode alterar as permissões de grupo do diretório para seu usuário Linux e alterá-las de volta para nginx após concluir o Composer. Esta não é uma solução ideal, pois exige que você execute os mesmos comandos repetidamente. Uma solução mais permanente é adicionar seu nome de usuário ao grupo nginx. Execute o seguinte comando para adicionar seu usuário Linux atualmente conectado ao grupo nginx.

$ sudo usermod -a -G nginx $USER

Para aplicar a nova associação ao grupo, saia do servidor e entre novamente ou digite o seguinte.

su - ${USER}

Passo 8 – Instalar SSL

Precisamos instalar o Certbot para gerar o certificado SSL. Você pode instalar o Certbot usando o repositório Debian ou obter a versão mais recente usando a ferramenta Snapd. Estaremos usando a versão Snapd. Ubuntu 24.04 vem com Snapd instalado.

Execute os seguintes comandos para garantir que sua versão do Snapd esteja atualizada.

$ sudo snap install core && sudo snap refresh core

Instale o Cerbot.

$ sudo snap install --classic certbot

Use o comando a seguir para garantir que o comando Certbot possa ser executado criando um link simbólico para o diretório /usr/bin.

$ sudo ln -s /snap/bin/certbot /usr/bin/certbot

Verifique se o Certbot está funcionando corretamente.

$ certbot --version
certbot 2.10.0

Gere o certificado SSL.

$ sudo certbot certonly --nginx --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email  -d flarum.example.com

O comando acima fará download de um certificado para o diretório /etc/letsencrypt/live/flarum.example.com em seu servidor.

Gere um certificado do grupo Diffie-Hellman.

$ sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096

Verifique o serviço de agendamento de renovação do Certbot.

$ sudo systemctl list-timers

Você encontrará snap.certbot.renew.service como um dos serviços programados para execução.

NEXT                            LEFT LAST                           PASSED UNIT                           ACTIVATES                 
---------------------------------------------------------------------------------------------------------------------------------
Mon 2024-06-03 11:39:00 UTC      36s Mon 2024-06-03 11:09:06 UTC 29min ago phpsessionclean.timer          phpsessionclean.service
Mon 2024-06-03 13:09:56 UTC 1h 31min Mon 2024-06-03 10:34:09 UTC         - motd-news.timer                motd-news.service
Mon 2024-06-03 21:58:00 UTC      10h -                                   - snap.certbot.renew.timer       snap.certbot.renew.service

Faça uma simulação do processo para verificar se a renovação do SSL está funcionando bem.

$ sudo certbot renew --dry-run

Se você não encontrar erros, está tudo pronto. Seu certificado será renovado automaticamente.

Passo 9 - Configurar PHP-FPM

Abra o arquivo /etc/php/8.3/fpm/pool.d/www.conf.

$ sudo nano /etc/php/8.3/fpm/pool.d/www.conf

Devemos definir o usuário/grupo Unix de processos PHP como nginx. Encontre as linhas user=www-data e group=www-data no arquivo e altere-as para nginx.

; Unix user/group of the child processes. This can be used only if the master
; process running user is root. It is set after the child process is created.
; The user and group can be specified either by their name or by their numeric
; IDs.
; Note: If the user is root, the executable needs to be started with
;       --allow-to-run-as-root option to work.
; Default Values: The user is set to master process running user by default.
;                 If the group is not set, the user's group is used.
user = nginx
group = nginx
...

Encontre as linhas listen.owner=www-data e listen.group=www-data no arquivo e altere-as para nginx.

; Set permissions for unix socket, if one is used. In Linux, read/write
; permissions must be set in order to allow connections from a web server. Many
; BSD-derived systems allow connections regardless of permissions. The owner
; and group can be specified either by name or by their numeric IDs.
; Default Values: Owner is set to the master process running user. If the group
;                 is not set, the owner's group is used. Mode is set to 0660.
listen.owner = nginx
listen.group = nginx

Salve o arquivo pressionando Ctrl + X e digitando Y quando solicitado.

Aumente o tamanho do upload do arquivo para 8 MB.

$ sudo sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 8M/' /etc/php/8.3/fpm/php.ini

Reinicie o serviço PHP-FPM.

$ sudo systemctl restart php8.3-fpm

Mude o grupo do diretório de sessões PHP para Nginx.

$ sudo chgrp -R nginx /var/lib/php/sessions

Etapa 10 – Configurar o Nginx

Execute o seguinte comando para adicionar um arquivo de configuração ao seu site.

$ sudo nano /etc/nginx/conf.d/flarum.conf

Cole o seguinte código no editor.

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

    server_name flarum.example.com;

    # redirect http to https
    return 301 https://flarum.example.com$request_uri;
}

server {
    listen [::]:443 ssl;
    listen 443 ssl;
    
    http2 on;

    server_name flarum.example.com;

    access_log /var/log/nginx/flarum.access.log;
    error_log  /var/log/nginx/flarum.error.log;

    root /var/www/flarum/public;
    index index.php;

    include /var/www/flarum/.nginx.conf;

    client_max_body_size 8M;

    if ($host != "flarum.example.com") {
        return 301 $scheme://flarum.example.com$request_uri;
    }

    # SSL code
    ssl_certificate /etc/letsencrypt/live/flarum.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/flarum.example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/flarum.example.com/chain.pem;
    ssl_session_timeout 1d;
    ssl_session_cache shared:MozSSL:10m;
    ssl_session_tickets off;
    ssl_prefer_server_ciphers off;
    ssl_stapling on;
    ssl_stapling_verify on;
    ssl_dhparam /etc/ssl/certs/dhparam.pem;
    resolver 1.1.1.1 1.0.0.1 [2606:4700:4700::1111] [2606:4700:4700::1001] 8.8.8.8 8.8.4.4 [2001:4860:4860::8888] [2001:4860:4860::8844] valid=60s;
    resolver_timeout 2s;

    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;

    tcp_nopush on;
    types_hash_max_size 2048;

    location ~ \.php$ {
        fastcgi_pass  unix:/run/php/php8.3-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_index index.php;
        include  fastcgi_params;
    }
}

Este arquivo pressupõe que hospedaremos example.com no diretório /var/www/flarum/public. O Flarum vem com algumas configurações padrão do Nginx no arquivo /var/www/flarum/.nginx.conf que incluímos em nossa configuração do Nginx usando a seguinte diretiva.

include /var/www/flarum/.nginx.conf;

Quando terminar, pressione Ctrl + X para fechar o editor e pressione Y quando solicitado para salvar o arquivo.

Abra o arquivo /etc/nginx/nginx.conf para edição.

$ sudo nano /etc/nginx/nginx.conf	

Adicione a seguinte linha antes da linha include /etc/nginx/conf.d/*.conf;.

server_names_hash_bucket_size 64;

Salve o arquivo pressionando Ctrl + X e digitando Y quando solicitado. Teste a configuração do Nginx.

$ sudo nginx -t

Você deverá ver a seguinte saída indicando que sua configuração está correta.

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

Recarregue o serviço Nginx.

$ sudo systemctl reload nginx

Etapa 11 - Acesse e conclua a instalação do Flarum

Abra http://example.com em seu navegador para concluir a instalação.

Preencha os valores obrigatórios do banco de dados que criamos acima. Você pode deixar a entrada Table Prefix em branco para permitir que o Flarum use o prefixo padrão ou pode inserir qualquer prefixo personalizado como fla_. Escolha um nome de usuário, senha forte e ID de e-mail para instalar o Flarum.

Clique no botão Instalar Flarum para finalizar a instalação.

Uma vez instalado, você será saudado com a página inicial padrão do Flarum.

Seu fórum agora está instalado e pronto para uso.

Habilitar 2FA

A autenticação de dois fatores é um recurso essencial para qualquer fórum público. Flarum não vem com o recurso nativamente, mas você pode habilitá-lo instalando uma extensão para o mesmo. A extensão para o mesmo está disponível via GitHub.

Para instalar o plugin, primeiro vá para o diretório Flarum.

$ cd /var/www/flarum

Instale o plugin usando o Composer.

$ composer require ianm/twofactor:"*"

O próximo passo é habilitar o plugin no painel de administração do Flarum. Clique no seu nome no canto superior direito da página inicial e clique no link Administração no menu suspenso.

Você será levado ao painel de administração. Selecione o recurso 2FA no menu esquerdo e ative-o. Você não precisa alterar nada, pois as configurações padrão devem funcionar bem.

Se você deseja que os moderadores do fórum tenham 2FA ativado, clique no botão Mods e ative a configuração 2FA obrigatório. Clique no botão Salvar alterações para finalizar.

Para habilitar 2FA para sua conta, abra a página de configurações no menu superior direito da página inicial do fórum. Abra a página Segurança selecionando na barra lateral esquerda.

Clique no botão Ativar 2FA e o seguinte pop-up será aberto.

Digitalize o código QR ou escolha a opção manual usando seu aplicativo 2FA e insira o código gerado na caixa. Clique no botão Verificar quando terminar. Serão mostrados códigos de backup. Salve-os e clique no botão para prosseguir.

Você será solicitado a confirmar novamente. Clique no botão Ok para continuar. O processo agora está concluído.

Definir configurações de e-mail

Você também precisará definir as configurações de e-mail no painel Administração. Flarum oferece suporte nativo ao serviço Mailgun SMTP ou você pode usar um provedor SMTP externo.

Estamos usando o serviço Amazon SES para o qual selecionamos smtp no menu suspenso do driver de e-mail na página de e-mail. Clique no botão Salvar alterações.

Antes de enviar um e-mail de teste, você precisará instalar um pacote do compositor para fazê-lo funcionar. Mude para o diretório Flarum no servidor.

$ cd /var/www/flarum

Instale o pacote do compositor.

$ composer require guzzlehttp/guzzle:^7.0

Retorne à página de configurações de e-mail e clique no botão Enviar para enviar um e-mail de teste. A página notificará se o e-mail foi enviado com sucesso. Você deve receber o seguinte e-mail.

Se você quiser usar o Mailgun, escolha mailgun no menu suspenso. Preencha os campos obrigatórios e salve as configurações.

Passo 12 - Atualizar Flarum

Você precisa ter a extensão Extension Manager para poder atualizar o Flarum a partir do painel de administração. Instale o Extension Manager usando o seguinte comando.

$ cd /var/www/flarum
$ composer require flarum/extension-manager:*

Abra o painel do administrador e habilite a extensão Extension Manager alternando o botão desabilitado para a direita.

Ao habilitar a extensão, ela deverá ter a seguinte aparência.

Antes de atualizar o fórum, você precisa ativar o modo de manutenção do fórum. A configuração para isso não está disponível no painel de administração. Algumas das configurações estão disponíveis através do arquivo config.php no diretório raiz do Flarum. Mude para o terminal e abra o arquivo config.php para edição.

$ nano /var/www/flarum/config.php

Encontre a linha 'debug' => false, e adicione a seguinte linha depois dela para que tenha a seguinte aparência.

'debug' => false,
'offline' => true,

Quando terminar, pressione Ctrl + X para fechar o editor e pressione Y quando solicitado para salvar o arquivo.

Volte para o painel e clique no botão Verificar atualizações na página inferior do gerenciador de extensão para atualizar o software Flarum. Para usar o gerenciador de extensões para gerenciar atualizações de extensões, verifique a documentação do gerenciador de extensões.

Passo 12 - Backup e restauração do Flarum

A maneira mais simples de fazer backup do Flarum é fazer backup do banco de dados MariaDB. Para fazer isso, use a ferramenta mysqldump através do seguinte comando.

$ sudo mysqldump flarum > flarumbackup.sql

Para restaurar o banco de dados no servidor mais recente, repita todos os comandos da etapa 6 sobre como configurar o MariaDB. Isto criará um banco de dados em branco (flarum) e um usuário do banco de dados com acesso a ele.

Em seguida, execute o seguinte comando para restaurar o fórum.

$ sudo mysql flarum < backup.sql

Para fazer backup dos arquivos, copie toda a pasta /var/www/flarum e restaure-a no novo servidor. Se você estiver alterando a URL, modifique o valor da variável url no arquivo config.php e reconfigure o Nginx para servir o fórum.

Conclusão

Isso conclui nosso tutorial sobre como instalar o software do fórum da comunidade Flarum em um servidor Ubuntu 24.04. Se você tiver alguma dúvida ou feedback, envie-os nos comentários abaixo.

Artigos relacionados: