phpBB is zeer aanpasbare en veelgebruikte open-source forumsoftware die een robuust platform biedt voor het opbouwen van online communities. In combinatie met NGINX, MariaDB en PHP krijg je een krachtige en efficiënte stack die hoge prestaties en schaalbaarheid voor je forum garandeert. NGINX fungeert als de webserver, MariaDB als het databasebeheersysteem en PHP als de scripttaal aan de serverzijde, en vormt een solide basis voor phpBB.
Volg de stappen in deze handleiding om phpBB te installeren op Debian 12, 11 of 10 met NGINX, MariaDB en PHP. Deze opstelling zorgt voor een krachtige en veilige omgeving voor uw online forum.
LEMP installeren (Nginx, MariaDB, PHP)
Update Debian vóór de installatie van phpBB
Zorg ervoor dat uw Debian-systeem up-to-date is voordat u de LEMP-stack installeert. Deze stap helpt pakketconflicten te voorkomen en zorgt voor een soepele uitvoering van daaropvolgende processen. Het lijnt uw systeem ook uit met de nieuwste beveiligingspatches en softwareverbeteringen.
Om uw systeem bij te werken, voert u de volgende opdracht uit:
sudo apt update && sudo apt upgrade
De opdracht sudo apt update werkt de lijst met beschikbare pakketten en hun versies bij, terwijl de sudo apt upgrade de nieuwste versies van uw pakketten installeert.
Installeer NGINX (LEMP Stack deel 1)
NGINX, een open-source, krachtige HTTP-server en reverse proxy, is de hoeksteen van de LEMP-stack. Om NGINX te installeren, voert u de volgende opdracht uit:
sudo apt install nginx
Na de installatie van NGINX start de service meestal automatisch. Het is echter een goede gewoonte om dit te bevestigen en ervoor te zorgen dat het werkt zoals verwacht. U kunt de status van de NGINX-service verifiëren door de volgende opdracht uit te voeren:
systemctl status nginx
U zou een uitvoer moeten zien die de actieve (actieve) status van de NGINX-service aangeeft, waarmee de succesvolle initiatie van NGINX wordt bevestigd. Als de server om welke reden dan ook niet is gestart, kan de volgende opdracht deze starten en ook instellen dat NGINX automatisch wordt gestart bij het opnieuw opstarten van het systeem:
sudo systemctl enable nginx --now
Deze opdracht zorgt ervoor dat de NGINX-service kan starten bij het opstarten (inschakelen) en onmiddellijk kan starten (–nu).
Optioneel kunt u het IP-adres van de server bezoeken om te verifiëren dat Nginx is geïnstalleerd; u zou een vergelijkbare testpagina moeten zien:
Installeer MariaDB (LEMP Stack deel 2)
Het installeren van de databasemodule is de volgende stap bij het opzetten van de LEMP-stack. MariaDB, bekend om zijn prestaties en diverse aanvullende attributen, heeft binnen de LEMP-stack de voorkeur boven MySQL. Om MariaDB te installeren, voert u de volgende opdracht uit:
sudo apt install mariadb-server mariadb-client
Stap 4: Controleer de MariaDB-service
Nadat MariaDB is geïnstalleerd, is het van cruciaal belang om de status van de MariaDB-service te bevestigen. Het is belangrijk om ervoor te zorgen dat de MariaDB-service is ingeschakeld en correct werkt. Het commando om de status van de service te inspecteren is als volgt:
systemctl status mariadb
U kunt de volgende opdracht uitvoeren als de server niet is geactiveerd. Dit zorgt ervoor dat MariaDB onmiddellijk wordt gestart en automatisch wordt opgestart bij elke herstart van het systeem.
sudo systemctl enable mariadb --now
Veilige MariaDB-installatie (Security Run-Script)
Het beveiligen van uw database is van fundamenteel belang bij het opzetten van een robuust en betrouwbaar systeem; MariaDB is geen uitzondering. Na de installatie wordt het ten zeerste aanbevolen om het beveiligingsscript uit te voeren dat bij de installatie wordt geleverd. Dit script versterkt de MariaDB-installatie door de standaardinstellingen, die vaak als onveilig worden beschouwd, te wijzigen, waardoor het systeem wordt beschermd tegen mogelijke ongeoorloofde toegang of exploitatie.
Om het MariaDB-beveiligingsscript, bekend als mysql_secure_installation, uit te voeren, geeft u de volgende opdracht:
sudo mysql_secure_installation
Zodra het beveiligingsscript is uitgevoerd, bestaat de volgende stap uit het aanpassen van verschillende instellingen om de beveiliging van uw MariaDB-installatie te verbeteren. Deze wijzigingen omvatten het instellen van het root-wachtwoord, het beperken van externe toegang, het elimineren van anonieme gebruikersaccounts en het verwijderen van de testdatabase. Elk van deze aanpassingen voegt een beveiligingslaag toe aan uw MariaDB-installatie, waardoor deze wordt beschermd tegen mogelijke beveiligingsrisico's.
Laten we elk van deze aanpassingen eens nader bekijken:
- Het root-wachtwoord instellen: Dit is het wachtwoord voor de rootgebruiker van uw MariaDB-installatie. Het is van cruciaal belang om een sterk wachtwoord te kiezen om ongeautoriseerde toegang te voorkomen.
- Toegang op afstand beperken: De rootgebruiker heeft standaard vanaf elke locatie toegang tot de database. Het beperken van externe toegang zorgt ervoor dat de rootgebruiker alleen toegang heeft tot de database vanaf de lokale machine, waardoor het risico op aanvallen op afstand wordt verkleind.
- Anonieme gebruikersaccounts elimineren: Anonieme gebruikersaccounts hebben geen naam. Deze accounts vormen een veiligheidsrisico omdat ze kunnen worden gebruikt om ongeautoriseerde toegang tot de database te verkrijgen. Met het beveiligingsscript kunt u deze accounts verwijderen.
- De testdatabase verwijderen: MariaDB heeft een testdatabase waartoe elke gebruiker toegang heeft. Deze database is niet nodig voor productiegebruik en kan veilig worden verwijderd om het aanvalsoppervlak te verkleinen.
Door de tijd te nemen om uw MariaDB-installatie te beveiligen, zet u een belangrijke stap in de richting van het waarborgen van de integriteit en veiligheid van uw gegevens.
PHP installeren (LEMP Stack deel 3)
Het laatste onderdeel van de LEMP-stack is de PHP-service, die fungeert als brug tussen Nginx en MariaDB. Deze overbrugging wordt tot stand gebracht door de PHP-FPM-service en extra modules die vereist zijn door phpMyAdmin. Om PHP, PHP-FPM en de vereiste modules op uw Debian-systeem te installeren, voert u de volgende opdracht uit:
sudo apt install php-fpm php php-cli php-mysql php-curl php-common php-mbstring php-xml
PHP-servicestatus verifiëren
Na de installatie is het van cruciaal belang om de status van de PHP-service te bevestigen. Deze validatie zorgt ervoor dat PHP is ingeschakeld en feilloos en zonder fouten werkt. De opdracht is afhankelijk van de geïnstalleerde PHP-versie; in ons geval was het PHP 8.2.
systemctl status php8.2-fpm
PHP-service activeren
Als de PHP-service inactief is, wordt deze met de volgende opdracht ingeschakeld en wordt deze automatisch gestart bij elke herstart.
sudo systemctl enable php-fpm --now
Deze opdracht activeert de PHP-FPM-service en zorgt ervoor dat deze automatisch start tijdens elke systeemopstart.
phpBB-backend-installatie
Het is tijd om phpBB-forums te installeren terwijl de LEMP-stack succesvol is geïnstalleerd. Op het moment van deze tutorial is de nieuwste versie phpBB 3.3.10. Dit kan echter in de loop van de tijd veranderen, aangezien nieuwe releases doorgaans elke zes maanden worden uitgerold. Om de huidige versie te verifiëren, gaat u naar de phpBB-downloadpagina.
Let op: Vergeet niet de nieuwste phpBB-xxxzip te pakken en de onderstaande commando's aan te passen; dit is van cruciaal belang.
Download phpBB en het instellen van mappen
Download eerst het phpBB-pakket:
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
Wijzig vervolgens de maprechten voor NGINX:
sudo chown -R www-data:www-data /var/www/html/phpbb
sudo chmod -R 755 /var/www/html/phpbb
MariaDB configureren voor phpBB
Maak nu een database voor uw phpBB-installatie. Open eerst de MariaDB-terminal als root:
sudo mysql -u root -p
Maak de database voor uw forums:
CREATE DATABASE phpbb;
Maak een nieuwe databasegebruiker aan met de naam phpbbuser
met een nieuw wachtwoord:
CREATE USER 'phpbbuser'@'localhost' IDENTIFIED BY 'new_password_here';
Verleen de gebruiker volledige toegang tot de database:
GRANT ALL ON phpbb.* TO 'phpbbuser'@'localhost' IDENTIFIED BY 'user_password_here' WITH GRANT OPTION;
Wis de rechten om de wijzigingen toe te passen:
FLUSH PRIVILEGES;
Verlaat de MariaDB-terminal:
EXIT;
Je phpBB-database is nu klaar. U voert deze gegevens in tijdens het installatiegedeelte van de webinterface van de zelfstudie.
PHP configureren voor phpBB
Om een succesvolle phpBB-installatie en een optimale werking ervan te garanderen, moet je een paar opties aanpassen in het php.ini
configuratiebestand.
Open de php.ini
bestand:
sudo nano /etc/php/{version}/fpm/php.ini
Vergeet niet te vervangen {version}
met de specifieke PHP-FPM-versie die u hebt geïnstalleerd, zoals 83., 8.2, 8.1, 8.0 of 7.4.
Zoek de volgende instellingen en pas deze als volgt aan:
max_execution_time = 180 max_input_time = 90 memory_limit = 256M upload_max_filesize = 64M
Deze instellingen zijn over het algemeen standaard, maar als je een VPS met beperkte bronnen of gedeelde hosting gebruikt, moet je ze mogelijk lager aanpassen. Houd er rekening mee dat elke phpBB-installatie, net als elk ander CMS-systeem, kan variëren.
Als u klaar bent, slaat u het bestand op en sluit u het af. U moet PHP FPM opnieuw opstarten om de wijzigingen door te voeren:
sudo systemctl restart php8.2-fpm
Nginx configureren voor phpBB
Declareer in uw Nginx-serverblok de PHP upstream en vervolgens de PHP-locaties. De beste manier om dit te doen is door een nieuw serverblok te maken met behulp van een subdomein zoals forums
of community
.
Maak eerst het serverblok:
sudo nano /etc/nginx/sites-available/phpbb.conf
Kopieer en plak het volgende in het serverblok, waarbij u de domeinnaam, SSL, rootpad en al het andere aanpast aan uw behoeften. Raak de locaties of PHP niet aan, tenzij je weet wat je doet.
Let op: De volgende Nginx-configuratiesyntaxismarkering bevat geannoteerde opmerkingen om u te begeleiden bij het personaliseren van de configuratie volgens uw specifieke vereisten. We raden u ten zeerste aan om elk segment zorgvuldig te onderzoeken en de juiste aanpassingen aan te brengen, zodat deze bij uw systeemconfiguratie passen. Uw aandacht voor deze details wordt zeer op prijs gesteld.
# 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;
}
}
Schakel na het instellen het nieuwe serverblok in:
sudo ln -s /etc/nginx/sites-available/phpbb.conf /etc/nginx/sites-enabled/
U kunt nu de configuratie controleren:
sudo nginx -t
Als alles correct is ingesteld, ziet u:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Start de Nginx-service opnieuw om phpBB toegankelijk te maken via de webinterface:
sudo systemctl restart nginx
Hiermee is de backend-installatie van phpBB voltooid.
SSL-codering implementeren met Let's Encrypt (optioneel)
Als u van plan bent uw Nginx-server te beveiligen met HTTPS, is het een slimme keuze om Let's Encrypt te gebruiken. Let's Encrypt is een gerenommeerde, gratis, volledig geautomatiseerde certificeringsinstantie die wordt beheerd door de non-profit Internet Security Research Group (ISRG).
Certbot installeren
Onze eerste stap omvat het installeren van het Certbot-pakket. Certbot is een efficiënte client voor Let's Encrypt die de uitgifte en installatie van certificaten kan automatiseren zonder downtime. Het heeft ook een redelijk rijke opdrachtregelinterface.
Gebruik de volgende opdracht om het Certbot-pakket te installeren:
sudo apt install python3-certbot-nginx -y
Uw certificaat maken
Nu Certbot is geïnstalleerd, kunnen we nu uw SSL-certificaat genereren. Deze procedure omvat het uitvoeren van de volgende opdracht:
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email you@example.com -d forums.example.com
De opdracht die we hebben gegeven, maakt een optimale installatie mogelijk, inclusief gedwongen HTTPS 301-omleidingen, een Strict-Transport-Security-header en OCSP Stabling. Elk van deze elementen draagt bij aan de veiligheid van uw server.
Het vervangen van 'jij@example.com' en 'forums.example.com' door je e-mailadres en domeinnaam is van cruciaal belang.
Overgang naar HTTPS
Nadat u deze opdrachten met succes heeft uitgevoerd, zou uw forum nu toegankelijk moeten zijn via HTTPS op https://forums.example.com in plaats van het vorige http://forum.example.com. Elke poging om toegang te krijgen tot de oude HTTP-URL wordt naadloos omgeleid naar de beveiligde HTTPS-versie.
Raadpleeg onze gedetailleerde handleiding over het beveiligen van Nginx voor meer informatie over het beveiligen van Nginx Hoe Nginx te beveiligen met Let's Encrypt op Debian Linux.
Voltooi de phpBB Web UI-installatie
Nadat we de backend succesvol hebben ingesteld, gaan we nu over naar de frontend om de phpBB-installatie te voltooien. Je kunt toegang krijgen tot de installatiepagina door naar de aangewezen phpBB-forum-URL te gaan. Voor illustratieve doeleinden gebruiken we https://forums.linuxcapable.com.
De installatie starten
Wanneer u de opgegeven URL bezoekt, komt u op de phpBB-installatiepagina terecht. Start het proces door op de installatieknop in de linkerbovenhoek van de pagina te klikken.
Je wordt dan doorverwezen naar een pagina met de minimale systeemvereisten en andere essentiële technische specificaties voor phpBB.
Zodra uw systeem aan deze vereisten voldoet, klikt u op Installeren onderaan de pagina.
Het beheerdersaccount instellen
De volgende fase omvat het aanmaken van uw phpBB-beheerdersaccount. Een sterk wachtwoord voor dit account is essentieel voor herstel en algehele veiligheid.
Databasedetails configureren
Nadat u uw beheerdersaccount heeft aangemaakt, wordt u gevraagd databasegegevens op te geven. Behoud de standaard 'MySQL met MySQLi-extensie' en voer 'localhost' in, tenzij uw database zich op een andere server bevindt. Voer in dat geval het IP-adres en de poort van de server in (als dit niet de standaardinstelling is).
Onze tutorial maakt gebruik van een database met de naam 'phpbb', waarbij 'phpbbuser' de gebruiker toegang heeft verleend (naast root) tot de phpBB-database. Behoud het standaardvoorvoegsel 'phpbb_', tenzij u van plan bent meerdere forums te hosten. In dat geval kan het wijzigen van het voorvoegsel helpen om ze te onderscheiden.
Serverconfiguratie voltooien
Vervolgens krijgt u de mogelijkheid om uw serverinstellingen te configureren. De standaardconfiguraties zouden voldoende moeten zijn als u SSL niet gebruikt. Als u SSL echter heeft geïmplementeerd, past u de instellingen aan zodat deze aansluiten op uw specifieke vereisten.
SMTP-installatie
Na de serverconfiguratie kunt u, indien van toepassing, SMTP-instellingen instellen. Als dit niet het geval is, kunt u deze stap overslaan en doorgaan met de standaardinstellingen.
Forumdetails instellen
Geef ten slotte uw forumtitel op en kies de gewenste taal. Als je niet zeker bent van de forumtitel, gebruik dan voorlopig de standaardoptie; je kunt het altijd later herzien.
Na het voltooien van deze stappen zou u een afsluitend scherm moeten bereiken, waarin de succesvolle installatie van uw phpBB-forum wordt bevestigd, samen met een link die u naar het ACP (Admin Control Panel) leidt. Als u fouten tegenkomt, moet u mogelijk de voorgaande stappen opnieuw uitvoeren om er zeker van te zijn dat er geen stappen of machtigingen over het hoofd zijn gezien.
Voltooiing van phpBB-installatie en -configuratie
Verwijder de phpBB-installatiemap
Gefeliciteerd met het bereiken van deze fase. Wanneer u voor de eerste keer inlogt op het phpBB-beheerpaneel (ACP), wordt u begroet met een prominente rode waarschuwing waarin u wordt geïnstrueerd om uw installatiemap te hernoemen of te verwijderen. Het wordt ten zeerste aanbevolen dat u deze map verwijdert in plaats van deze alleen maar te verplaatsen. Om dit te bereiken, voert u de volgende opdracht uit in uw terminal:
sudo rm -R /var/www/html/phpbb/install
Als u dit niet doet, zult u waarschijnlijk merken dat uw forum niet kan worden gebruikt totdat u de installatiemap hebt verwijderd:
De juiste CHMOD-machtigingen instellen (essentiële stap)
Terwijl we bezig zijn met terminalopdrachten, is het toewijzen van de juiste CHMOD-machtigingen na de installatie van cruciaal belang. Als u deze stap overslaat, kan uw systeem worden blootgesteld aan aanzienlijke beveiligingsproblemen. Voer dit dus nauwkeurig uit of gebruik uw methode als u denkt dat deze superieur is, maar zorg ervoor dat u de standaardrechten niet handhaaft!!
Voer de volgende opdrachten uit:
sudo find /var/www/html/phpbb -type d -exec chmod 755 {} \;
sudo find /var/www/html/phpbb -type f -exec chmod 644 {} \;
Vervolgens moeten we een aantal speciale machtigingen verlenen aan bepaalde mappen en bestanden:
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
Als u dit nalaat, worden de functies van uw bord verstoord. Zorg ervoor dat u zich strikt aan deze paden houdt; anders kun je onbedoeld onbeperkte lees- en schrijftoegang verlenen aan de hele phpBB-map, waardoor er opnieuw een beveiligingsprobleem ontstaat.
Een Cronjob instellen voor phpBB (aanbevolen)
De laatste stap in deze handleiding is het maken van een cronjob. Op forums met veel verkeer of trage responstijden wordt het aanbevolen om cronjobs zo te configureren dat ze elke 5 minuten worden uitgevoerd, volgens de richtlijnen van phpBB. Hier ziet u hoe u dit kunt doen.
Start crontab met deze opdracht:
sudo crontab -e
Optie voor de eerste cronjob:
*/5 * * * * /usr/bin/php /var/www/html/phpbb/bin/phpbbcli.php cron:run > /dev/null 2>&1
Om op te slaan drukt u op CTRL+O, en om af te sluiten drukt u op CTRL+X. Als het correct is gedaan, ziet u het volgende antwoord in uw terminal:
crontab: installing new crontab
Dit antwoord geeft aan dat de cronjob actief is en functioneert. Hoewel phpBB aanbeveelt cronjobs elke 5 minuten uit te voeren, kunt u de frequentie aanpassen aan uw behoeften.
Ga ten slotte terug naar uw phpBB-beheerderspaneel en schakel de server cron-job in uw serverinstellingen in.
Met deze stappen heeft u de post-installatiefase van uw phpBB-installatie op Debian voltooid.
Conclusie
Nu phpBB met succes op uw Debian-systeem is geïnstalleerd met behulp van NGINX, MariaDB en PHP, kunt u nu een robuuste online community creëren en beheren. Zorg ervoor dat u alle componenten regelmatig bijwerkt om de veiligheid en prestaties te behouden. Geniet van de flexibiliteit en kracht die deze configuratie met zich meebrengt voor uw phpBB-forum, waardoor uw gebruikers een naadloze en boeiende ervaring krijgen.