Installation von Fork CMS mit NGINX auf CentOS 8

Fork ist ein einfach zu bedienendes Open-Source-CMS, das mit Hilfe von Symfony-Komponenten erstellt wurde. In diesem Tutorial gehen wir durch die Installation und Einrichtung des Fork CMS auf dem CentOS 8-System, indem wir Nginx als Webserver und MariaDB als Datenbank-Engine verwenden, und optional können Sie die Transportschicht mit Hilfe des Acme.sh-Clients und der Let’s Encrypt-Zertifizierungsstelle sichern, um SSL-Unterstützung hinzuzufügen.

Anforderungen

Voraussetzungen für die Installation und den Betrieb von Fork CMS sind:

  • PHP Version 7.1 oder höher.
  • Die folgenden PHP-Erweiterungen sollten installiert und aktiviert sein: cURL, libxml, DOM, SimpleXML, SPL, PDO (mit MySQL-Treiber), mb_string, iconv, GD2-Grafikbibliothek, JSON, PCRE, intl.
  • MySQL 5.0 oder höher.
  • NGINX oder Apache mit .htaccess, mod_rewrite, , (optional, mod_expiresaber empfohlen), mod_deflate(optional) aktiviert.

Voraussetzungen

  • Ein Betriebssystem mit CentOS 8.
  • Ein Nicht-Root-Benutzer mit Sudo-Berechtigungen.

Erste Schritte

Überprüfen Sie Ihre CentOS-Version:

cat /etc/centos-release
# CentOS Linux release 8.0.1905 (Core)

Richten Sie die Zeitzone ein:

timedatectl list-timezones
sudo timedatectl set-timezone 'Region/City'

Aktualisieren Sie Ihre Betriebssystempakete (Software). Dies ist ein wichtiger erster Schritt, da er sicherstellt, dass Sie über die neuesten Updates und Sicherheitsfixes für die Standardsoftwarepakete Ihres Betriebssystems verfügen:

sudo yum update -y

Installieren Sie einige wichtige Pakete, die für die grundlegende Verwaltung des CentOS-Betriebssystems erforderlich sind:

sudo yum install -y curl wget vim git unzip socat bash-completion epel-release

Schritt 1 – PHP und PHP-Erweiterungen installieren

Installieren Sie PHP sowie die notwendigen PHP-Erweiterungen für das Fork CMS:

sudo yum install -y php php-cli php-fpm php-common php-mysqlnd php-curl php-json php-zip php-gd php-xml php-mbstring php-opcache php-intl

Um in Modulen kompiliertes PHP anzuzeigen, können Sie es ausführen:

php -m
ctype
curl
exif
fileinfo
. . .
. . .

Prüfen Sie die PHP-Version:

php --version
# PHP 7.2.11 (cli) (built: Oct 9 2018 15:09:36) ( NTS )

Starten und aktivieren Sie den PHP-FPM-Dienst:

sudo systemctl start php-fpm.service
sudo systemctl enable php-fpm.service

Wir können zum nächsten Schritt übergehen, nämlich der Installation und Einrichtung der Datenbank.

Schritt 2 – Installieren Sie MariaDB und erstellen Sie eine Datenbank für Fork CMS

Installieren Sie den MariaDB-Datenbankserver:

sudo yum install -y mariadb-server

Prüfen Sie die MariaDB-Version:

mysql --version
# mysql Ver 15.1 Distrib 10.3.11-MariaDB, for Linux (x86_64) using readline 5.1

Starten und aktivieren Sie den MariaDB-Dienst:

sudo systemctl start mariadb.service
sudo systemctl enable mariadb.service

Skript ausführenmysql_secure installation, um die Sicherheit von MariaDB zu verbessern und das Passwort für den Benutzer MariaDB root zu setzen:

sudo mysql_secure_installation

Beantworten Sie jede der Fragen:

Would you like to setup VALIDATE PASSWORD plugin? N
New password: your_secure_password
Re-enter new password: your_secure_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

Verbinden Sie sich als Root-Benutzer mit der MariaDB-Shell:

sudo mysql -u root -p
# Enter password

Erstellen Sie eine leere MariaDB-Datenbank und einen Benutzer für Fork CMS und merken Sie sich die Zugangsdaten:

mysql> CREATE DATABASE dbname;
mysql> GRANT ALL ON dbname.* TO 'username' IDENTIFIED BY 'mypassword';
mysql> FLUSH PRIVILEGES;

