Flarum Forum mit Nginx und LE SSL auf CentOS 8 installieren

Flarum ist eine freie, quelloffene Forensoftware der nächsten Generation, die es Ihnen erleichtert, eine erfolgreiche Online-Community zu gründen und auszubauen. Es ist eine einfache, leichtgewichtige, schnelle und mobilitätsfreundliche Software auf PHP-Basis. Sie verfügt über eine Vielzahl von Funktionen, darunter eine elegante Benutzeroberfläche, eine Zwei-Fenster-Benutzeroberfläche, unendliches Scrollen, Floating Composer, volle Reaktionsfähigkeit und vieles mehr.

In diesem Tutorial erklären wir Ihnen, wie Sie das Flarum-Forum auf dem CentOS 8-Server installieren.

Anforderungen

  • Ein Server mit CentOS 8.
  • Ein gültiger Domain-Name, der auf Ihre Server-IP zeigt
  • Auf dem Server ist ein Root-Passwort konfiguriert.

Erste Schritte

Bevor Sie beginnen, müssen Sie EPEL und das Remi-Repository in Ihrem System installieren. Installieren Sie zunächst das EPEL-Repository mit dem folgenden Befehl:

dnf install epel-release -y

Als nächstes laden Sie das Remi-Repository mit folgendem Befehl herunter und installieren es:

wget http://rpms.remirepo.net/enterprise/remi-release-8.rpm
 rpm -Uvh remi-release-8.rpm

Nginx, MariaDB und PHP installieren

Installieren Sie zunächst den Nginx-Webserver und MariaDB-Server mit dem folgenden Befehl:

dnf install nginx mariadb-server -y

Sobald beide Pakete installiert sind, müssen Sie das Modul php:remi-7.3 aktivieren, um PHP 7.3 installieren zu können. Sie können es mit dem folgenden Befehl aktivieren:

dnf module enable php:remi-7.3

Als nächstes installieren Sie PHP mit anderen erforderlichen Abhängigkeiten mit dem folgenden Befehl:

dnf install php php-fpm php-common php-opcache php-pecl-apcu php-cli php-pear php-pdo php-mysqlnd php-pgsql php-pecl-mongodb php-pecl-redis php-pecl-memcache php-pecl-memcached php-gd php-mbstring php-mcrypt php-xml -y

Wenn alle Pakete installiert sind, starten Sie den Nginx-, MariaDB- und PHP-FPM-Dienst und aktivieren Sie diese nach dem Systemneustart mit dem folgenden Befehl:

systemctl start nginx
 systemctl start mariadb
 systemctl start php-fpm
 systemctl enable nginx
 systemctl enable mariadb
 systemctl enable php-fpm

Sobald Sie fertig sind, können Sie mit dem nächsten Schritt fortfahren.

Konfigurieren der MariaDB-Datenbank

Standardmäßig ist MariaDB nicht gesichert. Sie können es mit dem folgenden Skript sichern:

mysql_secure_installation

Beantworten Sie alle Fragen wie unten gezeigt:

Enter current password for root (enter for none):
Set root password? [Y/n] Y
New password:
Re-enter new password:
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

Wenn Sie fertig sind, loggen Sie sich mit dem folgenden Befehl in die MariaDB-Shell ein:

mysql -u root -p

Geben Sie bei der Eingabeaufforderung Ihr Root-Passwort an und erstellen Sie dann eine Datenbank und einen Benutzer für Flarum mit folgendem Befehl:

MariaDB [(none)]> CREATE DATABASE flarumdb;
 MariaDB [(none)]> GRANT ALL PRIVILEGES on flarumdb.* to 'flarum'@'localhost' identified by 'password';

Als nächstes löschen Sie die Privilegien und verlassen die MariaDB-Shell mit folgendem Befehl:

MariaDB [(none)]> FLUSH PRIVILEGES;
 MariaDB [(none)]> EXIT;

Sobald Sie fertig sind, können Sie mit dem nächsten Schritt fortfahren.

Konfigurieren Sie PHP-FPM für Nginx

