Come installare phpBB con Nginx (LEMP) su Ubuntu 20.04

phpBB è uno dei più estesi software di forum forum open source sul mercato. Con l'ascesa di piattaforme di social media come Reddit, Facebook, Twitter e piattaforme di chat online come discord, abbiamo visto diminuire le comunità di forum di bollettini online. Personalmente, sembra che stiano lentamente tornando in auge in specifiche comunità di nicchia rispetto alle nuove aggiunte, come ho appena detto.

phpBB non è l'unica opzione. Altri come VBulletin, Nodebb, Xenforo e così via, ma la maggior parte di questi sono pagati con recensioni contrastanti. VBulletin era una centrale elettrica, ma ora è l'ombra di se stesso. Xenforo è uno dei software di bollettino più pagati. Tuttavia, questa è solo la mia opinione personale, ma sceglierò sempre prima phpBB perché è gratuito, open-source e ha alcuni ottimi sviluppatori open-source di terze parti, sia nuovi sviluppatori che quelli che sono in circolazione dall'inizio.

Oggi esamineremo l'installazione di phpBB sul nostro server, insieme ai primi passaggi della configurazione iniziale nel pannello di controllo dell'amministratore. Tieni presente che la guida seguente non spiega come installare NGINX, MariaDB o PHP 7.4 e presuppone che tu abbia questo in ordine. Rilasceremo articoli aggiuntivi su come installare LEMP in tempo con una configurazione completa.

Passaggio 1. Installazione pre-phpBB

Per prima cosa dobbiamo verificare di avere i prerequisiti di PHP-7.4 installati. Raccomandiamo di usare ondrej/PHP sul repository installato di default di Ubuntu in quanto è più aggiornato e ondrej è lo sviluppatore principale che lavora su PHP e Debian. Quindi, i pacchetti sono una scommessa abbastanza sicura per usare il suo repository poiché è più aggiornato.

sudo add-apt-repository ppa:ondrej/php
phpBB Ubuntu 20.04 installa ondrey ppa premi invio

Premi invio per installare il PPA personalizzato.

Se desideri rimuoverlo in futuro, procedi come segue:

sudo apt install ppa-purge \
sudo ppa-purge ppa:ondrej/php

Successivamente, installiamo i prerequisiti.

sudo apt install php7.4-fpm php7.4-common php7.4-mbstring php7.4-xmlrpc php7.4-soap php7.4-gd php7.4-xml php7.4-intl php7.4-mysql php7.4-cli php7.4-ldap php7.4-zip php7.4-mcrypt php7.4-curl php7.4-json php7.4-opcach php7.4-readline php7.4-xml php7.4-gd unzip -y

In secondo luogo, dopo aver installato i prerequisiti, dobbiamo assicurarci di avere il nostro sistema aggiornato poiché il PPA di molti ondrej è più avanti rispetto all'impostazione predefinita di Ubuntu in molti altri pacchetti di supporto.

sudo apt update && sudo apt full-upgrade -y

Installazione principale di phpBB

Per installare phpBB, si consiglia di modificare /etc/php7.4/fpm/php.ini e regolare quanto segue. Tieni presente che puoi avere numeri più alti, ma questo è consigliato come minimo:

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

Opzionale, mentre stai modificando il tuo php.ini, puoi modificare, trovare e cambiare alcuni di quelli sottostanti per rafforzare il tuo server. Ricordati di rimuovere ; per decommentare la riga:

cgi.fix_pathinfo=0
session.use_strict_mode = 1
session.use_cookies = 1
session.cookie_secure = 1
session.use_only_cookies = 1
session.name = BBCookies (Change the name, example: POPme)
session.cookie_lifetime = 0
session.cookie_path = /
session.cookie_domain = bytesboss.com (example only)
session.cookie_httponly = 1
session.cookie_samesite = Strict

Un aspetto critico che devi impostare se intendi utilizzare l'add-on per phpBB per i backup automatici è l'impostazione di un fuso orario in PHP FPM e PHP CLI. Puoi copiare e incollare tutte queste impostazioni e quelle sopra tra entrambi i file php.ini:

php lemp fuso orario

Ora procediamo a creare un database per i tuoi forum utilizzando l'input del terminale MariaDB:

sudo mysql -u root -p

Quindi creare il nome del database. Si consiglia di non utilizzare phpbb come nome se potenzialmente si aggiungeranno forum aggiuntivi a questo database, denominare il database in modo univoco:

CREATE DATABASE phpbb;

Crea un utente del database chiamato phpbbuser con una nuova password:

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

Quindi concediamo all'utente l'accesso completo al database effettuando le seguenti operazioni:

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