Ersetzen Sie das Wort mypassword durch ein sicheres Passwort Ihrer Wahl. Verlassen Sie die MariaDB:

mysql> exit

Ersetzen Sie dbname, username und password mit Ihren eigenen Namen.

Schritt 3 – Installieren Sie den Acme.sh-Client und erhalten Sie das Let’s Encrypt-Zertifikat (optional)

Die Sicherung Ihrer Website mit HTTPS ist nicht notwendig, aber es ist eine gute Praxis, um den Verkehr Ihrer Website zu sichern. Um ein SSL-Zertifikat von Let’s Encrypt zu erhalten, werden wir den Acme.sh-Client verwenden. Acme.sh ist eine reine Unix-Shell-Software, um TLS-Zertifikate von Let’s Encrypt ohne Abhängigkeiten zu erhalten.

Laden Sie acme.sh herunter und installieren Sie es:

sudo su - root
git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh 
./acme.sh --install --accountemail [email protected]
source ~/.bashrc
cd ~

Überprüfen Sie die Version von acme.sh:

acme.sh --version
# v2.8.2

Erhalten Sie RSA- und ECC/ECDSA-Zertifikate für Ihre Domain/Hostnamen:

# RSA 2048
acme.sh --issue --standalone -d example.com --keylength 2048
# ECDSA
acme.sh --issue --standalone -d example.com --keylength ec-256

Wenn Sie gefälschte Zertifikate zum Testen benötigen, können Sie Folgendes hinzufügen --staging flag to the above commands.

Nachdem Sie die oben genannten Befehle ausgeführt haben, sind Ihre Zertifikate und Schlüssel in:

  • Für RSA: /home/username/example.com directory.
  • Für ECC/ECDSA: /home/username/example.com_ecc directory.

Um Ihre ausgestellten Zertifikate aufzulisten, können Sie diese ausführen:

acme.sh --list

Erstellen Sie ein Verzeichnis zur Speicherung Ihrer Zertifikate. Wir werden ein Verzeichnis verwenden /etc/letsencrypt.

mkdir -p /etc/letsecnrypt/example.com
sudo mkdir -p /etc/letsencrypt/example.com_ecc

Installieren/Kopieren von Zertifikaten nach /etc/letsencrypt Verzeichnis.

# RSA
acme.sh --install-cert -d example.com --cert-file /etc/letsencrypt/example.com/cert.pem --key-file /etc/letsencrypt/example.com/private.key --fullchain-file /etc/letsencrypt/example.com/fullchain.pem --reloadcmd "sudo systemctl reload nginx.service"
# ECC/ECDSA
acme.sh --install-cert -d example.com --ecc --cert-file /etc/letsencrypt/example.com_ecc/cert.pem --key-file /etc/letsencrypt/example.com_ecc/private.key --fullchain-file /etc/letsencrypt/example.com_ecc/fullchain.pem --reloadcmd "sudo systemctl reload nginx.service"

Alle Zertifikate werden automatisch alle 60 Tage erneuert.

Nach Erhalt der Zertifikate verlassen Sie den Benutzer root und kehren zum normalen sudo-Benutzer zurück:

exit

Schritt 4 – Installieren und Konfigurieren von NGINX

Installieren Sie den NGINX-Webserver:

sudo yum install -y nginx

Prüfen Sie die NGINX-Version:

nginx -v
# nginx version: nginx/1.14.1

Konfigurieren Sie NGINX für Fork CMS. Führen sudo vim /etc/nginx/conf.d/fork.confSie die folgende Konfiguration aus und fügen Sie sie hinzu:

