Wie man Craft CMS mit Nginx unter Debian 11 installiert

Craft CMS ist ein kostenloses und quelloffenes Content Management System, das in PHP geschrieben wurde und auf dem Yii-Framework basiert. Es ist ein sicheres und skalierbares CMS, das viele Plugins bietet, mit denen du deine Website leicht anpassen kannst. Es ermöglicht dir, deine Inhalte zu erstellen und deine Anwendungsdaten zu strukturieren, wobei du die Kontrolle über alles hast, einschließlich deines eigenen HTML. Es ist eine einfache, leichtgewichtige und benutzerfreundliche CMS-Plattform, die es Website-Besitzern ermöglicht, mit Nutzern über verschiedene Geräte hinweg zusammenzuarbeiten und ansprechende Erlebnisse zu automatisieren.

Dieser Beitrag zeigt dir, wie du Craft CMS mit Nginx und Let’s Encrypt SSL auf Debian 11 installierst.

Voraussetzungen

  • Ein Server, auf dem Debian 11 läuft.
  • Ein gültiger Domainname, der auf die Server-IP verweist.
  • Ein Root-Passwort ist auf dem Server konfiguriert.

Nginx, MariaDB und PHP installieren

Zuerst installieren wir den Apache Webserver, den MariaDB Server, PHP und andere benötigte PHP-Erweiterungen:

apt-get install nginx mariadb-server php php-cli php-fpm php-common php-curl php-gd php-imagick php-json php-mbstring php-mysql php-pgsql php-zip php-intl php-xml sudo curl -y

Sobald alle Pakete installiert sind, bearbeitest du die Datei php.ini mit dem folgenden Befehl:

nano /etc/php/7.4/fpm/php.ini

Ändere die folgenden Einstellungen:

memory_limit = 512M
post_max_size = 32M
upload_max_filesize = 32M
date.timezone = Asia/Kolkata

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

systemctl restart php7.4-fpm

Eine Datenbank für Craft CMS erstellen

Als Nächstes musst du eine Datenbank und einen Benutzer für Craft CMS anlegen. Melde dich dazu mit folgendem Befehl in der MySQL-Shell an:

mysql

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

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

Als Nächstes löschst du die Berechtigungen und verlässt die MariaDB-Shell mit dem folgenden Befehl:

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

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

Installiere Composer

Composer ist ein Abhängigkeitsmanager für PHP, mit dem du die für dein PHP-Projekt benötigten Abhängigkeiten installieren kannst. Du kannst den Composer mit dem folgenden Befehl installieren:

curl -sS https://getcomposer.org/installer -o composer-setup.php
php composer-setup.php --install-dir=/usr/local/bin --filename=composer

Du solltest die folgende Ausgabe sehen:

All settings correct for using Composer
Downloading...

Composer (version 2.1.8) successfully installed to: /usr/local/bin/composer
Use it: php /usr/local/bin/composer

Sobald die Installation abgeschlossen ist, überprüfe die COmposer-Version mit folgendem Befehl:

composer --version

Du solltest die folgende Ausgabe sehen:

Composer version 2.1.8 2021-09-15 13:55:14

Craft CMS installieren

Als Nächstes musst du das Craft CMS mit dem Composer installieren. Zuerst änderst du die Eigentümerschaft des Standard-Stammverzeichnisses von Nginx in www-data:

chown -R www-data:www-data /var/www/html

Als nächstes navigierst du zum Verzeichnis /var/www/html und installierst das Craft CMS mit folgendem Befehl:

cd /var/www/html
sudo -u www-data composer create-project craftcms/craft craftcms

Du wirst aufgefordert, deine Datenbank-Zugangsdaten, deinen Admin-Benutzernamen, dein Passwort und die Website-URL anzugeben (siehe unten):

