Simple Machines Forum

Simple Machines Forum (SMF) é um software de fórum leve e poderoso. É uma boa escolha para hospedar discussões e organizar sua comunidade sem depender de plataformas como Reddit ou Discord.

Dependências

Entre em seu servidor e instale as dependências:

apt install mariadb-server php php-fpm php-gd php-mbstring php-mysql wget

Agora, vamos criar um banco de dados. Rode o comando abaixo e digite sua senha que você escolheu para o usuário root do banco de dados, ou simplesmente pressione Enter se não configurou nenhuma senha.

mysql -u root -p

Em seguida, crie o banco de dados com os seguintes comandos. Altere 'senha' para uma senha de sua escolha e anote-a, pois ela será necessária mais tarde.

CREATE DATABASE smf;
GRANT ALL ON smf.* TO 'smf'@'localhost' IDENTIFIED BY 'senha';
FLUSH PRIVILEGES;
EXIT;

Instalação

Agora, vamos instalar o software em si. Vamos baixar o arquivo zipado com wget, criar uma pasta para armazená-lo com mkdir, extraí-lo com tar, remover o arquivo zipado usando rm, e configurar as devidas permissões para que o nginx consiga acessá-lo com chown.

wget -O smf-latest.tar.gz http://www.simplemachines.org/download/index.php/latest/install/
mkdir -pv /var/www/smf
tar -xzf smf-latest.tar.gz -C /var/www/smf
rm smf-latest.tar.gz
chown -R www-data:www-data /var/www/smf

Configuração Nginx

Vamos configurar o nginx para servir nosso fórum. Crie o seguinte arquivo, alterando forum.exemplo.org para o nome que quiser.

nano /etc/nginx/sites-available/forum.exemplo.org

Dentro desse arquivo, adicione o seguinte conteúdo, substituindo forum.exemplo.org com o domínio ou subdomínio que você deseja usar para seu fórum. Preste também atenção na linha client_max_body_size, ela determina o quão grandes poderão ser os arquivos que serão enviados pelos usuários do seu fórum. Eu estou configurando um valor de 10 megabytes aqui, mas você pode escolher o que quiser.

Também será necessário mudar post_max_size e upload_max_filesize nas configurações do php para alterar o tamanho de uploads permitidos. Faremos isso logo abaixo.

server {
        listen 80;
        listen [::]:80;
	server_name forum.exemplo.org;
        root /var/www/smf;
        index index.php;
        # lembre-se de mudar 'post_max_size' e 'upload_max_filesize' 
	# em /etc/php/8.2/fpm/php.ini
        client_max_body_size 10M;
        
        location / {
                try_files $uri $uri/ =404;
        }

        location ~ \.php$ {
                include snippets/fastcgi-php.conf;
                fastcgi_pass unix:/run/php/php-fpm.sock;
        }
}

Salve e feche o arquivo. Agora, abra o arquivo /etc/php/8.2/fpm/php.ini.

nano /etc/php/8.2/fpm/php.ini

Procure as seguintes linhas e as mude para o valor escolhido em client_max_body_size acima.

post_max_size = 10M
upload_max_filesize = 10M

A documentação também recomenda mudar a linha memory_limit nesse mesmo arquivo para 512M, para melhorar a performance. Sugiro usar esse valor em memory_limit caso seu servidor tenha memória o suficiente para não interferir na sua performance e torná-lo lento. Mas isso é opcional, o fórum ainda vai funcionar caso você não altere esse valor.

memory_limit = 512M

Habilite o site e reinicie o nginx e php para as mudanças surtirem efeito. Lembre-se de mudar forum.exemplo.org para o nome do arquivo que você criou.

ln -s /etc/nginx/sites-available/forum.exemplo.org /etc/nginx/sites-enabled/
systemctl restart nginx
systemctl restart php8.2-fpm

Finalmente, gere um certificado HTTPS para o subdomínio do seu fórum.

certbot --nginx

Finalizando

Para finalizar a instalação, acesse forum.exemplo.org/install.php, essa página vai conter os passos finais para instalar o fórum. Se tudo foi feito corretamente até agora, o instalador não irá reportar nenhum erro. Eu vou te guiar por essa página, mas sugiro usar um tradutor para ajudar a entender melhor o que está acontecendo. Não se preocupe, iremos configurar a interface do fórum para português ao final.

Clique em "Continue" para prosseguir.

O instalador deve pular o passo 2 e ir direto pro 3, "Database Settings". Aqui, na seção onde diz "Username", coloque "smf". Na seção que diz "Password", coloque a senha que criou quando fez o banco de dados. Caso a seção "Database name" contenha algo além de "smf", altere-a para "smf", pois esse foi o nome que escolhemos para nosso banco de dados. Não precisa mexer no resto. Clique em "Continue" ao finalizar.

No passo 4, "Forum Settings", onde diz "Forum name", escolha o nome que você gostaria de dar ao seu fórum, esse nome aparecerá no topo do site. Além disso, a seção "Allow stat Collection" vai estar habilitada por padrão, recomendo clicar nela para desabilitar. Essa opção enviará estatísticas mensalmente para os desenvolvedores do SMF, porém eu prefiro sempre evitar dar estatíscas para proteger minha privacidade. Afinal, mesmo que as pessoas recebendo essas estatísticas sejam confiáveis, nunca se sabe quando pode haver um vazamento de dados, então prefiro evitar dar informações sempre que possível. De qualquer forma, você pode alterar essa opção nas configurações do fórum depois. Clique em "Continue" para prosseguir.

O passo 5, "Database Population" deve ocorrer automaticamente, basta clicar em "Continue" quando ele acabar.

No passo 6, "Admin account", vamos criar uma conta de administrador. Onde diz "Your username", escolha um nome pro admin. Em "Password", escreva uma senha na primeira opção e repita-a na segunda opção. Nas opções "Administrator email address", bote seu email. Em "Webmaster email address", pode botar qualquer email que desejar. Como esse guia não cobriu configuração de um servidor de email, o fórum não será capaz de usar essa funcionalidade para para enviar emails, mas ainda funcionará normalmente, então não importa o que você botar aqui. Você pode alterar ambos esses emails no futuro caso queira. Clique em "Continue" para prosseguir.

No passo 7, "Finalize install", basta clicar na opção que diz "Click here to delete this install.php file now." para deletar o arquivo install.php, impedindo que seu fórum seja configurado por outra pessoa usando esse instalador sem que você fique sabendo. Daí, acesse forum.exemplo.org/index.php para acessar seu fórum pronto!

Como últimos toques, vamos configurar apenas 2 coisas a mais. Clique em Admin -> Features and Options, e digite sua senha se for necessário. Na seção "General", onde diz "Source for the jQuery Library", selecione "Local" e clique em "Save" no final da página, para não depender de servidores de terceiros para carregar a biblioteca jQuery. Então no menu que diz "Configuration", que está entre "Main" e "Forum", selectione Languages -> Add Language. Pesquise por "br", isso deverá encontrar um pacote de linguagem chamado "Portuguese_brazilian", clique em "Install", e novamente clique em "Install" após ver a tela listando todos os arquivos que serão baixados. Após finalizado, vá em "Edit Languages", selecione "Portuguese Brazilian", e clique "Save". Seu fórum agora está em português! Divirta-se com seu fórum!