server {
    listen 80;
    listen 443 ssl;
    root /var/www/fork;
    index index.php index.html;

    server_name example.com;
ssl_certificate /etc/letsencrypt/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/example.com/private.key;
ssl_certificate /etc/letsencrypt/example.com_ecc/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/example.com_ecc/private.key; location / { # Checks whether the requested url exists as a file $uri or directory $uri/ in the root, else redirect to /index.php. try_files $uri $uri/ @redirects; } location @redirects { rewrite ^ /index.php; } location ~ \.php$ { try_files $uri =404; include fastcgi_params; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_read_timeout 60; fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } # Don't pollute the logs with common requests location = /robots.txt { access_log off; log_not_found off; } location = /favicon.ico { access_log off; log_not_found off; } # As Fork CMS has the app_root as doc_root, we need to restrict access to a few things for security purposes! location ~* ^/(composer\..*|vendor\/.*|Procfile$|\.git\/.*|src\/Console.*|.*\.gitignore|\.editorconfig|\.travis.yml|autoload\.php|bower\.json|phpunit\.xml\.dist|.*\.md|app\/logs\/.*|app\/config\/.*|src\/Frontend\/Cache\/CompiledTemplates.*|src\/Frontend\/Cache\/Locale\/.*\.php|src\/Frontend\/Cache\/Navigation\/.*\.php|src\/Frontend\/Cache\/Search\/.*|src\/Backend\/Cache\/CompiledTemplates\/.*|src\/Backend\/Cache\/Locale\/.*\.php)$ { deny all; access_log off; log_not_found off; } # Deny access to dot-files. location ~ /\. { deny all; access_log off; log_not_found off; } }

Prüfen Sie die NGINX-Konfiguration auf Syntaxfehler:

sudo nginx -t

NGINX-Dienst neu laden:

sudo systemctl reload nginx.service

Schritt 5 – Composer installieren

Installieren Sie Composer, den PHP-Abhängigkeitsmanager global:

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === 'a5c698ffe4b8e849a443b120cd5ba38043260d5c4023dbf93e1558871f1f07f58274fc6f4c93bcfd858c6bd0775cd8d1') { 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

Komponistenversion prüfen:

composer --version
# Composer version 1.9.0 2019-08-02 17:46:47

Schritt 6 – Fork CMS installieren

Erstellen Sie ein Dokumentenstammverzeichnis.

sudo mkdir -p /var/www/fork

Ändern Sie den Besitzer des /var/www/forkVerzeichnisses auf den Benutzer, der gerade angemeldet ist, in meinem Fall ist dieser Benutzername johndoe.

sudo chown -R johndoe:johndoe /var/www/fork

Ersetzen Sie im obigen Befehl johndoe durch Ihren Login-Benutzernamen! Laden Sie die neueste stabile Version von Fork CMS von der Befehlszeile herunter.

cd /var/www/fork
composer create-project forkcms/forkcms .

Ändern Sie den Eigentümer des /var/www/forkVerzeichnisses auf www-data.

sudo chown -R nginx:nginx /var/www/fork

Bearbeiten Sie die app/config/parameters.yml.distDatei und legen Sie die Datenbankinformationen fest.

sudo vim /var/www/fork/app/config/parameters_install.yml

Ausführen sudo vim /etc/php-fpm.d/www.confund Benutzer und Gruppe auf nginx setzen:

sudo vim /etc/php-fpm.d/www.conf

Verzeichnis erstellen /var/lib/php/sessionund dessen Eigentümer auf den Benutzer ändern nginx:

sudo mkdir -p /var/lib/php/session
sudo chown -R nginx:nginx /var/lib/php/session

Neustart php-fpm.service:

sudo systemctl restart php-fpm.service

Öffnen Sie mit Ihrem bevorzugten Webbrowser Ihre Website und folgen Sie dem Installationsprogramm des Fork CMS. Nachdem Sie dem Installationsprogramm gefolgt sind, sollten Sie Fork zum Laufen gebracht haben. Um auf den Fork-Administrationsbereich zuzugreifen, hängen /privateSie einfach die URL Ihrer Website an.

Schritt 7 – Vervollständigen Sie die Einrichtung des Fork CMS

Stellen Sie sicher, dass Ihr Server alle Anforderungen erfüllt, und fahren Sie fort:

Gabel-CMS-Installationsprogramm

Wählen Sie die Sprache und klicken Sie auf Weiter:

Spracheinstellungen

Wählen Sie die gewünschten Einstellungen und klicken Sie auf Weiter:

Einstellungen

Geben Sie Ihre Datenbankeinstellungen ein und klicken Sie auf Weiter. Stellen Sie sicher, dass Sie die Datenbank bereits erstellt haben.

Datenbank-Einstellungen

Benutzer anlegen und die Installation beenden:

Benutzer anlegen

Die folgende Seite wird angezeigt, nachdem Sie alle oben genannten Schritte durchgeführt haben:

Installation beendet

Sie haben Fork CMS erfolgreich installiert. Viel Spaß mit Ihrem neuen CMS!

Links

Das könnte Dich auch interessieren …