So installierst du CraftCMS mit Apache und Let’s Encrypt SSL auf Ubuntu 22.04 LTS

Craft ist ein quelloffenes, flexibles und funktionsreiches Content Management System für Entwickler und Autoren von Inhalten. Es bietet alle Anpassungsfunktionen, die für den Aufbau einer leistungsstarken Website erforderlich sind. Mit Craft kannst du die Inhalte verschiedener Websites über ein einziges Dashboard verwalten. Es ist eine Alternative zu WordPress und Drupal, um maßgeschneiderte digitale Erlebnisse zu schaffen. Es gibt Hunderte von kostenlosen und kostenpflichtigen Plugins, mit denen du weitere Funktionen hinzufügen kannst.

In diesem Beitrag wird erklärt, wie du Craft CMS mit Apache und Let’s Encrypt SSL auf Ubuntu 22.04 installierst.

Voraussetzungen

  • Ein Server, auf dem Ubuntu 22.04 läuft.
  • Ein gültiger Domainname, der auf die IP deines Servers zeigt.
  • Ein Root-Passwort ist auf dem Server konfiguriert.

LAMP-Server installieren

Craft CMS läuft auf dem Webserver, ist in PHP geschrieben und verwendet MariaDB als Datenbank-Backend. Du musst also alle diese Pakete auf deinem Server installieren.

Du kannst den folgenden Befehl ausführen, um all diese Pakete zu installieren:

apt-get install apache2 mariadb-server php php-cli libapache2-mod-php php-common php-json php-curl php-gd php-imagick php-json php-mbstring php-mysql php-pgsql php-zip php-intl php-xml -y

Nachdem du alle Pakete installiert hast, bearbeite die PHP-Konfigurationsdatei und ändere die Standardeinstellungen:

nano /etc/php/8.1/php.ini

Ändere die folgenden Einstellungen:

memory_limit = 512M
post_max_size = 32M
upload_max_filesize = 32M
max_execution_time = 360

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

systemctl restart apache2

Erstelle eine Datenbank für CraftCMS

Als Nächstes musst du eine Datenbank und einen Benutzer für Fork CMS erstellen. Melde dich zunächst mit folgendem Befehl in der MariaDB-Shell an:

mysql

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

MariaDB [(none)]> CREATE DATABASE craftcms;
MariaDB [(none)]> GRANT ALL ON craftcms.* 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;

Jetzt ist die MariaDB-Datenbank für das Craft CMS erstellt. Du kannst jetzt mit dem nächsten Schritt fortfahren.

Craft CMS mit Compose installieren

Als nächstes musst du den Composer installieren, um die neueste Version von Craft CMS herunterzuladen. Du kannst ihn mit dem folgenden Befehl installieren:

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

Sobald der Composer installiert ist, navigierst du zum Apache-Web-Root-Verzeichnis und erstellst mit dem folgenden Befehl ein Craft CMS-Projekt:

cd /var/www/html
composer create-project craftcms/craft craftcms

Du wirst aufgefordert, deine Datenbankeinstellungen, den Benutzernamen und das Passwort des Administrators sowie die URL der Website anzugeben (siehe unten):

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

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

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

    > add foreign key fk_rlbmgnhpxsljkaunjwnsezfrnrkhwzpthfsq: {{%widgets}} (userId) references {{%users}} (id) ... done (time: 0.035s)
    > populating the info table ... done
    > saving default site data ... done
    > saving the first user ... done
*** installed Craft successfully (time: 5.449s)

Als Nächstes musst du dem Craft CMS-Verzeichnis die richtigen Berechtigungen und Eigentumsrechte zuweisen:

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

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

Apache für Craft CMS konfigurieren

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

nano /etc/apache2/sites-available/craftcms.conf

Füge die folgenden Zeilen ein:

<VirtualHost *:80>
     ServerAdmin admin@example.com
     DocumentRoot /var/www/html/craftcms/web
     ServerName craftcms.example.com


     <Directory /var/www/html/craftcms/web/>
          Options FollowSymlinks
          AllowOverride All
          Require all granted
     </Directory>

     ErrorLog ${APACHE_LOG_DIR}/error.log
     CustomLog ${APACHE_LOG_DIR}/access.log combined
    
     <Directory /var/www/html/craftcms/web/>
            RewriteEngine on
            RewriteBase /
            RewriteCond %{REQUEST_FILENAME} !-f
            RewriteRule ^(.*) index.php [PT,L]
    </Directory>