Als nächstes müssen Sie PHP-FPM für die Zusammenarbeit mit Nginx konfigurieren. Sie können dies tun, indem Sie die Datei www.conf bearbeiten:

nano /etc/php-fpm.d/www.conf

Ändern Sie den Benutzer- und Gruppennamen von apache in nginx wie unten gezeigt:

user = nginx
group = nginx
listen.owner = nginx
listen.group = nginx

Suchen Sie als nächstes die folgende Zeile:

;listen = /run/php-fpm/www.sock

Und ersetzen Sie es durch die folgende Zeile:

listen = 127.0.0.1:9000

Speichern und schließen Sie die Datei, wenn Sie fertig sind. Starten Sie dann den PHP-FPM-Dienst neu, um die Änderungen zu übernehmen:

systemctl restart php-fpm

Flarum installieren

Bevor Sie das Flarum installieren, müssen Sie den Composer in Ihrem System installieren.

Sie können es mit dem folgenden Befehl installieren:

curl -sS https://getcomposer.org/installer | php

Nach der Installation sollten Sie die folgende Ausgabe erhalten:

All settings correct for using Composer
Downloading...

Composer (version 1.9.2) successfully installed to: /root/composer.phar
Use it: php composer.phar

Verschieben Sie als nächstes die Composer-Binärdatei in das Verzeichnis /usr/local/bin und erteilen Sie die entsprechende Berechtigung:

mv composer.phar /usr/local/bin/composer
 chmod 755 /usr/local/bin/composer

Wechseln Sie als nächstes in das Verzeichnis zum Nginx-Dokumentenstamm und erstellen Sie mit dem folgenden Befehl ein Flarum-Projekt:

cd /var/www/html
 composer create-project flarum/flarum . --stability=beta

Geben Sie dann die korrekten Berechtigungen für das Web-Stammverzeichnis von Nginx mit dem folgenden Befehl ein:

chown -R nginx:nginx /var/www/html
 chmod -R 755 /var/www/html
 chown -R nginx:nginx /var/lib/php

Sobald Sie fertig sind, können Sie mit dem nächsten Schritt fortfahren.

Konfigurieren Sie Nginx für Flarum

Als nächstes müssen Sie eine Nginx-Konfigurationsdatei für den virtuellen Host für Nginx erstellen. Sie können sie mit dem folgenden Befehl erstellen:

nano /etc/nginx/conf.d/flarum.conf

Fügen Sie die folgenden Zeilen hinzu:

server {
    listen   80;
    server_name  flarum.example.com;

# note that these lines are originally from the "location /" block
root   /var/www/html/public;
index index.php index.html index.htm;

location / { try_files $uri $uri/ /index.php?$query_string; }
location /api { try_files $uri $uri/ /api.php?$query_string; }
location /admin { try_files $uri $uri/ /admin.php?$query_string; }

location /flarum {
    deny all;
    return 404;
}

location ~ \.php$ {
    try_files $uri =404;
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
}

location ~* \.html$ {
    expires -1;
}

location ~* \.(css|js|gif|jpe?g|png)$ {
    expires 1M;
    add_header Pragma public;
    add_header Cache-Control "public, must-revalidate, proxy-revalidate";
}
gzip on;
gzip_http_version 1.1;
gzip_vary on;
gzip_comp_level 6;
gzip_proxied any;
gzip_types application/atom+xml
           application/javascript
           application/json
           application/vnd.ms-fontobject
           application/x-font-ttf
           application/x-web-app-manifest+json
           application/xhtml+xml
           application/xml
           font/opentype
           image/svg+xml
           image/x-icon
           text/css
           #text/html -- text/html is gzipped by default by nginx
           text/plain
           text/xml;
gzip_buffers 16 8k;
gzip_disable "MSIE [1-6]\.(?!.*SV1)";
   }

Speichern und schließen Sie die Datei, wenn Sie fertig sind. Als nächstes müssen Sie die hash_bucket-Größe in der Datei nginx.conf erhöhen.

Sie können dies tun, indem Sie die Datei /etc/nginx/nginx.conf bearbeiten:

