So installierst du Fuel CMS mit Nginx und Let’s Encrypt SSL auf Ubuntu 22.04

Fuel CMS ist ein Open-Source Content Management System, das für Websites verwendet wird. Es basiert auf dem CodeIgniter PHP Web Framework und wird für die fortgeschrittene Webentwicklung verwendet. Es hilft den Nutzern, benutzerdefinierte Module zu erstellen und den CMS-Teil nach ihren Anforderungen anzuzeigen und zu nutzen. Es bietet eine einfache und benutzerfreundliche Weboberfläche, um Websites von jedem Gerät aus zu verwalten.

In diesem Artikel wird erklärt, wie du das Fuel CMS System mit Nginx und Let’s Encrypt SSL auf Ubuntu 22.04 installierst.

Voraussetzungen

  • Ein Server, auf dem Ubuntu 22.04 läuft.
  • Ein Domainname ist auf die IP deines Servers verlinkt.
  • Ein Root-Passwort ist auf dem Server konfiguriert.

Aktualisiere das System

Zunächst solltest du deine Systempakete auf die neueste Version aktualisieren. Du kannst sie mit dem folgenden Befehl aktualisieren:

apt-get update -y
apt-get upgrade -y

Sobald alle Pakete aktualisiert sind, kannst du mit dem nächsten Schritt fortfahren.

Nginx, MariaDB und PHP installieren

Als Nächstes musst du den Webserver Nginx, MariaDB, PHP und andere PHP-Erweiterungen auf deinem System installieren. Du kannst alle Pakete mit dem folgenden Befehl installieren:

apt-get install nginx mariadb-server php php-cli php-fpm php-mysqli php-curl php-gd php-xml php-common unzip -y

Sobald alle Pakete installiert sind, bearbeite die Datei php.ini und ändere einige Standard-PHP-Einstellungen:

nano /etc/php/8.1/fpm/php.ini

Ändere die folgenden Zeilen:

memory_limit = 256M
upload_max_filesize = 100M
max_execution_time = 360
date.timezone = UTC

Speichere und schließe die Datei und starte den PHP-FPM-Dienst neu, um die Änderungen zu übernehmen:

systemctl restart php8.1-fpm

MariaDB-Datenbank konfigurieren

Als Nächstes musst du eine Datenbank und einen Benutzer für Fuel CMS einrichten. Melde dich zunächst mit folgendem Befehl bei der MariaDB-Konsole an:

mysql

Sobald du verbunden bist, erstelle eine Datenbank und einen Benutzer mit dem folgenden Befehl:

MariaDB [(none)]> CREATE DATABASE fuel;
MariaDB [(none)]> GRANT ALL ON fuel.* TO 'fuel'@'localhost' IDENTIFIED BY 'password';

Als Nächstes löschst du die Berechtigungen und beendest MariaDB mit dem folgenden Befehl:

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

Jetzt ist MariaDB für Fuel CMS konfiguriert. Du kannst nun mit dem nächsten Schritt fortfahren.

Fuel CMS installieren

Erstelle zunächst mit dem folgenden Befehl ein Verzeichnis, in dem du die Inhalte von Fuel CMS speichern möchtest:

mkdir -p /var/www/html/fuel

Als Nächstes navigierst du zum Fuel CMS-Verzeichnis und lädst die neueste Version von Fuel CMS mit dem folgenden Befehl herunter:

cd /var/www/html/fuel
wget https://github.com/daylightstudio/FUEL-CMS/archive/master.zip

Sobald der Download abgeschlossen ist, entpackst du die heruntergeladene Datei mit dem folgenden Befehl:

unzip master.zip

Als Nächstes verschiebst du den gesamten Inhalt des entpackten Verzeichnisses mit folgendem Befehl in dein aktuelles Verzeichnis:

