phpBB är en mycket anpassningsbar och allmänt använd forummjukvara med öppen källkod som ger en robust plattform för att bygga onlinegemenskaper. I kombination med NGINX, MariaDB och PHP får du en kraftfull och effektiv stack som säkerställer hög prestanda och skalbarhet för ditt forum. NGINX fungerar som webbserver, MariaDB som databashanteringssystem och PHP som skriptspråk på serversidan, vilket utgör en solid grund för phpBB.
Följ stegen som beskrivs i den här guiden för att installera phpBB på Debian 12, 11 eller 10 med NGINX, MariaDB och PHP. Denna inställning kommer att ge en högpresterande och säker miljö för ditt onlineforum.
Installera LEMP (Nginx, MariaDB, PHP)
Uppdatera Debian före installation av phpBB
Se till att ditt Debiansystem är uppdaterat innan du installerar LEMP-stacken. Detta steg hjälper till att undvika paketkonflikter och säkerställer smidig exekvering av efterföljande processer. Det anpassar också ditt system till de senaste säkerhetskorrigeringarna och mjukvaruförbättringarna.
För att uppdatera ditt system, kör följande kommando:
sudo apt update && sudo apt upgrade
Kommandot sudo apt update uppdaterar listan över tillgängliga paket och deras versioner, medan sudo apt-uppgraderingen installerar de senaste versionerna av dina paket.
Installera NGINX (LEMP Stack del 1)
NGINX, en öppen källkod, högpresterande HTTP-server och omvänd proxy, är hörnstenen i LEMP-stacken. För att installera NGINX, kör följande kommando:
sudo apt install nginx
Efter installationen av NGINX startar tjänsten vanligtvis automatiskt. Det är dock god praxis att bekräfta detta och se till att det fungerar som förväntat. Du kan verifiera statusen för NGINX-tjänsten genom att utfärda följande kommando:
systemctl status nginx
Du bör se en utdata som indikerar den aktiva (kör) statusen för NGINX-tjänsten, vilket bekräftar den framgångsrika initieringen av NGINX. Om servern inte har startat av någon anledning kan följande kommando starta den och även ställa in NGINX att starta automatiskt vid omstart av systemet:
sudo systemctl enable nginx --now
Detta kommando säkerställer att NGINX-tjänsten kan starta vid uppstart (aktivera) och starta omedelbart (–nu).
Alternativt kan du besöka serverns IP-adress för att verifiera att Nginx är installerat; du bör se en liknande testsida:
Installera MariaDB (LEMP Stack del 2)
Att installera databasmodulen är nästa steg i att ställa in LEMP-stacken. MariaDB, känd för sin prestanda och olika kompletterande attribut, föredras framför MySQL inom LEMP-stacken. För att installera MariaDB, kör följande kommando:
sudo apt install mariadb-server mariadb-client
Steg 4: Verifiera MariaDB Service
När MariaDB har installerats är det avgörande att bekräfta statusen för MariaDB-tjänsten. Det är viktigt att säkerställa att MariaDB-tjänsten är aktiverad och fungerar korrekt. Kommandot för att inspektera tjänstens status är som följer:
systemctl status mariadb
Du kan utföra följande kommando om servern inte har aktiverats. Detta kommer att säkerställa att MariaDB startas omedelbart och ställs in för att starta automatiskt vid varje omstart av systemet.
sudo systemctl enable mariadb --now
Säker MariaDB-installation (Security Run-Script)
Att säkra din databas är grundläggande för att skapa ett robust och pålitligt system; MariaDB är inget undantag. Efter installationen rekommenderas starkt att säkerhetsskriptet som följer med installationen körs. Det här skriptet stärker MariaDB-installationen genom att ändra dess standardinställningar, som ofta anses vara osäkra, och skyddar därmed systemet från potentiell obehörig åtkomst eller utnyttjande.
För att köra MariaDB-säkerhetsskriptet, känt som mysql_secure_installation, utfärda följande kommando:
sudo mysql_secure_installation
När säkerhetsskriptet har körts, innebär nästa steg att justera olika inställningar för att förbättra säkerheten för din MariaDB-installation. Dessa ändringar inkluderar att ställa in root-lösenordet, begränsa fjärråtkomst, eliminera anonyma användarkonton och ta bort testdatabasen. Var och en av dessa justeringar lägger till ett lager av säkerhet till din MariaDB-installation, vilket hjälper till att skydda den från potentiella säkerhetshot.
Låt oss fördjupa oss i var och en av dessa justeringar:
- Ställa in root-lösenordet: Detta är lösenordet för rotanvändaren av din MariaDB-installation. Det är viktigt att välja ett starkt lösenord för att förhindra obehörig åtkomst.
- Begränsa fjärråtkomst: Rotanvändaren kan komma åt databasen från vilken plats som helst som standard. Begränsning av fjärråtkomst säkerställer att rotanvändaren endast kan komma åt databasen från den lokala maskinen, vilket minskar risken för fjärrattacker.
- Eliminera anonyma användarkonton: Anonyma användarkonton har inga namn. Dessa konton utgör en säkerhetsrisk eftersom de kan användas för att få obehörig åtkomst till databasen. Säkerhetsskriptet låter dig ta bort dessa konton.
- Ta bort testdatabasen: MariaDB har en testdatabas som alla användare kan komma åt. Denna databas är onödig för produktionsanvändning och kan säkert tas bort för att minska attackytan.
Genom att ta dig tid att säkra din MariaDB-installation tar du ett betydande steg mot att säkerställa integriteten och säkerheten för dina data.
Installera PHP (LEMP Stack del 3)
Den sista komponenten i LEMP-stacken är PHP-tjänsten, som fungerar som bryggan mellan Nginx och MariaDB. Denna överbryggning åstadkoms av PHP-FPM-tjänsten och extra moduler som krävs av phpMyAdmin. För att installera PHP, PHP-FPM och de nödvändiga modulerna på ditt Debiansystem, kör följande kommando:
sudo apt install php-fpm php php-cli php-mysql php-curl php-common php-mbstring php-xml
Verifierar PHP-tjänststatus
Efter installationen är det viktigt att bekräfta PHP-tjänstens status. Denna validering säkerställer att PHP är aktiverat och fungerar felfritt utan några fel. Kommandot är beroende av vilken version av PHP som är installerad; i vårt fall var det PHP 8.2.
systemctl status php8.2-fpm
Aktiverar PHP-tjänsten
Om PHP-tjänsten är inaktiv, aktiverar följande kommando den och säkerställer att den startar automatiskt vid varje omstart.
sudo systemctl enable php-fpm --now
Detta kommando kommer att aktivera PHP-FPM-tjänsten och säkerställa att den startar automatiskt under varje systemstart.
phpBB Backend-installation
Det är dags att installera phpBB-forum med LEMP-stacken installerad. Från och med den här handledningen är den senaste versionen phpBB 3.3.10. Detta kan dock ändras med tiden, eftersom nya utgåvor vanligtvis rullas ut var sjätte månad. För att verifiera den aktuella versionen, besök phpBB nedladdningssida.
Obs: Glöm inte att ta den senaste phpBB-xxxzip och justera kommandona nedan; detta är kritiskt.
Ladda ner phpBB och konfigurera kataloger
Ladda först ner phpBB-paketet:
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
Ändra sedan katalogbehörigheterna för NGINX:
sudo chown -R www-data:www-data /var/www/html/phpbb
sudo chmod -R 755 /var/www/html/phpbb
Konfigurera MariaDB för phpBB
Skapa nu en databas för din phpBB-installation. Öppna först MariaDB-terminalen som root:
sudo mysql -u root -p
Skapa databasen för dina forum:
CREATE DATABASE phpbb;
Skapa en ny databasanvändare som heter phpbbuser
med ett nytt lösenord:
CREATE USER 'phpbbuser'@'localhost' IDENTIFIED BY 'new_password_here';
Ge användaren full tillgång till databasen:
GRANT ALL ON phpbb.* TO 'phpbbuser'@'localhost' IDENTIFIED BY 'user_password_here' WITH GRANT OPTION;
Rensa privilegierna för att tillämpa ändringarna:
FLUSH PRIVILEGES;
Avsluta MariaDB-terminalen:
EXIT;
Din phpBB-databas är nu klar. Du kommer att ange dessa detaljer under installationsdelen av webbgränssnittet i handledningen.
Konfigurera PHP för phpBB
För att säkerställa en framgångsrik phpBB-installation och dess optimala funktion bör du justera några alternativ i php.ini
konfigurationsfil.
Öppna php.ini
fil:
sudo nano /etc/php/{version}/fpm/php.ini
Kom ihåg att byta ut {version}
med den specifika PHP-FPM-version du installerade, såsom 83., 8.2, 8.1, 8.0 eller 7.4.
Leta reda på följande inställningar och justera dem enligt följande:
max_execution_time = 180 max_input_time = 90 memory_limit = 256M upload_max_filesize = 64M
Dessa inställningar är i allmänhet standard, men om du använder en VPS med begränsade resurser eller delad hosting kan du behöva justera dem lägre. Kom ihåg att varje phpBB-installation, som alla andra CMS-system, kan variera.
När du är klar, spara och avsluta filen. Du måste starta om PHP FPM för att ändringarna ska träda i kraft:
sudo systemctl restart php8.2-fpm
Konfigurera Nginx för phpBB
I ditt Nginx-serverblock, deklarera PHP uppströms och sedan PHP-platserna. Det bästa sättet att göra detta är att skapa ett nytt serverblock med hjälp av en underdomän som t.ex forums
eller community
.
Skapa först serverblocket:
sudo nano /etc/nginx/sites-available/phpbb.conf
Kopiera och klistra in följande i serverblocket, ändra domännamnet, SSL, rotsökvägen och allt annat för att passa dina behov. Rör inte platserna eller PHP om du inte vet vad du gör.
Observera: Följande syntax för Nginx-konfiguration inkluderar kommenterade kommentarer för att vägleda dig i att anpassa konfigurationen enligt dina specifika krav. Vi rekommenderar starkt att du noggrant granskar varje segment och gör lämpliga justeringar för att passa din systemkonfiguration. Din uppmärksamhet på dessa detaljer är mycket uppskattad.
# 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 installationen, aktivera det nya serverblocket:
sudo ln -s /etc/nginx/sites-available/phpbb.conf /etc/nginx/sites-enabled/
Du kan nu kontrollera konfigurationen:
sudo nginx -t
Om allt är korrekt inställt ser du:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Starta om Nginx-tjänsten för att göra phpBB tillgänglig via webbgränssnittet:
sudo systemctl restart nginx
Detta slutför backend-installationen av phpBB.
Implementera SSL-kryptering med Let's Encrypt (valfritt)
Om du tänker säkra din Nginx-server med HTTPS, skulle ett smart val vara att använda Let's Encrypt. Let's Encrypt är en välrenommerad, gratis, helautomatiserad certifikatmyndighet som styrs av den ideella Internet Security Research Group (ISRG).
Installerar Certbot
Vårt första steg innebär att installera Certbot-paketet. Certbot är en effektiv klient för Let's Encrypt som kan automatisera certifikatutfärdande och installation utan driftstopp. Den har också ett ganska rikt kommandoradsgränssnitt.
För att installera Certbot-paketet, använd följande kommando:
sudo apt install python3-certbot-nginx -y
Skapa ditt certifikat
Med Certbot installerad kan vi nu generera ditt SSL-certifikat. Denna procedur innebär att du kör följande kommando:
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email you@example.com -d forums.example.com
Kommandot vi har utfärdat underlättar en optimal installation, som inkluderar forcera HTTPS 301-omdirigeringar, en Strict-Transport-Security-header och OCSP Stabling. Var och en av dessa element bidrar till din servers säkerhet.
Att ersätta "du@example.com" och "forums.example.com" med din e-postadress och ditt domännamn är avgörande.
Övergång till HTTPS
När du lyckats köra dessa kommandon bör ditt forum nu vara tillgängligt via HTTPS på https://forums.example.com istället för det tidigare http://forum.example.com. Alla försök att komma åt den gamla HTTP-URL:n omdirigeras sömlöst till den säkra HTTPS-versionen.
För ytterligare läsning om att säkra Nginx, se vår detaljerade guide om Hur man säkrar Nginx med Let's Encrypt på Debian Linux.
Slutför installationen av phpBB Web UI
Efter att ha lyckats konfigurera backend, kommer vi nu att gå över till frontend för att slutföra phpBB-installationen. Du kan komma åt installationssidan genom att besöka din angivna phpBB-forum-URL. I illustrativt syfte använder vi https://forums.linuxcapable.com.
Startar installationen
När du besöker den angivna webbadressen kommer du till installationssidan för phpBB. Starta processen genom att klicka på installationsknappen i sidans övre vänstra hörn.
Du kommer sedan att dirigeras till en sida som beskriver de lägsta systemkraven och andra väsentliga tekniska specifikationer för phpBB.
När ditt system uppfyller dessa krav klickar du på Installera längst ned på sidan.
Konfigurera administratörskontot
Nästa steg handlar om att skapa ditt phpBB-adminkonto. Ett starkt lösenord för detta konto är avgörande för återställning och övergripande säkerhet.
Konfigurera databasdetaljer
När du har skapat ditt administratörskonto blir du ombedd att ange databasinformation. Behåll standard "MySQL med MySQLi Extension" och ange "localhost" om inte din databas finns på en annan server. I så fall anger du serverns IP och port (om det inte är standard).
Vår handledning använder en databas som heter 'phpbb', med 'phpbbuser' som användaren beviljade åtkomst (vid sidan av roten) till phpBB-databasen. Behåll standardprefixet 'phpbb_', såvida du inte planerar att vara värd för flera forum, i så fall kan en ändring av prefixet hjälpa till att skilja dem åt.
Slutför serverkonfiguration
Därefter har du möjlighet att konfigurera dina serverinställningar. Standardkonfigurationerna borde räcka om du inte kör SSL. Men om du har implementerat SSL, justera inställningarna för att passa dina specifika krav.
SMTP-inställning
Efter serverkonfiguration kan du upprätta SMTP-inställningar, om tillämpligt. Om inte kan du hoppa över det här steget och fortsätta med standardinställningarna.
Etablering av forumdetaljer
Till sist, ange din forumtitel och välj önskat språk. Om du är osäker på forumets titel, använd standardalternativet för tillfället; du kan alltid revidera den senare.
När du har slutfört dessa steg, bör du komma till en avslutande skärm, som bekräftar den framgångsrika installationen av ditt phpBB-forum, tillsammans med en länk som leder dig till ACP (Admin Control Panel). Om du stöter på några fel kan du behöva gå igenom tidigare steg igen för att säkerställa att inga steg eller behörigheter har förbisetts.
Slutförande av installation och konfiguration av phpBB
Ta bort phpBB installationskatalog
Grattis till att du har nått detta stadium. Efter din första inloggning på phpBB Admin Control Panel (ACP), kommer du att mötas av en framträdande röd varning som instruerar dig att antingen byta namn på eller ta bort din installationskatalog. Det rekommenderas starkt att du tar bort den här katalogen istället för att bara flytta den. För att åstadkomma detta, kör följande kommando i din terminal:
sudo rm -R /var/www/html/phpbb/install
Om du inte gör detta kommer du med största sannolikhet att upptäcka att ditt forum inte kommer att kunna användas förrän du har tagit bort installationskatalogen:
Ställa in rätt CHMOD-behörigheter (viktigt steg)
Medan vi sysslar med terminalkommandon är det avgörande att tilldela lämpliga CHMOD-behörigheter efter installationen. Att kringgå detta steg kan utsätta ditt system för betydande säkerhetsbrister, så vänligen kör detta exakt eller använd din metod om du anser att den är överlägsen, men avstå från att behålla standardbehörigheterna!!
Kör följande kommandon:
sudo find /var/www/html/phpbb -type d -exec chmod 755 {} \;
sudo find /var/www/html/phpbb -type f -exec chmod 644 {} \;
Därefter måste vi ge vissa speciella behörigheter till vissa kataloger och 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
Om du försummar att göra detta kommer din brädas funktioner att störas. Se till att du följer dessa vägar strikt; annars kan du oavsiktligt ge hela phpBB-katalogen obegränsad läs- och skrivåtkomst, vilket återinför ett säkerhetsproblem.
Inrätta ett Cronjob för phpBB (rekommenderas)
Det avslutande steget i den här guiden är att skapa ett cronjob. På forum med mycket trafik eller långsamma svarstider, rekommenderas det att konfigurera cron-jobb så att de körs var 5:e minut, enligt phpBB:s riktlinjer. Så här gör du.
Starta crontab med detta kommando:
sudo crontab -e
Alternativ för det första cronjobbet:
*/5 * * * * /usr/bin/php /var/www/html/phpbb/bin/phpbbcli.php cron:run > /dev/null 2>&1
För att spara, tryck på CTRL+O, och för att avsluta, tryck på CTRL+X. Om det görs på rätt sätt kommer du att se följande svar i din terminal:
crontab: installing new crontab
Detta svar indikerar att cronjob är aktivt och fungerar. Även om phpBB rekommenderar att du kör cronjobs var 5:e minut, kan du justera frekvensen för att passa dina behov.
Slutligen, återgå till din phpBB-adminpanel och aktivera serverns cron-jobb i dina serverinställningar.
Med dessa steg har du slutfört efterinstallationsfasen för din phpBB-installation på Debian.
Slutsats
Med phpBB framgångsrikt installerat på ditt Debiansystem med NGINX, MariaDB och PHP, kan du nu skapa och hantera en robust onlinegemenskap. Se till att du regelbundet uppdaterar alla komponenter för att upprätthålla säkerhet och prestanda. Njut av flexibiliteten och kraften som den här installationen tillför ditt phpBB-forum, vilket ger en sömlös och engagerande upplevelse för dina användare.