nano /etc/nginx/nginx.conf

Fügen Sie die folgende Zeile genau über der letzten Zeile ein:

server_names_hash_bucket_size 64;

Speichern und schließen Sie die Datei. Überprüfen Sie dann Nginx mit dem folgenden Befehl auf einen Syntaxfehler:

nginx -t

Sie sollten die folgende Ausgabe sehen:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Starten Sie schließlich den Nginx- und PHP-FPM-Dienst neu, um die Änderungen zu übernehmen:

systemctl restart php-fpm
 systemctl restart nginx

Konfigurieren von SELinux und Firewall

Zuerst müssen Sie eine Firewall-Regel erstellen, um HTTP- und HTTPS-Dienste von externen Netzwerken zuzulassen. Sie können dies mit dem folgenden Befehl erlauben:

firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
 firewall-cmd --reload

Standardmäßig ist SELinux in CentOS 8 aktiviert. Sie müssen also SELinux für Flarum konfigurieren, damit Flarum korrekt funktioniert. Sie können SELinux mit dem folgenden Befehl konfigurieren:

setsebool httpd_can_network_connect on -P

Sobald Sie fertig sind, können Sie mit dem nächsten Schritt fortfahren.

Zugriff auf die Flarum-Web-Benutzeroberfläche

Öffnen Sie nun Ihren Webbrowser und geben Sie die URL http://flarum.example.com ein. Sie werden auf die folgende Seite umgeleitet:

Flarum Forum installer

Geben Sie Ihren Forumnamen, Datenbankdetails, Admin-Benutzernamen und Passwort ein und klicken Sie auf die Schaltfläche Flarum installieren. Sobald die Installation erfolgreich abgeschlossen ist, sollten Sie das Flarum-Dashboard auf der folgenden Seite sehen:

Flarum Forum

Sicheres Flarum mit Let’s Encrypt SSL

Flarum ist jetzt installiert und konfiguriert. Es ist an der Zeit, es mit Let’s Encrypt free SSL zu sichern.

Dazu müssen Sie den certbot-Client auf Ihren Server herunterladen. Sie können ihn herunterladen und die korrekte Berechtigung einstellen, indem Sie den folgenden Befehl ausführen:

wget https://dl.eff.org/certbot-auto
 mv certbot-auto /usr/local/bin/certbot-auto
 chown root /usr/local/bin/certbot-auto
 chmod 0755 /usr/local/bin/certbot-auto

Führen Sie nun den folgenden Befehl aus, um ein SSL-Zertifikat für Ihre Flarum-Website zu erhalten und zu installieren.

certbot-auto --nginx -d flarum.example.com

Der obige Befehl installiert zunächst alle erforderlichen Abhängigkeiten auf Ihrem Server. Nach der Installation werden Sie aufgefordert, eine E-Mail-Adresse anzugeben und die unten dargestellte Laufzeit des Dienstes zu akzeptieren:

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator apache, Installer apache
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): [email protected]

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel: A

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y 


Obtaining a new certificate
Performing the following challenges:
http-01 challenge for flarum.example.com
Waiting for verification...
Cleaning up challenges
Deploying Certificate to VirtualHost /etc/nginx/conf.d/flarum.conf

Als Nächstes müssen Sie wählen, ob HTTP-Verkehr wie unten gezeigt zu HTTPS umgeleitet werden soll oder nicht:

Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2

Geben Sie 2 ein und drücken Sie Enter, um fortzufahren. Sobald die Installation abgeschlossen ist, sollten Sie die folgende Ausgabe sehen:

Redirecting all traffic on port 80 to ssl in /etc/nginx/conf.d/flarum.conf

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://flarum.example.com

You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=flarum.example.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/flarum.example.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/flarum.example.com/privkey.pem
   Your cert will expire on 2020-03-23. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot-auto
   again with the "certonly" option. To non-interactively renew *all*
   of your certificates, run "certbot-auto renew"
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

Das war’s! Sie können nun über die sichere URL https://flarum.example.com auf Ihre Flarum-Website zugreifen.

Das könnte Dich auch interessieren …