Infine, salviamo le nostre modifiche ed usciamo:

FLUSH PRIVILEGES;
EXIT;

Passando alla parte successiva, andremo a scarica l'ultima versione di phpBB. Alla data del 24/05/2021, la versione stabile di phpBB è la 3.3.4, rilasciata nell'aprile 2021. Le versioni stabili variano da 3 a 6 mesi. Scarichiamo phpBB facendo come di seguito:

cd /tmp && https://download.phpbb.com/pub/release/3.3/3.3.4/phpBB-3.3.4.zip

unzip phpBB-3.3.4.zip

sudo mv phpBB3 /var/www/html/phpbb

Durante l'esecuzione dello spostamento, puoi nominare la cartella come preferisci, abbiamo usato solo /www/html/phpbb, ad esempio, ma potrebbe essere /www/html/bytesboss-forums.

Ora dobbiamo modificare l'autorizzazione della directory per NGINX:

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

Configura NGINX

Ora passiamo alla modifica della configurazione del sito del forum NGINX:

Aggiungi il socket upstream per PHP7.4-FPM prima della parte server:

upstream phpbb {
server unix:/run/php/php7.4-fpm.sock;
}

Successivamente, nella nostra scheda Server, aggiungiamo quanto segue:

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

	# Pass the php scripts to FastCGI server specified in upstream declaration.
	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 phpmmo;
		fastcgi_intercept_errors on;	
	}

	# Deny access to internal phpbb files.
	location ~ /(config\.php|common\.php|cache|files|images/avatars/upload|includes|(?<!ext/)phpbb(?!\w+)|store|vendor) {
		deny all;
		# deny was ignored before 0.8.40 for connections over IPv6.
		# Use internal directive to prohibit access on older versions.
		internal;
	}
}

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

# Correctly pass scripts for installer
location /install/ {
	try_files $uri $uri/ @rewrite_installapp =404;

	# Pass the php scripts to fastcgi server specified in upstream declaration.
	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 phpmmo;
		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;
}

Esempio nella modifica di Microsoft Visual Studio di come apparirà approssimativamente, questo non è l'intero file di configurazione ma è solo a scopo illustrativo:

phpBB Ubuntu 20.04 installa solo esempio di configurazione del server Microsoft Visual Nginx

Successivamente, abilitiamo il sito in NGINX:

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

Prova NGINX prima di un riavvio completo:

sudo nginx -t

Nessun errore, quindi puoi procedere al riavvio dell'istanza NGINX:

sudo systemctl restart nginx

Configura phpBB e l'installazione finale.

Se tutto ha funzionato correttamente, ci spostiamo ora all'indirizzo nominato dei tuoi forum phpBB appena installati. Per il nostro esempio, è https://forums.bytesboss.com e, in caso di successo, vedrai la seguente schermata:

phpBB Ubuntu 20.04 installa la prima pagina

Se vedi questo, premi Installa e procedi alla schermata successiva, che sarà molto simile, e premi di nuovo Installa, esempio di seguito:

phpBB Ubuntu 20.04 installa la seconda pagina

Ora entriamo nella nostra prima pagina, dove dobbiamo inserire alcune credenziali. Per prima cosa dobbiamo creare il proprietario/amministratore del sito come evidenziato di seguito. Assicurati di rendere sicura la password e premi invio:

phpBB Ubuntu 20.04 install inserisci i dettagli dell'amministratore, crea e premi invio

Una volta che hai inserito correttamente i tuoi dettagli di amministrazione, passiamo ai dettagli del database. Nel nostro esempio, abbiamo chiamato il nostro database bbforums e il prefisso del database bbforums_ tuttavia, i predefiniti phpbb e phpbb_ funzioneranno, ma come affermato in precedenza, consigliamo di cambiarlo.

Il nome host del database è semplicemente localhost per la maggior parte delle installazioni sullo stesso server, in caso contrario, inserire l'IP del database remoto e inserire il nome utente/password del database che abbiamo creato in precedenza nella guida.

phpBB Ubuntu 20.04 install inserisci i dettagli del database creati con mariadb

Imposta la configurazione del tuo server. Non è necessario modificare le impostazioni predefinite in questo momento per la maggior parte delle installazioni, a meno che non si utilizzi SSL. Premi successivo:

phpBB Ubuntu 20.04 install imposta i cookie e le impostazioni SSL se necessario

Nella pagina successiva, se lo desideri, puoi impostare SMTP. In caso contrario, lascia le impostazioni predefinite e premi Avanti.

phpBB Ubuntu 20.04 installa imposta le impostazioni smtp se necessario