mv FUEL-CMS-master/* .

Als Nächstes bearbeitest du die Datei database.php und definierst deine Datenbankeinstellungen:

nano fuel/application/config/database.php

Ändere die folgenden Zeilen:

$db['default'] = array(
        'dsn'   => '',
        'hostname' => 'localhost',
        'username' => 'fuel',
        'password' => 'password',
        'database' => 'fuel',
        'dbdriver' => 'mysqli',
        'dbprefix' => '',
        'pconnect' => FALSE,

Als Nächstes importierst du das Fuel CMS-Schema mit folgendem Befehl in die Fuel-Datenbank:

mysql -u fuel -p fuel < fuel/install/fuel_schema.sql

Als Nächstes bearbeitest du die Datei MY_fuel.php und aktivierst den Admin-Login:

nano fuel/application/config/MY_fuel.php

Ändere den Wert FALSE in TRUE, wie unten gezeigt:

$config['admin_enabled’] = TRUE;

Speichere und schließe die Datei, erstelle dann ein Sitzungsverzeichnis und lege die richtigen Besitzverhältnisse fest:

mkdir -p /var/lib/php/session
chown -R www-data:www-data /var/lib/php/session
chown -R www-data:www-data /var/www/html/fuel

Wenn du damit fertig bist, kannst du mit dem nächsten Schritt fortfahren.

Nginx für Fuel CMS konfigurieren

Erstelle zunächst eine Konfigurationsdatei für den virtuellen Nginx-Host, um Fuel CMS zu bedienen.

nano /etc/nginx/conf.d/fuel.conf

Füge die folgenden Zeilen hinzu:

server {

listen 80;
root /var/www/html/fuel;
index index.php index.html index.htm;
server_name fuelcms.example.com;

location / {
try_files $uri $uri/ /index.php?q=$uri&$args;
}

    location ~ \.php$ {
    include snippets/fastcgi-php.conf;
    fastcgi_pass           unix:/var/run/php/php8.1-fpm.sock;
    fastcgi_param   SCRIPT_FILENAME $document_root$fastcgi_script_name;
     }


}

Speichere und schließe die Datei und überprüfe Nginx mit dem folgenden Befehl auf Syntaxfehler:

nginx -t

Du solltest die folgende Ausgabe erhalten:

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

Starte anschließend den Nginx-Dienst neu, um die Änderungen zu übernehmen:

systemctl reload nginx

Du kannst nun den Status von Nginx mit folgendem Befehl überprüfen:

systemctl status nginx

Du solltest die folgende Ausgabe sehen:

? nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2022-11-20 11:20:17 UTC; 8min ago
       Docs: man:nginx(8)
    Process: 77816 ExecReload=/usr/sbin/nginx -g daemon on; master_process on; -s reload (code=exited, status=0/SUCCESS)
   Main PID: 76763 (nginx)
      Tasks: 2 (limit: 2242)
     Memory: 3.0M
        CPU: 62ms
     CGroup: /system.slice/nginx.service
             ??76763 "nginx: master process /usr/sbin/nginx -g daemon on; master_process on;"
             ??77817 "nginx: worker process" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""

Nov 20 11:20:17 ubuntu2204 systemd[1]: Starting A high performance web server and a reverse proxy server...
Nov 20 11:20:17 ubuntu2204 systemd[1]: Started A high performance web server and a reverse proxy server.
Nov 20 11:28:14 ubuntu2204 systemd[1]: Reloading A high performance web server and a reverse proxy server...
Nov 20 11:28:14 ubuntu2204 systemd[1]: Reloaded A high performance web server and a reverse proxy server.

Jetzt ist Nginx so konfiguriert, dass Fuel CMS darauf läuft. Du kannst nun auf Fuel CMS zugreifen.

Zugriff auf die Fuel CMS-Weboberfläche

Öffne nun deinen Webbrowser und rufe das Fuel CMS über die URL http://fuelcms.example.com/fuel auf. Du wirst auf die Anmeldeseite von Fuel CMS weitergeleitet:

Gib den Standard-Benutzernamen und das Passwort admin ein und klicke auf die Schaltfläche Login. Du solltest den Bildschirm zum Zurücksetzen des Passworts sehen:

Klicke auf die Schaltfläche “ Passwort zurücksetzen „. Du solltest den folgenden Bildschirm sehen:

Gib dein neues Passwort ein und klicke auf die Schaltfläche Speichern, um die Änderungen zu speichern. Jetzt klickst du auf die Schaltfläche Dashboard. Auf der folgenden Seite solltest du das Fuel CMS-Dashboard sehen:

Fuel CMS mit Let’s Encrypt sichern

Als nächstes musst du das Certbot Client-Paket installieren, um Let’s Encrypt SSL zu installieren und zu verwalten.

Installiere zunächst Certbot mit dem folgenden Befehl:

apt-get install python3-certbot-nginx -y

Sobald die Installation abgeschlossen ist, führe den folgenden Befehl aus, um Let’s Encrypt SSL auf deiner Website zu installieren:

certbot --nginx -d fuelcms.example.com

Du wirst aufgefordert, eine gültige E-Mail-Adresse anzugeben und die Nutzungsbedingungen zu akzeptieren (siehe unten):

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator nginx, Installer nginx
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): hitjethva@gmail.com

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
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 fuelcms.example.com
Waiting for verification...
Cleaning up challenges
Deploying Certificate to VirtualHost /etc/nginx/sites-enabled/fuel.conf

Als Nächstes wählst du aus, ob der HTTP-Datenverkehr auf HTTPS umgeleitet werden soll oder nicht (siehe unten):

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
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

Gib 2 ein und drücke die Eingabetaste, um die Installation abzuschließen. Du solltest die folgende Ausgabe sehen:

Redirecting all traffic on port 80 to ssl in /etc/nginx/sites-enabled/fuel.conf

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

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

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/fuelcms.example.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/fuelcms.example.com/privkey.pem
   Your cert will expire on 2023-02-20. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot again
   with the "certonly" option. To non-interactively renew *all* of
   your certificates, run "certbot renew"
 - Your account credentials have been saved in your Certbot
   configuration directory at /etc/letsencrypt. You should make a
   secure backup of this folder now. This configuration directory will
   also contain certificates and private keys obtained by Certbot so
   making regular backups of this folder is ideal.
 - 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

 - We were unable to subscribe you the EFF mailing list because your
   e-mail address appears to be invalid. You can try again later by
   visiting https://act.eff.org.

Jetzt ist deine Website mit Let’s Encrypt SSL gesichert. Du kannst sie sicher über die URL https://fuelcms.example.com aufrufen.

Fazit

Herzlichen Glückwunsch! Du hast Fuel CMS mit Nginx und Let’s Encrypt SSL erfolgreich auf Ubuntu 22.04 installiert. Jetzt kannst du Fuel CMS ausprobieren, seine Funktionen erkunden und mit dem Hosting deiner eigenen Website oder deines Blogs beginnen. Wenn du noch Fragen hast, kannst du dich gerne an mich wenden.

Das könnte dich auch interessieren …