So installierst du OctoberCMS unter Debian 12
October CMS ist eine Webanwendung, die mit dem Laravel-Webframework geschrieben wurde. Sie unterstützt eine Vielzahl von Datenbanken, wie MySQL/MariaDB, PostgreSQL und SQLite. Es kann unter Apache, Nginx, Lighthttpd und Microsoft IIS ausgeführt werden.
Diese Anleitung führt dich durch die Installation von October CMS auf Debian 12 mit dem LEMP Stack (Nginx, MySQL/MariaDB und PHP-FPM), UFW und Certbot.
Voraussetzungen
Um mit dieser Anleitung fortzufahren, brauchst du Folgendes:
- Einen Debian 12 Server.
- Einen Nicht-Root-Benutzer mit Administratorrechten.
- Einen Domainnamen, der auf die IP-Adresse des Servers zeigt.
Installieren der Abhängigkeiten
In diesem Beispiel wirst du October CMS auf dem Debian-Server mit dem LEMP-Stack (Nginx, MySQL/MariaDB und PHP-FPM) installieren. Als erstes installierst du also den LAMP-Stack mit zusätzlichen Abhängigkeiten wie UFW (Uncomplicated Firewall) und Certbot.
Beginne diese Anleitung, indem du dein Debian-Repository mit dem folgenden Befehl aktualisierst.
sudo apt update
Anschließend installierst du die Pakete LAMP Stack, UFW und Certbot mit dem folgenden Befehl.
sudo apt install nginx mariadb-server php composer php-cli php-common php-imap php-redis php-snmp php-xml php-zip php-mbstring php-curl php-mysqli php-intl php-bcmath php-gd php-fpm ufw certbot python3-certbot-nginx
Gib Y ein und drücke ENTER, um die Installation zu bestätigen.
Sobald die Installation abgeschlossen ist, überprüfe die LEMP Stack-Dienste, um sicherzustellen, dass jeder Dienst auf deinem Debian-Server läuft und aktiviert ist.
Wenn der Dienst läuft, solltest du eine aktive (laufende) Ausgabe sehen. Wenn der Dienst aktiviert ist, bestätigt dies, dass der Dienst beim Booten automatisch ausgeführt wird.
Überprüfe den Nginx-Dienst mit dem folgenden Befehl.
sudo systemctl is-enabled nginx sudo systemctl status nginx
Überprüfe den PHP-FPM-Dienst mit dem folgenden Befehl. In diesem Fall hast du PHP-FPM 8.2 aus dem Debian-Repository installiert.
sudo systemctl is-enabled php8.2-fpm sudo systemctl status php8.2-fpm
Schließlich überprüfst du den MariaDB-Server mit dem folgenden Befehl.
sudo systemctl is-enabled mariadb sudo systemctl status mariadb
UFW einrichten
In dieser Anleitung wirst du deinen Debian-Server mit UFW (Uncomplicated Firewall) absichern. In diesem Fall musst du also die Ports für die Protokolle SSH, HTTP und HTTPS öffnen.
Führe den folgenden ufw-Befehl aus, um die Profile OpenSSH und„Nginx Full“ in der UFW zu aktivieren. Das OpenSSH-Profil öffnet den Standard-SSH-Port 22, während das „Nginx Full“-Profil die Ports 80 und 443 für die HTTP- und HTTPS-Protokolle öffnet.
sudo ufw allow OpenSSH sudo ufw allow 'Nginx Full'
Führe nun den folgenden Befehl aus, um UFW zu starten und zu aktivieren. Gib y ein und drücke ENTER, um fortzufahren.
sudo ufw enable
Sobald UFW läuft, solltest du die Ausgabe„Firewall ist aktiv und beim Systemstart aktiviert“ erhalten.
Führe nun den folgenden Befehl aus, um die in der UFW aktivierten Profile zu überprüfen.
sudo ufw status
Vergewissere dich, dass die Profile OpenSSH und „Nginx Full“ aktiviert sind.
MariaDB Server konfigurieren
Nachdem du UFW konfiguriert hast, richtest du nun den MariaDB-Server mit dem Dienstprogramm mariadb-secure-installation ein und erstellst eine neue Datenbank und einen Benutzer für October CMS mit dem mariadb-Client.
Sichere deine MariaDB-Server-Installation, indem du den folgenden Befehl ausführst.
sudo mariadb-secure-installation
Während des Vorgangs wirst du aufgefordert, einige Sicherheitsempfehlungen für den MariaDB-Server einzugeben. Gib Y ein, um die Empfehlung anzuwenden, oder n für No, um sie abzulehnen.
- Die Standardinstallation von MariaDB enthält kein Passwort. Drücke ENTER, wenn du nach dem Passwort gefragt wirst.
- Gib nun Y ein, um das MariaDB Root-Passwort einzurichten. Gib dann das neue Passwort für MariaDB ein und wiederhole das Passwort.
- Gib Y ein, um den anonymen Benutzer aus deiner MariaDB-Installation zu entfernen.
- Gib erneut Y ein, wenn du aufgefordert wirst, die Fernanmeldung für den MariaDB-Root-Benutzer zu deaktivieren.
- Gib Y ein, um den Standard-Datenbanktest aus deiner MariaDB zu entfernen.
- Gib schließlich Y ein, um die Tabellenberechtigungen neu zu laden und die neuen Änderungen anzuwenden.
Nachdem du den MariaDB-Server konfiguriert hast, gib den folgenden Befehl ein, um dich am MariaDB-Server anzumelden und eine neue Datenbank und einen neuen Benutzer für October CMS anzulegen. Gib dein MariaDB Root-Passwort ein, wenn du dazu aufgefordert wirst.
sudo mariadb -u root -p
Führe die folgenden Abfragen aus, um eine neue Datenbank und den Benutzer octobercms mit dem Passwort„password“ anzulegen. Achte darauf, dass du das Passwort durch ein neues, sicheres Passwort änderst.
CREATE USER 'octobercms'@'localhost' IDENTIFIED BY 'password'; CREATE DATABASE octobercms; GRANT ALL PRIVILEGES ON octobercms.* TO 'octobercms'@'localhost'; FLUSH PRIVILEGES;
Führe als Nächstes die folgende Abfrage aus, um die Berechtigungen des Benutzers octobercms zu überprüfen.
SHOW GRANTS FOR 'octobercms'@'localhost';
Stelle sicher, dass der Benutzer octobercms wie folgt auf die Datenbank octobercms zugreifen kann.
Gib nun quit ein, um den MariaDB-Server zu verlassen.
Installation des OctoberCMS Quellcodes
October CMS kann auf verschiedene Arten installiert werden: per Zip oder per Composer. In diesem Beispiel wirst du October CMS über Composer installieren.
Gehe zum Verzeichnis /var/www/directory und lade den Quellcode von October CMS mit dem unten stehenden wget-Befehl herunter. Nach dem Download siehst du die Datei v3.5.0.zip.
cd /var/www/ wget https://github.com/octobercms/october/archive/refs/tags/v3.5.0.zip
Entpacke die Datei v3.5.0.zip mit unzip in das Verzeichnis octobercms. Das bedeutet, dass sich dein October CMS Web-Stammverzeichnis unter /var/www/octobercms befindet.
unzip v3.5.0.zip sudo mv october-* octobercms
Als Nächstes führst du den folgenden Befehl aus, um den Eigentümer von /var/www/octobercms auf den Benutzer www-data und die Gruppe www-data zu ändern. Setze außerdem die Rechte für Verzeichnisse auf 0755 und für Dateien auf 0644.
sudo chown -R www-data:www-data octobercms find /var/www/octobercms -type d -exec chmod 755 {} \; find /var/www/octobercms -type f -exec chmod 644 {} \;
Führe nun den folgenden Composer-Befehl aus, um die PHP-Abhängigkeiten für October CMS zu installieren.
sudo -u www-data composer install
Starte die Installation von October CMS mit dem folgenden Befehl.
sudo -u www-data php artisan october:install
Während des Vorgangs wirst du mit den folgenden Fragen konfrontiert:
- Wähle als Standardsprache en oder Englisch.
- Gib den Domainnamen deiner October CMS-Installation ein. Zum Beispiel http://hwdomain.io/
- Gib die Backend-URL oder den Admin-Pfad für October CMS ein. In diesem Fall verwenden wir octoberadmin.
- Gib die Zahl 1 ein, um die Datenbank-Engine MySQL auszuwählen.
- Gib die Details deiner Datenbank ein.
- Gib ja ein, um die Demodaten und das Theme zu installieren.
- Gib die kostenlose Lizenz für October CMS ein, um fortzufahren.
Unten siehst du einen Screenshot der October CMS Installation.
Website-Konfigurationen für October CMS.
Ausgabe während der October CMS-Installation.
Sobald die Oktober CMS-Installation abgeschlossen ist, siehst du die folgende Ausgabe.
Zum Schluss führst du den folgenden Befehl aus, um die Datenbank zu migrieren.
sudo -u www-data php artisan october:migrate
Nginx Serverblock konfigurieren
Nachdem du October CMS heruntergeladen und das Web-Root-Verzeichnis konfiguriert hast, erstellst du eine neue Nginx-Serverblock-Konfiguration, die für den Betrieb von October CMS verwendet wird. Vergewissere dich, dass du deinen Domainnamen bereit hast.
Führe den unten stehenden nano-Editor-Befehl aus, um eine neue Datei /etc/nginx/sites-available/octobercms.conf zu erstellen.
sudo nano /etc/nginx/sites-available/octobercms.conf
Füge die folgende Konfiguration ein und achte darauf, dass du den Domainnamen hwdomain.io durch deine Domain ersetzt.
server { listen 80; server_name hwdomain.io; index index.php index.html; root /var/www/octobercms; location / { # Let October CMS handle everything by default. # The path not resolved by the October CMS router will return October CMS's 404 page. # Everything that does not match with the allowlist below will fall into this. rewrite ^/.*$ /index.php last; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php8.2-fpm.sock; fastcgi_read_timeout 120s; } # Allowlist location ~ ^/favicon\.ico { try_files $uri /index.php; } location ~ ^/sitemap\.xml { try_files $uri /index.php; } location ~ ^/robots\.txt { try_files $uri /index.php; } location ~ ^/humans\.txt { try_files $uri /index.php; } # Block all .dotfiles except well-known location ~ /\.(?!well-known).* { deny all; } ## Let nginx return 404 if static file not exists location ~ ^/storage/app/uploads/public { try_files $uri 404; } location ~ ^/storage/app/media { try_files $uri 404; } location ~ ^/storage/app/resources { try_files $uri 404; } location ~ ^/storage/temp/public { try_files $uri 404; } location ~ ^/modules/.*/assets { try_files $uri 404; } location ~ ^/modules/.*/resources { try_files $uri 404; } location ~ ^/modules/.*/behaviors/.*/assets { try_files $uri 404; } location ~ ^/modules/.*/behaviors/.*/resources { try_files $uri 404; } location ~ ^/modules/.*/widgets/.*/assets { try_files $uri 404; } location ~ ^/modules/.*/widgets/.*/resources { try_files $uri 404; } location ~ ^/modules/.*/formwidgets/.*/assets { try_files $uri 404; } location ~ ^/modules/.*/formwidgets/.*/resources { try_files $uri 404; } location ~ ^/modules/.*/reportwidgets/.*/assets { try_files $uri 404; } location ~ ^/modules/.*/reportwidgets/.*/resources { try_files $uri 404; } location ~ ^/plugins/.*/.*/assets { try_files $uri 404; } location ~ ^/plugins/.*/.*/resources { try_files $uri 404; } location ~ ^/plugins/.*/.*/behaviors/.*/assets { try_files $uri 404; } location ~ ^/plugins/.*/.*/behaviors/.*/resources { try_files $uri 404; } location ~ ^/plugins/.*/.*/reportwidgets/.*/assets { try_files $uri 404; } location ~ ^/plugins/.*/.*/reportwidgets/.*/resources { try_files $uri 404; } location ~ ^/plugins/.*/.*/formwidgets/.*/assets { try_files $uri 404; } location ~ ^/plugins/.*/.*/formwidgets/.*/resources { try_files $uri 404; } location ~ ^/plugins/.*/.*/widgets/.*/assets { try_files $uri 404; } location ~ ^/plugins/.*/.*/widgets/.*/resources { try_files $uri 404; } location ~ ^/themes/.*/assets { try_files $uri 404; } location ~ ^/themes/.*/resources { try_files $uri 404; } }
Speichere und schließe die Datei, wenn du fertig bist.
Als Nächstes führst du den folgenden Befehl aus, um die Serverblockdatei octobercms.conf zu aktivieren und die Nginx-Syntax zu überprüfen.
sudo ln -s /etc/nginx/sites-available/octobercms.conf /etc/nginx/sites-enabled/ sudo nginx -t
Wenn die Syntax korrekt ist, solltest du eine Ausgabe wie „syntax is ok – test is successful“ erhalten.
Zum Schluss wendest du deine Änderungen auf Nginx an, indem du den Nginx-Dienst mit dem unten stehenden Befehl neu startest.
sudo systemctl restart nginx
OctoberCMS mit SSL/TLS-Zertifikaten absichern
Jetzt läuft dein October CMS und ist zugänglich. Um jedoch sicherzustellen, dass deine Installation sicher ist, implementierst du HTTPS, indem du SSL/TLS-Zertifikate von letsencrypt generierst.
Führe den unten stehenden Befehl aus, um SSl/TLS-Zertifikate für deine October CMS-Installation zu erzeugen. Achte darauf, dass du die E-Mail-Adresse und den Domainnamen mit deinen Daten änderst.
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email alice@hwdomain.io -d hwdomain.io
Sobald der Vorgang abgeschlossen ist, wird dein Domainname automatisch mit HTTPS konfiguriert. Und deine SSL/TLS-Zertifikate werden im Verzeichnis /etc/letsencrypt/live/yourdomain.com verfügbar sein.
Zugriff auf OctoberCMS
Rufe den Domainnamen deiner October CMS-Installation auf, z.B. https://hwdomain.io/, und benutze deinen bevorzugten Webbrowser.
Wenn deine Installation erfolgreich war, solltest du die Standard-Homepage von OctoberCMS wie folgt sehen.
Klicke auf die Schaltfläche„Backend-Bereich„, um auf die October CMS-Admin-Seite zu gelangen.
Gib die Daten des neuen Admin-Benutzers ein: Name, E-Mail-Adresse und Passwort. Klicke zur Bestätigung auf Konto erstellen.
Wenn du fertig bist, solltest du das October CMS Administrator-Dashboard wie folgt sehen.
Fazit
Herzlichen Glückwunsch! Du hast nun die Installation von October CMS auf dem Debian 12 Server abgeschlossen. Du hast October CMS mit dem LEMP Stack (Nginx, MariaDB und PHP-FPM) installiert. Außerdem hast du deine Installation mit UFW (Uncomplicated Firewall) und SSL/TLS über Letsencrypt abgesichert.