Imposta il nome/titolo della tua bacheca e la lingua. Se non sei sicuro di come nominare i tuoi forum, lascia i valori predefiniti e premi invio. Puoi modificare queste impostazioni in un secondo momento.

phpBB Ubuntu 20.04 install imposta il titolo della scheda, la descrizione e la lingua predefinita

Dopo aver premuto invio, dovresti vedere una schermata finale simile alla seguente con i forum installati e un collegamento che ti porta al pannello ACP. In caso di errori fare riferimento a questa guida, in particolare per quanto riguarda i permessi:

phpBB Ubuntu 20.04 installa la pagina di successo finale

Configurazione post-installazione

Congratulazioni per essere arrivato a questa parte. Dopo aver effettuato l'accesso al tuo pannello ACP per la prima volta, vedrai un grande avviso rosso amichevole che ti dice di rimuovere o rinominare la tua directory di installazione. BytesBoss consiglia di eliminarlo con il seguente comando nel terminale:

sudo rm -R /var/www/html/phpbb/install
phpBB Ubuntu 20.04 avviso post configurazione per eliminare o rinominare la directory di installazione

Mentre sei attivo nell'eseguire i comandi del terminale per la tua cartella phpBB, è fondamentale dopo l'installazione. Impostiamo i permessi chmod corretti. Il la guida ufficiale di phpBB su questo può essere trovata qui. Saltare questo può lasciare aperti alcuni rischi significativi per la sicurezza, quindi per favore segui questo esattamente o nel tuo modo se hai una tecnica migliore ma non lascia i permessi di default!!

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

Successivamente, dobbiamo concedere ad alcune cartelle/file alcuni permessi speciali solo come segue:

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

In caso contrario, le funzioni della scheda verranno interrotte. Assicurati di seguire rigorosamente questi percorsi, o ridona all'intera directory phpBB l'accesso completo in lettura e scrittura al pubblico, causando nuovamente un problema di sicurezza.

L'ultimo passaggio finale nella nostra guida è impostare un cronjob. I cronjob sono consigliati su forum affollati e lenti per impostare i cron job da eseguire ogni 5 minuti secondo gli standard phpBB. Possiamo farlo in due modi

Richiama crontab:

sudo crontab -e

Prima opzione cronjob:

* * * * * cd "/path/to/board"; ./bin/phpbbcli.php cron:run

Questo potrebbe entrare in conflitto e non funzionare possibilmente, una soluzione è inserire il CD in /bin/phpbbcli.php e aggiungere chmod +x, oppure ho visto alcuni thread nel forum di phpBB che suggeriscono di impostarlo su 755 chmod permesso, ma questo lascia una sicurezza scappatoia. Se non vuoi farlo, procedi come segue:

* * * * * curl -A=Mozilla/4.0 https://www.yourforum.com/forum/cron.php?cron_type=cron.task.cron_task

Esempio di come potrebbe apparire di seguito:

phpBB Ubuntu 20.04 dopo la configurazione cronjab, esempio crontab

Non dimenticare di abilitare questa opzione nelle impostazioni del server come nell'esempio seguente:

phpBB Ubuntu 20.04 post config set esegue attività periodiche in cron sulla pagina delle impostazioni del server nel pannello acp

Congratulazioni, hai installato con successo i forum phpBB, impostato un cronjob e sei pronto per iniziare a progettare i tuoi forum e a inviare le modifiche.

Consiglierei di controllare il sito Web ufficiale di phpBB e la wiki in quanto contiene molte informazioni sulla personalizzazione dei tuoi forum che sarebbero troppe da inserire in questa guida che abbiamo creato qui.
Esempio dell'aspetto predefinito una volta installato:

phpBB Ubuntu 20.04 dopo la configurazione prima occhiata

Commenti e Conclusione:

phpBB è un software gratuito open source provato e testato che non sembra scomparire presto. Per quanto riguarda la sicurezza, il team di phpBB indica di non avere CVE da anni e, durante le indagini su possibili violazioni, ha scoperto che gli utenti non si concentravano su installazioni "sicure", come alcuni dei passaggi che abbiamo indicato nella guida come i permessi di chmod. Non ho mai avuto problemi con un server robusto e rinforzato, configurazione iniziale di phpBB.

La community di terze parti è piuttosto buona. Alcuni di questi da guardare sono SplicerSnap che collaborano con noi, attingono direttamente dalla storia e dalla tradizione veneziana DMZX, ma potrei elencarne una ventina in più degna di essere menzionata.

So che questa guida era lunga, ma spero di esserti stata d'aiuto. Aggiornerò questa guida con qualsiasi feedback ricevo. Per favore fammi sapere come procedi nella configurazione di phpBB. Buona fortuna!

Lascia un tuo commento