phpBB è un software per forum open source altamente personalizzabile e ampiamente utilizzato che fornisce una solida piattaforma per la creazione di comunità online. Se combinato con NGINX, MariaDB e PHP, ottieni uno stack potente ed efficiente che garantisce prestazioni elevate e scalabilità per il tuo forum. NGINX funge da server web, MariaDB come sistema di gestione del database e PHP come linguaggio di scripting lato server, costituendo una solida base per phpBB.
Segui i passaggi descritti in questa guida per installare phpBB su Debian 12, 11 o 10 con NGINX, MariaDB e PHP. Questa configurazione fornirà un ambiente sicuro e ad alte prestazioni per il tuo forum online.
Installa LEMP (Nginx, MariaDB, PHP)
Aggiorna Debian prima dell'installazione di phpBB
Assicurati che il tuo sistema Debian sia aggiornato prima di installare lo stack LEMP. Questo passaggio aiuta a evitare conflitti tra pacchetti e garantisce un'esecuzione regolare dei processi successivi. Inoltre, allinea il tuo sistema con le patch di sicurezza e i miglioramenti software più recenti.
Per aggiornare il tuo sistema, esegui il seguente comando:
sudo apt update && sudo apt upgrade
Il comando sudo apt update aggiorna l'elenco dei pacchetti disponibili e le relative versioni, mentre sudo apt upgrade installa le ultime versioni dei pacchetti.
Installa NGINX (stack LEMP parte 1)
NGINX, un server HTTP open source e ad alte prestazioni e proxy inverso, è la pietra angolare dello stack LEMP. Per installare NGINX, esegui il seguente comando:
sudo apt install nginx
Dopo l'installazione di NGINX, il servizio solitamente si avvia automaticamente. Tuttavia, è buona norma confermarlo e assicurarsi che funzioni come previsto. Puoi verificare lo stato del servizio NGINX emettendo il seguente comando:
systemctl status nginx
Dovresti vedere un output che indica lo stato attivo (in esecuzione) del servizio NGINX, a conferma del corretto avvio di NGINX. Se il server non è stato avviato per qualsiasi motivo, il seguente comando può avviarlo e anche impostare NGINX per l'avvio automatico al riavvio del sistema:
sudo systemctl enable nginx --now
Questo comando garantisce che il servizio NGINX possa essere avviato all'avvio (enable) e avviato immediatamente (–now).
Facoltativamente, puoi visitare l'indirizzo IP del server per verificare che Nginx sia installato; dovresti vedere una pagina di test simile:
Installa MariaDB (stack LEMP parte 2)
L'installazione del modulo database è il passaggio successivo nella configurazione dello stack LEMP. MariaDB, nota per le sue prestazioni e vari attributi supplementari, è preferita a MySQL all'interno dello stack LEMP. Per installare MariaDB, esegui il seguente comando:
sudo apt install mariadb-server mariadb-client
Passaggio 4: verifica il servizio MariaDB
Una volta installato MariaDB, è fondamentale confermare lo stato del servizio MariaDB. È importante assicurarsi che il servizio MariaDB sia abilitato e funzioni correttamente. Il comando per controllare lo stato del servizio è il seguente:
systemctl status mariadb
È possibile eseguire il comando seguente se il server non è stato attivato. Ciò garantirà che MariaDB venga avviato immediatamente e impostato per l'avvio automatico ad ogni riavvio del sistema.
sudo systemctl enable mariadb --now
Installazione sicura di MariaDB (script di esecuzione di sicurezza)
Proteggere il tuo database è fondamentale per impostare un sistema robusto e affidabile; MariaDB non fa eccezione. Dopo l'installazione, si consiglia vivamente di eseguire lo script di sicurezza fornito con l'installazione. Questo script rafforza l'installazione di MariaDB modificandone le impostazioni predefinite, spesso considerate insicure, proteggendo così il sistema da potenziali accessi o sfruttamenti non autorizzati.
Per eseguire lo script di sicurezza MariaDB, noto come mysql_secure_installation, immetti il seguente comando:
sudo mysql_secure_installation
Una volta eseguito lo script di sicurezza, il passaggio successivo prevede la regolazione di varie impostazioni per migliorare la sicurezza della tua installazione di MariaDB. Queste modifiche includono l'impostazione della password di root, la limitazione dell'accesso remoto, l'eliminazione degli account utente anonimi e la rimozione del database di test. Ognuna di queste modifiche aggiunge un livello di sicurezza alla tua installazione di MariaDB, aiutando a proteggerla da potenziali minacce alla sicurezza.
Esaminiamo ciascuna di queste modifiche:
- Impostazione della password di root: Questa è la password per l'utente root della tua installazione MariaDB. È fondamentale scegliere una password complessa per impedire l'accesso non autorizzato.
- Limitazione dell'accesso remoto: Per impostazione predefinita, l'utente root può accedere al database da qualsiasi posizione. Limitare l'accesso remoto garantisce che l'utente root possa accedere al database solo dal computer locale, riducendo il rischio di attacchi remoti.
- Eliminazione degli account utente anonimi: Gli account utente anonimi non hanno nomi. Questi account rappresentano un rischio per la sicurezza poiché possono essere utilizzati per ottenere l'accesso non autorizzato al database. Lo script di sicurezza ti consente di rimuovere questi account.
- Rimozione del database di test: MariaDB ha un database di test a cui qualsiasi utente può accedere. Questo database non è necessario per l'utilizzo in produzione e può essere rimosso in modo sicuro per ridurre la superficie di attacco.
Prendendoti il tempo necessario per proteggere la tua installazione di MariaDB, stai facendo un passo significativo verso la garanzia dell'integrità e della sicurezza dei tuoi dati.
Installa PHP (stack LEMP parte 3)
Il componente finale dello stack LEMP è il servizio PHP, che funge da ponte tra Nginx e MariaDB. Questo collegamento è realizzato dal servizio PHP-FPM e dai moduli aggiuntivi richiesti da phpMyAdmin. Per installare PHP, PHP-FPM e i moduli richiesti sul tuo sistema Debian, esegui il seguente comando:
sudo apt install php-fpm php php-cli php-mysql php-curl php-common php-mbstring php-xml
Verifica dello stato del servizio PHP
Dopo l'installazione, è fondamentale confermare lo stato del servizio PHP. Questa convalida garantisce che PHP sia abilitato e funzioni perfettamente senza errori. Il comando dipende dalla versione di PHP installata; nel nostro caso era PHP 8.2.
systemctl status php8.2-fpm
Attivazione del servizio PHP
Se il servizio PHP è inattivo, il comando seguente lo abilita e garantisce l'avvio automatico ad ogni riavvio.
sudo systemctl enable php-fpm --now
Questo comando attiverà il servizio PHP-FPM e garantirà che si avvii automaticamente durante ogni avvio del sistema.
Installazione del back-end phpBB
È ora di installare i forum phpBB con lo stack LEMP installato con successo. Al momento di questo tutorial, l'ultima versione è phpBB 3.3.10. Tuttavia, ciò potrebbe cambiare nel tempo, poiché le nuove versioni vengono generalmente lanciate ogni sei mesi. Per verificare la versione corrente, visitare il Pagina di download di phpBB.
Nota: non dimenticare di prendere l'ultimo phpBB-xxxzip e modificare i comandi seguenti; questo è fondamentale.
Scarica phpBB e Configurazione delle directory
Innanzitutto, scarica il pacchetto 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
Successivamente, modifica le autorizzazioni della directory per NGINX:
sudo chown -R www-data:www-data /var/www/html/phpbb
sudo chmod -R 755 /var/www/html/phpbb
Configurazione di MariaDB per phpBB
Ora crea un database per la tua installazione phpBB. Innanzitutto, apri il terminale MariaDB come root:
sudo mysql -u root -p
Crea il database per i tuoi forum:
CREATE DATABASE phpbb;
Crea un nuovo utente del database chiamato phpbbuser
con una nuova password:
CREATE USER 'phpbbuser'@'localhost' IDENTIFIED BY 'new_password_here';
Concedere all'utente l'accesso completo al database:
GRANT ALL ON phpbb.* TO 'phpbbuser'@'localhost' IDENTIFIED BY 'user_password_here' WITH GRANT OPTION;
Svuota i privilegi per applicare le modifiche:
FLUSH PRIVILEGES;
Esci dal terminale MariaDB:
EXIT;
Il tuo database phpBB è ora pronto. Inserisci questi dettagli durante la parte di installazione dell'interfaccia utente Web del tutorial.
Configurazione di PHP per phpBB
Per garantire una corretta installazione di phpBB e il suo funzionamento ottimale, dovresti modificare alcune opzioni nel file php.ini
file di configurazione.
Apri il php.ini
file:
sudo nano /etc/php/{version}/fpm/php.ini
Ricordarsi di sostituire {version}
con la versione specifica di PHP-FPM installata, ad esempio 83., 8.2, 8.1, 8.0 o 7.4.
Individuare le seguenti impostazioni e modificarle come segue:
max_execution_time = 180 max_input_time = 90 memory_limit = 256M upload_max_filesize = 64M
Queste impostazioni sono generalmente standard, ma se utilizzi un VPS con risorse limitate o hosting condiviso, potrebbe essere necessario modificarle a un livello inferiore. Ricorda che ogni installazione di phpBB, come qualsiasi altro sistema CMS, può variare.
Una volta terminato, salva ed esci dal file. Sarà necessario riavviare PHP FPM affinché le modifiche abbiano effetto:
sudo systemctl restart php8.2-fpm
Configurazione di Nginx per phpBB
Nel tuo blocco server Nginx, dichiara l'upstream PHP e quindi le posizioni PHP. Il modo migliore per farlo è creare un nuovo blocco server utilizzando un sottodominio come forums
O community
.
Innanzitutto, crea il blocco server:
sudo nano /etc/nginx/sites-available/phpbb.conf
Copia e incolla quanto segue nel blocco del server, modificando il nome del dominio, SSL, il percorso root e qualsiasi altra cosa in base alle tue esigenze. Non toccare le posizioni o PHP a meno che tu non sappia cosa stai facendo.
Attenzione: il seguente markdown della sintassi di configurazione di Nginx include commenti annotati per guidarti nella personalizzazione della configurazione in base ai tuoi requisiti specifici. Consigliamo vivamente di esaminare attentamente ciascun segmento e di apportare le modifiche appropriate per adattarlo alla configurazione del sistema. La tua attenzione a questi dettagli è molto apprezzata.
# 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;
}
}
Dopo la configurazione, abilita il nuovo blocco server:
sudo ln -s /etc/nginx/sites-available/phpbb.conf /etc/nginx/sites-enabled/
Ora puoi controllare la configurazione:
sudo nginx -t
Se tutto è impostato correttamente, vedrai:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Riavvia il servizio Nginx per rendere phpBB accessibile tramite l'interfaccia utente web:
sudo systemctl restart nginx
Questo completa l'installazione del backend di phpBB.
Implementazione della crittografia SSL con Let's Encrypt (facoltativo)
Se intendi proteggere il tuo server Nginx con HTTPS, una scelta intelligente sarebbe quella di utilizzare Let's Encrypt. Let's Encrypt è un'autorità di certificazione affidabile, gratuita e completamente automatizzata, gestita dall'Internet Security Research Group (ISRG) senza scopo di lucro.
Installazione di Certbot
Il nostro primo passo prevede l'installazione del pacchetto Certbot. Certbot è un client efficiente per Let's Encrypt in grado di automatizzare l'emissione e l'installazione dei certificati senza tempi di inattività. Ha anche un'interfaccia a riga di comando abbastanza ricca.
Per installare il pacchetto Certbot, utilizzare il seguente comando:
sudo apt install python3-certbot-nginx -y
Creazione del certificato
Con Certbot installato, ora possiamo generare il tuo certificato SSL. Questa procedura prevede l'esecuzione del seguente comando:
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email you@example.com -d forums.example.com
Il comando che abbiamo emesso facilita una configurazione ottimale, che include la forzatura dei reindirizzamenti HTTPS 301, un'intestazione Strict-Transport-Security e la stabilità OCSP. Ciascuno di questi elementi contribuisce alla sicurezza del tuo server.
Sostituire "tu@example.com" e "forums.example.com" con la tua email e il nome di dominio è fondamentale.
Transizione a HTTPS
Dopo aver eseguito correttamente questi comandi, il tuo forum dovrebbe ora essere accessibile tramite HTTPS all'indirizzo https://forums.example.com anziché al precedente http://forum.example.com. Qualsiasi tentativo di accedere al vecchio URL HTTP verrà reindirizzato senza problemi alla versione HTTPS sicura.
Per ulteriori letture sulla protezione di Nginx, fare riferimento alla nostra guida dettagliata su Come proteggere Nginx con Let's Encrypt su Debian Linux.
Completa l'installazione dell'interfaccia utente Web di phpBB
Dopo aver configurato con successo il backend, passeremo ora al frontend per completare l'installazione di phpBB. Puoi accedere alla pagina di installazione visitando l'URL del forum phpBB designato. A scopo illustrativo, utilizziamo https://forums.linuxcapable.com.
Avvio dell'installazione
Dopo aver visitato l'URL specificato, arriverai alla pagina di installazione di phpBB. Avviare il processo facendo clic sul pulsante di installazione nell'angolo in alto a sinistra della pagina.
Verrai quindi indirizzato a una pagina che descrive in dettaglio i requisiti minimi di sistema e altre specifiche tecniche essenziali per phpBB.
Una volta che il tuo sistema soddisfa questi prerequisiti, fai clic su Installa nella parte inferiore della pagina.
Configurazione dell'account amministratore
La fase successiva prevede la creazione del tuo account amministratore phpBB. Una password complessa per questo account è vitale per il ripristino e la sicurezza generale.
Configurazione dei dettagli del database
Dopo aver stabilito il tuo account amministratore, ti verrà richiesto di fornire i dettagli del database. Mantieni l'impostazione predefinita "MySQL con estensione MySQLi" e inserisci "localhost" a meno che il tuo database non risieda su un server diverso. In tal caso, inserisci l'IP e la porta del server (se non è l'impostazione predefinita).
Il nostro tutorial utilizza un database denominato "phpbb", con "phpbbuser" come utente a cui è concesso l'accesso (insieme a root) al database phpBB. Mantieni il prefisso predefinito 'phpbb_', a meno che non prevedi di ospitare più forum, nel qual caso la modifica del prefisso può aiutare a differenziarli.
Finalizzazione della configurazione del server
Successivamente, avrai l'opportunità di configurare le impostazioni del tuo server. Le configurazioni predefinite dovrebbero essere sufficienti se non stai utilizzando SSL. Tuttavia, se hai implementato SSL, modifica le impostazioni per allinearle ai tuoi requisiti specifici.
Configurazione SMTP
Dopo la configurazione del server è possibile definire le impostazioni SMTP, se applicabili. In caso contrario, puoi saltare questo passaggio e procedere con le impostazioni predefinite.
Stabilire i dettagli del forum
Infine, designa il titolo del tuo forum e scegli la lingua desiderata. Se non sei sicuro del titolo del forum, per ora utilizza l'opzione predefinita; puoi sempre rivederlo in seguito.
Dopo aver completato questi passaggi, dovresti raggiungere una schermata conclusiva, che conferma la corretta installazione del tuo forum phpBB, insieme a un collegamento che ti indirizza all'ACP (pannello di controllo amministratore). Se riscontri errori, potrebbe essere necessario rivisitare i passaggi precedenti per assicurarti che nessun passaggio o autorizzazione sia stato trascurato.
Completamento dell'installazione e della configurazione di phpBB
Elimina la directory di installazione di phpBB
Congratulazioni per aver raggiunto questa fase. Al tuo accesso iniziale al pannello di controllo amministrativo di phpBB (ACP), verrai accolto con un avviso rosso in evidenza che ti chiederà di rinominare o eliminare la directory di installazione. Si consiglia vivamente di eliminare questa directory anziché semplicemente spostarla. Per fare ciò, esegui il seguente comando nel tuo terminale:
sudo rm -R /var/www/html/phpbb/install
Se non lo fai, molto probabilmente scoprirai che il tuo forum non potrà essere utilizzato finché non avrai rimosso la directory di installazione:
Impostazione delle autorizzazioni CHMOD corrette (passaggio fondamentale)
Mentre siamo impegnati con i comandi del terminale, è fondamentale assegnare le autorizzazioni CHMOD appropriate dopo l'installazione. Ignorare questo passaggio potrebbe esporre il tuo sistema a significative vulnerabilità della sicurezza, quindi eseguilo esattamente o utilizza il tuo metodo se ritieni che sia superiore, ma astieniti dal mantenere le autorizzazioni predefinite!!
Esegui i seguenti comandi:
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 alcuni permessi speciali a determinate directory e file:
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
Trascurare di farlo interromperà le funzioni del tuo tabellone. Assicurati di aderire rigorosamente a questi percorsi; in caso contrario, potresti inavvertitamente concedere all'intera directory phpBB accesso illimitato in lettura e scrittura, reintroducendo un problema di sicurezza.
Istituire un Cronjob per phpBB (consigliato)
Il passaggio conclusivo di questa guida è la creazione di un cronjob. Sui forum con traffico consistente o tempi di risposta lenti, si consiglia di configurare i lavori cron in modo che vengano eseguiti ogni 5 minuti, secondo le linee guida di phpBB. Ecco come farlo.
Avvia crontab con questo comando:
sudo crontab -e
Opzione per il primo cronjob:
*/5 * * * * /usr/bin/php /var/www/html/phpbb/bin/phpbbcli.php cron:run > /dev/null 2>&1
Per salvare, premere CTRL+O e per uscire, premere CTRL+X. Se fatto correttamente, vedrai la seguente risposta nel tuo terminale:
crontab: installing new crontab
Questa risposta indica che il cronjob è attivo e funzionante. Anche se phpBB consiglia di eseguire i cronjob ogni 5 minuti, puoi regolare la frequenza in base alle tue esigenze.
Infine, torna al pannello di amministrazione di phpBB e abilita il processo cron del server nelle impostazioni del server.
Con questi passaggi, hai completato la fase post-installazione per la tua installazione di phpBB su Debian.
Conclusione
Con phpBB installato con successo sul tuo sistema Debian utilizzando NGINX, MariaDB e PHP, ora puoi creare e gestire una solida comunità online. Assicurati di aggiornare regolarmente tutti i componenti per mantenere la sicurezza e le prestazioni. Goditi la flessibilità e la potenza che questa configurazione apporta al tuo forum phpBB, fornendo un'esperienza fluida e coinvolgente per i tuoi utenti.