</VirtualHost>

Speichere und schließe die Datei und aktiviere den virtuellen Apache-Host und das Rewrite-Modul mit dem folgenden Befehl:

a2ensite craftcms.conf
a2enmod rewrite

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

systemctl restart apache2

Du kannst den Apache-Status auch mit dem folgenden Befehl überprüfen:

systemctl status apache2

Du erhältst die folgende Ausgabe:

? apache2.service - The Apache HTTP Server
     Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2022-06-17 15:48:11 UTC; 31min ago
       Docs: https://httpd.apache.org/docs/2.4/
    Process: 37935 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
    Process: 40916 ExecReload=/usr/sbin/apachectl graceful (code=exited, status=0/SUCCESS)
   Main PID: 37939 (apache2)
      Tasks: 6 (limit: 2292)
     Memory: 53.0M
        CPU: 28.718s
     CGroup: /system.slice/apache2.service
             ??37939 /usr/sbin/apache2 -k start
             ??40920 /usr/sbin/apache2 -k start
             ??40921 /usr/sbin/apache2 -k start
             ??40922 /usr/sbin/apache2 -k start
             ??40923 /usr/sbin/apache2 -k start
             ??40924 /usr/sbin/apache2 -k start

Jun 17 15:48:11 ubuntu2204 systemd[1]: Starting The Apache HTTP Server...

Sobald dein Apache Webserver konfiguriert ist, kannst du mit dem nächsten Schritt fortfahren.

Zugriff auf die Craft CMS-Weboberfläche

Öffne nun deinen Webbrowser und gib die URL http://craftcms.example.com ein, um auf die Craft CMS-Weboberfläche zuzugreifen. Du solltest die folgende Seite sehen:

Klicke auf die Schaltfläche Gehe zu deinem Kontrollzentrum. Du wirst auf die Anmeldeseite für Craft CMS weitergeleitet:

Gib deinen Admin-Benutzernamen und dein Passwort ein und klicke auf den Login-Button. Auf der folgenden Seite solltest du das Craft CMS-Dashboard sehen:

Craft CMS mit Let’s Encrypt SSL sichern

Als Nächstes empfiehlt es sich, deine Website mit Let’s Encrypt SSL zu sichern. Installiere zunächst das Certbot Client-Paket mit dem folgenden Befehl:

apt-get install python3-certbot-apache -y

Nach der erfolgreichen Installation führst du den folgenden Befehl aus, um deine Website mit Let’s Encrypt SSL zu sichern:

certbot --apache -d craftcms.example.com

Du wirst aufgefordert, deine E-Mail-Adresse anzugeben und die Nutzungsbedingungen zu akzeptieren (siehe unten):

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator standalone, Installer None
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): hitjethva1981@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
Plugins selected: Authenticator apache, Installer apache
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for craftcms.example.com
Enabled Apache rewrite module
Waiting for verification...
Cleaning up challenges
Created an SSL vhost at /etc/apache2/sites-available/craftcms-le-ssl.conf
Enabled Apache socache_shmcb module
Enabled Apache ssl module
Deploying Certificate to VirtualHost /etc/apache2/sites-available/craftcms-le-ssl.conf
Enabling available site: /etc/apache2/sites-available/craftcms-le-ssl.conf

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

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

Gib 2 ein und drücke die Eingabetaste, um Let’s Encrypt SSL für deine Website zu installieren:

Enabled Apache rewrite module
Redirecting vhost in /etc/apache2/sites-enabled/craftcms.conf to ssl vhost in /etc/apache2/sites-available/craftcms-le-ssl.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-09-17. 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"
 - 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

Fazit

Herzlichen Glückwunsch! Du hast Craft CMS mit Apache und Let’s Encrypt SSL erfolgreich auf Ubuntu 22.04 installiert. Jetzt kannst du die Funktionen von CraftCMS erkunden und damit beginnen, eine leistungsstarke Website mit Craft CMS zu erstellen. Wenn du noch Fragen hast, kannst du dich gerne an mich wenden.

Das könnte dich auch interessieren …