phpBB er en meget tilpasselig og udbredt open source-forumsoftware, der giver en robust platform til at bygge online-fællesskaber. Når det kombineres med NGINX, MariaDB og PHP, får du en kraftfuld og effektiv stack, der sikrer høj ydeevne og skalerbarhed til dit forum. NGINX fungerer som webserveren, MariaDB som databasestyringssystemet og PHP som scriptsproget på serversiden, hvilket danner et solidt fundament for phpBB.
Følg trinene beskrevet i denne guide for at installere phpBB på Debian 12, 11 eller 10 med NGINX, MariaDB og PHP. Denne opsætning vil give et højtydende og sikkert miljø til dit onlineforum.
Installer LEMP (Nginx, MariaDB, PHP)
Opdater Debian før installation af phpBB
Sørg for, at dit Debian-system er opdateret, før du installerer LEMP-stakken. Dette trin hjælper med at undgå pakkekonflikter og sikrer problemfri udførelse af efterfølgende processer. Det justerer også dit system med de seneste sikkerhedsrettelser og softwareforbedringer.
For at opdatere dit system skal du udføre følgende kommando:
sudo apt update && sudo apt upgrade
Kommandoen sudo apt update opdaterer listen over tilgængelige pakker og deres versioner, mens sudo apt-opgraderingen installerer de nyeste versioner af dine pakker.
Installer NGINX (LEMP Stack Part 1)
NGINX, en open source, højtydende HTTP-server og omvendt proxy, er hjørnestenen i LEMP-stakken. For at installere NGINX skal du udføre følgende kommando:
sudo apt install nginx
Efter installationen af NGINX starter tjenesten normalt automatisk. Det er dog god praksis at bekræfte dette og sikre, at det fungerer som forventet. Du kan verificere status for NGINX-tjenesten ved at udstede følgende kommando:
systemctl status nginx
Du bør se et output, der angiver den aktive (kørende) status for NGINX-tjenesten, hvilket bekræfter den vellykkede initiering af NGINX. Hvis serveren af en eller anden grund ikke er startet, kan følgende kommando starte den og også indstille NGINX til at starte automatisk ved systemgenstart:
sudo systemctl enable nginx --now
Denne kommando sikrer, at NGINX-tjenesten kan starte ved opstart (aktiver) og starte med det samme (–nu).
Du kan eventuelt besøge serverens IP-adresse for at bekræfte, at Nginx er installeret; du burde se en lignende testside:
Installer MariaDB (LEMP Stack Part 2)
Installation af databasemodulet er det næste trin i opsætningen af LEMP-stakken. MariaDB, kendt for sin ydeevne og forskellige supplerende attributter, foretrækkes frem for MySQL i LEMP-stakken. For at installere MariaDB skal du udføre følgende kommando:
sudo apt install mariadb-server mariadb-client
Trin 4: Bekræft MariaDB Service
Når MariaDB er installeret, er det afgørende at bekræfte status for MariaDB-tjenesten. Det er vigtigt at sikre, at MariaDB-tjenesten er aktiveret og fungerer korrekt. Kommandoen til at inspicere tjenestens status er som følger:
systemctl status mariadb
Du kan udføre følgende kommando, hvis serveren ikke er blevet aktiveret. Dette vil sikre, at MariaDB startes med det samme og indstilles til at starte automatisk ved hver systemgenstart.
sudo systemctl enable mariadb --now
Sikker MariaDB-installation (Security Run-Script)
Sikring af din database er grundlæggende for at opsætte et robust og pålideligt system; MariaDB er ingen undtagelse. Efter installationen anbefales det stærkt, at sikkerhedsscriptet, der følger med installationen, køres. Dette script styrker MariaDB-installationen ved at ændre dens standardindstillinger, som ofte betragtes som usikre, og beskytter derved systemet mod potentiel uautoriseret adgang eller udnyttelse.
For at køre MariaDB-sikkerhedsscriptet, kendt som mysql_secure_installation, skal du udstede følgende kommando:
sudo mysql_secure_installation
Når først sikkerhedsscriptet er udført, involverer det næste trin at justere forskellige indstillinger for at forbedre sikkerheden for din MariaDB-installation. Disse ændringer omfatter opsætning af root-adgangskoden, begrænsning af fjernadgang, eliminering af anonyme brugerkonti og fjernelse af testdatabasen. Hver af disse justeringer tilføjer et lag af sikkerhed til din MariaDB-installation og hjælper med at beskytte den mod potentielle sikkerhedstrusler.
Lad os dykke ned i hver af disse justeringer:
- Opsætning af root-adgangskoden: Dette er adgangskoden til root-brugeren af din MariaDB-installation. Det er afgørende at vælge en stærk adgangskode for at forhindre uautoriseret adgang.
- Begrænsning af fjernadgang: Rodbrugeren kan som standard få adgang til databasen fra ethvert sted. Begrænsning af fjernadgang sikrer, at root-brugeren kun kan få adgang til databasen fra den lokale maskine, hvilket reducerer risikoen for fjernangreb.
- Fjernelse af anonyme brugerkonti: Anonyme brugerkonti har ingen navne. Disse konti udgør en sikkerhedsrisiko, da de kan bruges til at få uautoriseret adgang til databasen. Sikkerhedsscriptet giver dig mulighed for at fjerne disse konti.
- Fjernelse af testdatabasen: MariaDB har en testdatabase, som enhver bruger kan få adgang til. Denne database er unødvendig til produktionsbrug og kan sikkert fjernes for at reducere angrebsoverfladen.
Ved at tage dig tid til at sikre din MariaDB-installation, tager du et væsentligt skridt i retning af at sikre integriteten og sikkerheden af dine data.
Installer PHP (LEMP Stack Part 3)
Den sidste komponent i LEMP-stakken er PHP-tjenesten, der fungerer som broen mellem Nginx og MariaDB. Denne brodannelse udføres af PHP-FPM-tjenesten og ekstra moduler, der kræves af phpMyAdmin. For at installere PHP, PHP-FPM og de nødvendige moduler på dit Debian-system skal du køre følgende kommando:
sudo apt install php-fpm php php-cli php-mysql php-curl php-common php-mbstring php-xml
Bekræfter PHP-tjenestestatus
Efter installationen er det vigtigt at bekræfte status for PHP-tjenesten. Denne validering sikrer, at PHP er aktiveret og fungerer fejlfrit uden fejl. Kommandoen er betinget af den installerede version af PHP; i vores tilfælde var det PHP 8.2.
systemctl status php8.2-fpm
Aktivering af PHP Service
Hvis PHP-tjenesten er inaktiv, aktiverer følgende kommando den og sikrer, at den automatisk starter ved hver genstart.
sudo systemctl enable php-fpm --now
Denne kommando vil aktivere PHP-FPM-tjenesten og sikre, at den starter automatisk under hver systemopstart.
phpBB Backend installation
Det er tid til at installere phpBB-fora med LEMP-stakken installeret. På tidspunktet for denne vejledning er den seneste version phpBB 3.3.10. Dette kan dog ændre sig over tid, da nye udgivelser typisk rulles ud hvert halve år. For at bekræfte den aktuelle version, besøg phpBB downloads side.
Bemærk: Glem ikke at få fat i den seneste phpBB-xxxzip og justere kommandoerne nedenfor; dette er kritisk.
Download phpBB og opsætning af mapper
Download først phpBB-pakken:
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
Rediger derefter mappetilladelserne for NGINX:
sudo chown -R www-data:www-data /var/www/html/phpbb
sudo chmod -R 755 /var/www/html/phpbb
Konfiguration af MariaDB til phpBB
Opret nu en database til din phpBB-installation. Åbn først MariaDB-terminalen som root:
sudo mysql -u root -p
Opret databasen til dine fora:
CREATE DATABASE phpbb;
Opret en ny databasebruger kaldet phpbbuser
med en ny adgangskode:
CREATE USER 'phpbbuser'@'localhost' IDENTIFIED BY 'new_password_here';
Giv brugeren fuld adgang til databasen:
GRANT ALL ON phpbb.* TO 'phpbbuser'@'localhost' IDENTIFIED BY 'user_password_here' WITH GRANT OPTION;
Fjern rettighederne for at anvende ændringerne:
FLUSH PRIVILEGES;
Afslut MariaDB-terminalen:
EXIT;
Din phpBB-database er nu klar. Du vil indtaste disse detaljer under installationsdelen af web-UI-installationen af selvstudiet.
Konfiguration af PHP til phpBB
For at sikre en vellykket phpBB-installation og dens optimale drift, bør du justere nogle få muligheder i php.ini
konfigurationsfil.
Åbn php.ini
fil:
sudo nano /etc/php/{version}/fpm/php.ini
Husk at udskifte {version}
med den specifikke PHP-FPM-version, du har installeret, såsom 83., 8.2, 8.1, 8.0 eller 7.4.
Find følgende indstillinger og juster dem som følger:
max_execution_time = 180 max_input_time = 90 memory_limit = 256M upload_max_filesize = 64M
Disse indstillinger er generelt standard, men hvis du bruger en VPS med begrænsede ressourcer eller delt hosting, skal du muligvis justere dem lavere. Husk, at hver phpBB-installation, ligesom ethvert andet CMS-system, kan variere.
Når du er færdig, skal du gemme og afslutte filen. Du skal genstarte PHP FPM for at ændringerne træder i kraft:
sudo systemctl restart php8.2-fpm
Konfiguration af Nginx til phpBB
I din Nginx-serverblok skal du erklære PHP opstrøms og derefter PHP-placeringerne. Den bedste måde at gøre dette på er at oprette en ny serverblok ved hjælp af et underdomæne som f.eks forums
eller community
.
Først skal du oprette serverblokken:
sudo nano /etc/nginx/sites-available/phpbb.conf
Kopiér og indsæt følgende i serverblokken, modificer domænenavnet, SSL, rodstien og alt muligt andet, så det passer til dine behov. Rør ikke ved placeringerne eller PHP, medmindre du ved, hvad du laver.
Bemærk: Følgende Nginx-konfigurationssyntaksmarkering inkluderer kommenterede kommentarer for at guide dig til at tilpasse konfigurationen i overensstemmelse med dine specifikke krav. Vi anbefaler stærkt, at du nøje undersøger hvert segment og foretager passende justeringer, så de passer til din systemkonfiguration. Din opmærksomhed på disse detaljer er meget værdsat.
# 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;
}
}
Efter opsætning skal du aktivere den nye serverblok:
sudo ln -s /etc/nginx/sites-available/phpbb.conf /etc/nginx/sites-enabled/
Du kan nu kontrollere konfigurationen:
sudo nginx -t
Hvis alt er indstillet korrekt, vil du se:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Genstart Nginx-tjenesten for at gøre phpBB tilgængelig via web-UI:
sudo systemctl restart nginx
Dette fuldender backend-installationen af phpBB.
Implementering af SSL-kryptering med Let's Encrypt (valgfrit)
Hvis du har til hensigt at sikre din Nginx-server med HTTPS, ville et smart valg være at bruge Let's Encrypt. Let's Encrypt er en velrenommeret, gratis, fuldt automatiseret certifikatmyndighed, der styres af nonprofitorganisationen Internet Security Research Group (ISRG).
Installation af Certbot
Vores første skridt involverer installation af Certbot-pakken. Certbot er en effektiv klient til Let's Encrypt, der kan automatisere certifikatudstedelse og installation uden nedetid. Det har også en ret rig kommandolinjegrænseflade.
For at installere Certbot-pakken skal du bruge følgende kommando:
sudo apt install python3-certbot-nginx -y
Oprettelse af dit certifikat
Med Certbot installeret kan vi nu generere dit SSL-certifikat. Denne procedure involverer at køre følgende kommando:
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email you@example.com -d forums.example.com
Den kommando, vi har udstedt, letter en optimal opsætning, som inkluderer forceret HTTPS 301-omdirigeringer, en Strict-Transport-Security-header og OCSP Stabling. Hvert af disse elementer bidrager til din servers sikkerhed.
Det er afgørende at erstatte 'du@eksempel.com' og 'forum.eksempel.com' med din e-mail og dit domænenavn.
Overgang til HTTPS
Når du har udført disse kommandoer, skulle dit forum nu være tilgængeligt via HTTPS på https://forums.example.com i stedet for det tidligere http://forum.example.com. Ethvert forsøg på at få adgang til den gamle HTTP URL vil problemfrit blive omdirigeret til den sikre HTTPS-version.
For yderligere læsning om sikring af Nginx, se vores detaljerede vejledning om Sådan sikrer du Nginx med Let's Encrypt på Debian Linux.
Fuldfør installationen af phpBB Web UI
Efter at have opsat backend, vil vi nu gå over til frontend for at fuldføre phpBB installationen. Du kan få adgang til installationssiden ved at besøge din udpegede phpBB-forums URL. Til illustrative formål bruger vi https://forums.linuxcapable.com.
Start af installationen
Når du besøger den angivne URL, lander du på installationssiden for phpBB. Start processen ved at klikke på installationsknappen i sidens øverste venstre hjørne.
Du vil derefter blive dirigeret til en side, der beskriver minimum systemkravene og andre væsentlige tekniske specifikationer for phpBB.
Når dit system opfylder disse forudsætninger, skal du klikke på Installer nederst på siden.
Opsætning af administratorkontoen
Det næste trin involverer at oprette din phpBB-admin-konto. En stærk adgangskode til denne konto er afgørende for gendannelse og generel sikkerhed.
Konfiguration af databasedetaljer
Når du har oprettet din administratorkonto, bliver du bedt om at angive databaseoplysninger. Bevar standard 'MySQL med MySQLi Extension' og indtast 'localhost', medmindre din database ligger på en anden server. I så fald skal du indtaste serverens IP og port (hvis det ikke er standard).
Vores tutorial bruger en database ved navn 'phpbb', med 'phpbbuser' som brugeren har givet adgang (ved siden af root) til phpBB-databasen. Behold standardpræfikset 'phpbb_', medmindre du planlægger at være vært for flere fora, i hvilket tilfælde en ændring af præfikset kan hjælpe med at differentiere dem.
Afslutning af serverkonfiguration
Dernæst har du mulighed for at konfigurere dine serverindstillinger. Standardkonfigurationerne burde være tilstrækkelige, hvis du ikke kører SSL. Men hvis du har implementeret SSL, skal du justere indstillingerne, så de passer til dine specifikke krav.
SMTP opsætning
Efter serverkonfiguration kan du oprette SMTP-indstillinger, hvis det er relevant. Hvis ikke, kan du springe dette trin over og fortsætte med standardindstillingerne.
Etablering af forumdetaljer
Til sidst skal du udpege din forumtitel og vælge det ønskede sprog. Hvis du er usikker på forumtitlen, så brug standardindstillingen indtil videre; du kan altid revidere den senere.
Når du har gennemført disse trin, bør du nå en afsluttende skærm, der bekræfter den vellykkede installation af dit phpBB-forum, sammen med et link, der leder dig til ACP (Admin Kontrolpanel). Hvis du støder på fejl, skal du muligvis gense tidligere trin for at sikre, at ingen trin eller tilladelser er blevet overset.
Fuldførelse af phpBB installation og konfiguration
Slet phpBB installationsmappe
Tillykke med at nå dette stadie. Efter dit første login på phpBB Admin Kontrolpanel (ACP), vil du blive mødt med en fremtrædende rød advarsel, der instruerer dig om enten at omdøbe eller fjerne din installationsmappe. Det anbefales stærkt, at du sletter denne mappe i stedet for blot at flytte den. For at opnå dette skal du udføre følgende kommando i din terminal:
sudo rm -R /var/www/html/phpbb/install
Hvis du ikke gør dette, vil du højst sandsynligt opdage, at dit forum ikke vil kunne bruges, før du har fjernet installationsmappen:
Indstilling af de korrekte CHMOD-tilladelser (Vital Step)
Mens vi er i gang med terminalkommandoer, er det afgørende at tildele de relevante CHMOD-tilladelser efter installationen. Omgåelse af dette trin kan udsætte dit system for betydelige sikkerhedssårbarheder, så udfør dette nøjagtigt eller brug din metode, hvis du mener, den er overlegen, men undlad at opretholde standardtilladelserne!!
Udfør følgende kommandoer:
sudo find /var/www/html/phpbb -type d -exec chmod 755 {} \;
sudo find /var/www/html/phpbb -type f -exec chmod 644 {} \;
Efterfølgende skal vi give nogle særlige tilladelser til visse mapper og filer:
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
Hvis du undlader at gøre dette, vil dit boards funktioner forstyrres. Sørg for, at du nøje overholder disse stier; Ellers kan du utilsigtet give hele phpBB-biblioteket ubegrænset læse- og skriveadgang, hvilket genindfører et sikkerhedsproblem.
Oprettelse af et Cronjob til phpBB (anbefales)
Det afsluttende trin i denne guide er at etablere et cronjob. På fora med betydelig trafik eller langsomme svartider, anbefales det at konfigurere cron-job til at udføre hvert 5. minut i henhold til phpBB's retningslinjer. Sådan gør du dette.
Start crontab med denne kommando:
sudo crontab -e
Mulighed for det første cronjob:
*/5 * * * * /usr/bin/php /var/www/html/phpbb/bin/phpbbcli.php cron:run > /dev/null 2>&1
For at gemme, tryk CTRL+O, og for at afslutte, tryk CTRL+X. Hvis det gøres korrekt, vil du se følgende svar i din terminal:
crontab: installing new crontab
Dette svar indikerer, at cronjob er aktiv og fungerer. Selvom phpBB anbefaler at køre cronjobs hvert 5. minut, kan du justere frekvensen, så den passer til dine behov.
Til sidst, vend tilbage til dit phpBB Admin Panel og aktiver server cron-jobbet i dine serverindstillinger.
Med disse trin har du afsluttet post-installationsfasen for din phpBB-installation på Debian.
Konklusion
Med phpBB installeret på dit Debian-system ved hjælp af NGINX, MariaDB og PHP, kan du nu oprette og administrere et robust onlinefællesskab. Sørg for, at du regelmæssigt opdaterer alle komponenter for at opretholde sikkerhed og ydeevne. Nyd den fleksibilitet og kraft, som denne opsætning bringer til dit phpBB-forum, hvilket giver en problemfri og engagerende oplevelse for dine brugere.