Introduktion till Flarum
Flarum är en öppen källkodsprogramvara designad för att skapa och hantera onlineforum med enkelhet. Med ett elegant och modernt gränssnitt erbjuder Flarum en användarupplevelse som är både effektiv och lätt att använda. Programvaran är mycket anpassningsbar tack vare ett robust utökningssystem som tillåter administratörer att anpassa forumen efter specifika behov. Dessutom stöder Flarum responsiv design, vilket garanterar kompatibilitet över olika enheter och innehåller funktioner som realtidsnotifikationer, rik media-inbäddning och effektiva modereringsverktyg. Flarum är byggt på PHP och MySQL, vilket gör det tillgängligt för en mängd olika webbhotellmiljöer, och det passar både små gemenskaper och stora organisationer som söker en pålitlig plattform för online-diskussioner.
I denna artikel kommer vi att gå igenom stegen för att installera Flarum på servrar som kör Debian 12, Ubuntu, OpenSUSE och RHEL, med både Nginx och Apache.
Förutsättningar
Innan vi börjar, se till att du har följande:
- En server som kör Debian 12, Ubuntu, OpenSUSE eller RHEL.
- En icke-root användare med sudo-behörigheter.
- Ett Fullständigt Kvalificerat Domännamn (FQDN) som pekar på din server, till exempel flarum.example.com.
- Swap-lagring aktiverad om servern har 1GB RAM.
- Uppdatera serverns paket:
sudo apt update && sudo apt upgrade # För Debian och Ubuntu
sudo zypper refresh && sudo zypper update # För OpenSUSE
sudo yum update # För RHEL
Installera nödvändiga paket:
sudo apt install curl wget nano software-properties-common dirmngr apt-transport-https ca-certificates lsb-release debian-archive-keyring gnupg2 ufw unzip -y # För Debian och Ubuntu
sudo zypper install curl wget nano software-properties-common dirmngr apt-transport-https ca-certificates lsb-release debian-archive-keyring gnupg2 ufw unzip -y # För OpenSUSE
sudo yum install curl wget nano epel-release yum-utils unzip -y # För RHEL
Steg 1: Konfigurera brandväggen
Debian och Ubuntu
Kontrollera först statusen på brandväggen:
sudo ufw status
Om brandväggen inte är aktiv, aktivera den och tillåt nödvändiga portar:
sudo ufw allow OpenSSH
sudo ufw allow http
sudo ufw allow https
sudo ufw enable
sudo ufw status
OpenSUSE och RHEL
Aktivera och konfigurera brandväggen:
sudo systemctl start firewalld
sudo systemctl enable firewalld
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --reload
sudo firewall-cmd --list-all
Steg 2: Installera Nginx eller Apache
Nginx
För att installera den senaste versionen av Nginx, börja med att importera Nginx’s signeringsnyckel och lägg till repositoriet:
Debian och Ubuntu
curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] http://nginx.org/packages/debian `lsb_release -cs` nginx" | sudo tee /etc/apt/sources.list.d/nginx.list
sudo apt update
sudo apt install nginx
sudo systemctl start nginx
sudo systemctl status nginx
OpenSUSE
sudo zypper addrepo https://nginx.org/packages/sles/ `lsb_release -cs` nginx
sudo rpm --import https://nginx.org/keys/nginx_signing.key
sudo zypper install nginx
sudo systemctl start nginx
sudo systemctl status nginx
RHEL
sudo yum install epel-release
sudo yum install nginx
sudo systemctl start nginx
sudo systemctl enable nginx
sudo systemctl status nginx
Apache
För att installera Apache:
Debian och Ubuntu
sudo apt update
sudo apt install apache2
sudo systemctl start apache2
sudo systemctl enable apache2
sudo systemctl status apache2
OpenSUSE
sudo zypper install apache2
sudo systemctl start apache2
sudo systemctl enable apache2
sudo systemctl status apache2
RHEL
sudo yum install httpd
sudo systemctl start httpd
sudo systemctl enable httpd
sudo systemctl status httpd
Steg 3: Installera PHP
Installera nödvändiga PHP-paket:
Debian och Ubuntu
sudo apt install php-cli php-fpm php-mysql php-xml php-gd php-json php-mbstring php-zip php-curl -y
För att hålla PHP uppdaterat, lägg till Ondrej Sury’s PHP repository:
sudo curl -sSLo /usr/share/keyrings/deb.sury.org-php.gpg https://packages.sury.org/php/apt.gpg
sudo sh -c 'echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
sudo apt update
sudo apt install php-cli php-fpm php-mysql php-xml php-gd php-json php-mbstring php-zip php-curl -y
php --version
OpenSUSE
sudo zypper install php7 php7-fpm php7-mysql php7-xml php7-gd php7-json php7-mbstring php7-zip php7-curl
sudo systemctl start php-fpm
sudo systemctl enable php-fpm
php --version
RHEL
sudo yum install epel-release
sudo yum install php php-fpm php-mysqlnd php-xml php-gd php-json php-mbstring php-zip php-curl -y
sudo systemctl start php-fpm
sudo systemctl enable php-fpm
php --version
Steg 4: Installera Composer
Composer är ett verktyg för att hantera PHP-beroenden. Installera Composer genom att köra följande kommandon:
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === 'e21205b207c3ff031906575712edab6f13eb0b361f2085f1f1237b7126d785e826a450292b6cfd1d64d92e6563bbde02') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"
sudo mv composer.phar /usr/local/bin/composer
composer --version
Steg 5: Installera MariaDB
För att installera den senaste versionen av MariaDB, lägg till dess repository:
Debian och Ubuntu
sudo curl -o /usr/share/keyrings/mariadb-keyring.pgp 'https://mariadb.org/mariadb_release_signing_key.pgp'
echo "deb [signed-by=/usr/share/keyrings/mariadb-keyring.pgp] https://deb.mariadb.org/10.11/debian `lsb_release -cs` main" | sudo tee /etc/apt/sources.list.d/mariadb-server.list
sudo apt update
sudo apt install mariadb-server -y
sudo systemctl status mariadb
OpenSUSE
sudo zypper addrepo --gpgcheck https://ftp.hosteurope.de/mirror/mariadb.org/repo/10.11/sles12-x86_64/ MariaDB
sudo rpm --import https://mariadb.org/mariadb_release_signing_key.pgp
sudo zypper refresh
sudo zypper install MariaDB-server MariaDB-client
sudo systemctl start mariadb
sudo systemctl enable mariadb
sudo systemctl status mariadb
RHEL
sudo curl -o /etc/yum.repos.d/MariaDB.repo 'https://downloads.mariadb.com/MariaDB/mariadb_repo_setup'
sudo yum update
sudo yum install MariaDB-server MariaDB-client
sudo systemctl start mariadb
sudo systemctl enable mariadb
sudo systemctl status mariadb
Säkra installationen:
bash
sudo mariadb-secure-installation
Steg 6: Konfigurera MariaDB
Logga in i MariaDB-shell och skapa en ny databas samt användare för Flarum:
sudo mysql
CREATE DATABASE flarum;
CREATE USER 'flarumuser'@'localhost' IDENTIFIED BY 'yourpassword';
GRANT ALL PRIVILEGES ON flarum.* TO 'flarumuser'@'localhost';
GRANT ALL ON *.* TO 'admin'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;
FLUSH PRIVILEGES;
exit
Steg 7: Installera Flarum
Skapa och konfigurera Flarum-katalogen:
sudo mkdir /var/www/flarum -p
sudo chown -R $USER:$USER /var/www/flarum
cd /var/www/flarum
composer create-project flarum/flarum .
sudo chown -R www-data:www-data /var/www/flarum
sudo chmod 775 -R /var/www/flarum
Steg 8: Installera SSL
Installera Certbot för att generera SSL-certifikat:
sudo apt install snapd # För Debian och Ubuntu
sudo zypper install snapd # För OpenSUSE
sudo yum install epel-release
sudo yum install snapd # För RHEL
sudo snap install core && sudo snap refresh core
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot
certbot --version
sudo certbot certonly --apache --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m name@example.com -d flarum.example.com
sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096
sudo certbot renew --dry-run
Steg 9: Konfigurera PHP-FPM
Ändra inställningarna i PHP-FPM-konfigurationsfilen:
sudo nano /etc/php/8.2/fpm/pool.d/www.conf # För Debian och Ubuntu
sudo nano /etc/php7/fpm/php-fpm.d/www.conf # För OpenSUSE
sudo nano /etc/php-fpm.d/www.conf # För RHEL
Ändra user och group till www-data samt listen.owner och listen.group till www-data. Öka filuppladdningsstorleken till 8 MB:
sudo sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 8M/' /etc/php/8.2/fpm/php.ini # För Debian och Ubuntu
sudo sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 8M/' /etc/php7/fpm/php.ini # För OpenSUSE
sudo sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 8M/' /etc/php.ini # För RHEL
sudo systemctl restart php8.2-fpm # För Debian och Ubuntu
sudo systemctl restart php7-fpm # För OpenSUSE
sudo systemctl restart php-fpm # För RHEL
sudo chgrp -R www-data /var/lib/php/sessions
Steg 10: Konfigurera Nginx eller Apache
Nginx
Lägg till en konfigurationsfil för din webbplats:
sudo nano /etc/nginx/conf.d/flarum.conf
Klistra in följande kod:
server {
listen [::]:80;
listen 80;
server_name flarum.example.com;
# redirect http to https
return 301 https://flarum.example.com$request_uri;
}
server {
listen [::]:443 ssl http2;
listen 443 ssl http2;
server_name flarum.example.com;
access_log /var/log/nginx/flarum.access.log;
error_log /var/log/nginx/flarum.error.log;
root /var/www/flarum/public;
index index.php;
include /var/www/flarum/.nginx.conf;
client_max_body_size 8M;
if ($host != "flarum.example.com") {
return 301 $scheme://flarum.example.com$request_uri;
}
# SSL code
ssl_certificate /etc/letsencrypt/live/flarum.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/flarum.example.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/flarum.example.com/chain.pem;
ssl_session_timeout 1d;
ssl_session_cache shared:MozSSL:10m;
ssl_session_tickets off;
ssl_prefer_server_ciphers off;
ssl_stapling on;
ssl_stapling_verify on;
ssl_dhparam /etc/ssl/certs/dhparam.pem;
resolver 1.1.1.1 1.0.0.1 [2606:4700:4700::1111] [2606:4700:4700::1001] 8.8.8.8 8.8.4.4 [2001:4860:4860::8888] [2001:4860:4860::8844] valid=60s;
resolver_timeout 2s;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
tcp_nopush on;
types_hash_max_size 2048;
location ~ \.php$ {
fastcgi_pass unix:/run/php/php-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_index index.php;
include fastcgi_params;
}
}
Öppna nginx-konfigurationsfilen och lägg till följande rad:
sudo nano /etc/nginx/nginx.conf
server_names_hash_bucket_size 64;
Testa konfigurationen och ladda om Nginx:
sudo nginx -t
sudo systemctl reload nginx
Apache
Lägg till en konfigurationsfil för din webbplats:
sudo nano /etc/apache2/sites-available/flarum.conf # För Debian och Ubuntu
sudo nano /etc/httpd/conf.d/flarum.conf # För RHEL och OpenSUSE
Klistra in följande kod:
<VirtualHost *:80>
ServerName flarum.example.com
DocumentRoot /var/www/flarum/public
<Directory /var/www/flarum/public>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/flarum.error.log
CustomLog ${APACHE_LOG_DIR}/flarum.access.log combined
RewriteEngine on
RewriteCond %{SERVER_NAME} =flarum.example.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>
<VirtualHost *:443>
ServerName flarum.example.com
DocumentRoot /var/www/flarum/public
<Directory /var/www/flarum/public>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/flarum.error.log
CustomLog ${APACHE_LOG_DIR}/flarum.access.log combined
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/flarum.example.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/flarum.example.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/flarum.example.com/chain.pem
</VirtualHost>
Aktivera den nya webbplatsen och moduler:
sudo a2ensite flarum.conf
sudo a2enmod rewrite ssl
sudo systemctl restart apache2 # För Debian och Ubuntu
sudo systemctl restart httpd # För RHEL och OpenSUSE
Steg 11: Slutför installationen av Flarum
Öppna http://example.com i din webbläsare och följ instruktionerna för att slutföra installationen av Flarum. Ange de databasuppgifter du skapade tidigare och klicka på Install Flarum.
Aktivera tvåfaktorsautentisering (2FA)
För att förbättra säkerheten, aktivera tvåfaktorsautentisering genom att installera en 2FA-tillägg:
cd /var/www/flarum
composer require ianm/twofactor:"*"
Aktivera tillägget från administrationspanelen.
Konfigurera e-postinställningar
För att skicka e-post från Flarum, konfigurera e-postinställningarna från administrationspanelen. Om du använder Mailgun, installera
ett tillägg:
cd /var/www/flarum
composer require guzzlehttp/guzzle:^7.0
Testa e-postinställningarna genom att skicka ett testmeddelande.
Slutsats
Detta avslutar vår handledning om hur man installerar Flarum på olika Linux-distributioner med både Nginx och Apache. Om du har några frågor eller feedback, vänligen kommentera nedan.