> @php craft setup/welcome

   ______ .______          ___       _______ .___________.
  /      ||   _  \        /   \     |   ____||           |
 |  ,----'|  |_)  |      /  ^  \    |  |__   `---|  |----`
 |  |     |      /      /  /_\  \   |   __|      |  |
 |  `----.|  |\  \----./  _____  \  |  |         |  |
  \______|| _| `._____/__/     \__\ |__|         |__|
 
     A       N   E   W       I   N   S   T   A   L   L
               ______ .___  ___.      _______.
              /      ||   \/   |     /       |
             |  ,----'|  \  /  |    |   (----`
             |  |     |  |\/|  |     \   \
             |  `----.|  |  |  | .----)   |
              \______||__|  |__| |_______/


Generating an application ID ... done (CraftCMS--286d40e5-ec80-49e0-b64b-13bb7870375e)
Generating a security key ... done (5k8ygP059NnCLeTZvxRily-R4Wect6tY)

Welcome to Craft CMS!

Are you ready to begin the setup? (yes|no) [no]:yes
Generating an application ID ... done (CraftCMS--37ec6cd5-fde9-4b09-b2e8-1ad29edd4142)

Which database driver are you using? [mysql,pgsql,?]: mysql
Database server name or IP address: [127.0.0.1] 
Database port: [3306] 
Database username: [root] craftuser
Database password: 
Database name: craftdb
Database table prefix: 
Testing database credentials ... success!
Saving database credentials to your .env file ... done

Install Craft now? (yes|no) [yes]:yes

Username: [admin] 
Email: admin@example.com
Password: 
Confirm: 
Site name: Craft Site
Site URL: https://craftcms.example.com                                                 
Site language: [en-US] 

Sobald das Craft CMS installiert ist, musst du die Eigentumsrechte für das craftcms-Verzeichnis festlegen:

chown -R www-data:www-data /var/www/html/craftcms

Nginx für Craft CMS konfigurieren

Als Nächstes musst du eine Nginx-Konfigurationsdatei für den virtuellen Host erstellen, um Craft CMS zu bedienen. Du kannst sie mit dem folgenden Befehl erstellen:

nano /etc/nginx/conf.d/craftcms.conf

Füge die folgenden Zeilen hinzu:

server {
listen 80;
 server_name craftcms.example.com;
 root /var/www/html/craftcms/web;
 index index.php;
 location / {
  try_files $uri/index.html $uri $uri/ /index.php?$query_string;
  }
 location ~ [^/]\.php(/|$) {
  try_files $uri $uri/ /index.php?$query_string;
  fastcgi_split_path_info ^(.+\.php)(/.+)$;
  fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
  fastcgi_index index.php;
  include fastcgi_params;
  fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  fastcgi_param PATH_INFO $fastcgi_path_info;
  fastcgi_param HTTP_PROXY "";
 }
}

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

nginx -t

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

Als Nächstes lädst du den Nginx-Dienst neu, um die Änderungen zu übernehmen:

systemctl reload nginx

Um den Nginx-Status zu überprüfen, führe den folgenden Befehl aus:

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 2021-09-26 02:24:40 UTC; 6s ago
       Docs: man:nginx(8)
    Process: 370207 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
    Process: 370208 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
   Main PID: 370209 (nginx)
      Tasks: 5 (limit: 9510)
     Memory: 4.7M
        CPU: 53ms
     CGroup: /system.slice/nginx.service
             ??370209 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
             ??370210 nginx: worker process
             ??370211 nginx: worker process
             ??370212 nginx: worker process
             ??370213 nginx: worker process

Sep 26 02:24:40 debian11 systemd[1]: Starting A high performance web server and a reverse proxy server...
Sep 26 02:24:40 debian11 systemd[1]: Started A high performance web server and a reverse proxy server.

Craft CMS mit Let’s Encrypt SSL 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 craftcms.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 craftcms.example.com
Waiting for verification...
Cleaning up challenges
Deploying Certificate to VirtualHost /etc/nginx/conf.d/craftcms.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/conf.d/craftcms.conf

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

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

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/craftcms.example.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/craftcms.example.com/privkey.pem
   Your cert will expire on 2022-05-26. 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.

Zugriff auf Craft CMS

Öffne nun deinen Webbrowser und rufe das Craft CMS über die URL https://craftcms.example.com auf. Du solltest den folgenden Bildschirm sehen:

Klicke auf Gehe zu deinem Kontrollzentrum. Du solltest die Anmeldeseite von Craft CMS sehen:

Gib deine Anmeldedaten ein und klicke auf die Schaltfläche Anmelden. Auf dem folgenden Bildschirm solltest du das Craft CMS-Dashboard sehen:

Fazit

Herzlichen Glückwunsch! Du hast CraftCMS mit Nginx und Let’s Encrypt SSL erfolgreich auf Debian 11 installiert. Jetzt kannst du deine Website ganz einfach über das Craft CMS-Kontrollfeld erstellen. Wenn du noch Fragen hast, kannst du dich gerne an mich wenden.

Das könnte dich auch interessieren …