Wie installiere ich Concrete5 CMS mit Apache und kostenlosem Let’s Encrypt SSL auf Ubuntu 20.04

Concrete5 ist ein Open-Source Content Management System, mit dem du Inhalte im Internet veröffentlichen kannst. Das CMS ist in PHP geschrieben und nutzt MariaDB als Datenbank-Backend. Es bietet einen einfach zu bedienenden Builder, der dir hilft, Seiten und Inhalte über den Webbrowser zu erstellen. Es ist flexibel, sicher, mobilfähig und basiert auf einer Model-View-Controller Architektur. Er bietet eine Vielzahl von Funktionen, wie z.B. WYSIWYG Content Editor, Media Manager, Drag and Drop Content, In-Context Editing und vieles mehr.

In diesem Beitrag zeigen wir dir, wie du Concrete5 CMS mit Apache und Let’s Encrypt SSL auf einem Ubuntu 20.04 Server installieren kannst.

Voraussetzungen

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

Erste Schritte

Zuerst musst du den APT Paketindex auf die neueste Version aktualisieren. Du kannst ihn mit dem folgenden Befehl aktualisieren:

apt-get update -y

Sobald der APT-Index aktualisiert ist, kannst du mit dem nächsten Schritt fortfahren.

Installiere Apache, MariaDB und PHP

Als nächstes musst du den Apache Webserver, den MariaDB Datenbankserver, PHP und andere PHP Erweiterungen auf deinem Server installieren. Du kannst sie alle mit dem folgenden Befehl installieren:

apt-get install apache2 mariadb-server php libapache2-mod-php libapache2-mod-php php-common php-mbstring php-xmlrpc php-soap php-gd php-xml php-intl php-mysql php-cli php-ldap php-zip php-curl -y

Sobald alle Pakete installiert sind, bearbeite die Datei php.ini und setze die gewünschten Werte:

nano /etc/php/7.4/apache2/php.ini

Ändere die folgenden Zeilen:

file_uploads = On
allow_url_fopen = On
memory_limit = 256M
upload_max_filesize = 64M
date.timezone = Asia/Kolkata

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

systemctl restart apache2

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

Erstelle eine Concrete5 Datenbank

Als nächstes musst du eine Datenbank und einen Benutzer für Concrete5 erstellen. Logge dich zuerst mit folgendem Kommando in die MariaDB ein:

mysql

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

MariaDB [(none)]> CREATE DATABASE concrete5;
MariaDB [(none)]> CREATE USER 'concrete5user'@'localhost' IDENTIFIED BY 'password';

Als nächstes gibst du der Concrete5 Datenbank alle Rechte mit folgendem Kommando:

MariaDB [(none)]> GRANT ALL ON concrete5.* TO 'concrete5user'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;

Als nächstes lösche die Privilegien und verlasse die MariaDB Konsole mit dem folgenden Befehl:

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

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

Concrete5 CMS herunterladen

Gehe zuerst auf die Concrete5 CMS Webseite, kopiere die URL der neuesten Version von Concrete5 und lade sie mit dem folgenden Befehl herunter:

wget --trust-server-names https://www.concrete5.org/download_file/-/view/115589/ -O concrete5.zip

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

unzip concrete5.zip

Als nächstes verschiebst du das extrahierte Verzeichnis mit dem folgenden Befehl in das Apache Web Root Verzeichnis:

mv concrete5-* /var/www/html/concrete5

Setze als nächstes die richtigen Berechtigungen und Eigentümer für das concrete5 Verzeichnis mit dem folgenden Befehl:

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

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

Apache für Concrete5 CMS konfigurieren

Als nächstes musst du eine Apache Virtual Host Konfigurationsdatei für Concrete5 CMS erstellen. Du kannst sie mit dem folgenden Kommando erstellen:

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

Füge die folgenden Zeilen hinzu:

<VirtualHost *:80>
     ServerAdmin [email protected]
     DocumentRoot /var/www/html/concrete5/
     ServerName concrete5.example.com

     <Directory /var/www/html/concrete5/>
        Options +FollowSymlinks
        AllowOverride All
        Require all granted
     </Directory>

     ErrorLog ${APACHE_LOG_DIR}/error.log
     CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

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

a2ensite concrete5.conf
a2enmod rewrite

Starte als nächstes den Apache Dienst neu, um die Änderungen zu übernehmen:

systemctl restart apache2

Du kannst auch den Status des Apache-Dienstes mit folgendem Befehl überprüfen:

systemctl status apache2

Du solltest die folgende Ausgabe erhalten:

? apache2.service - The Apache HTTP Server
     Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
     Active: active (running) since Sat 2021-05-15 15:00:03 UTC; 4s ago
       Docs: https://httpd.apache.org/docs/2.4/
    Process: 15566 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
   Main PID: 15585 (apache2)
      Tasks: 6 (limit: 2353)
     Memory: 13.5M
     CGroup: /system.slice/apache2.service
             ??15585 /usr/sbin/apache2 -k start
             ??15586 /usr/sbin/apache2 -k start
             ??15587 /usr/sbin/apache2 -k start
             ??15588 /usr/sbin/apache2 -k start
             ??15589 /usr/sbin/apache2 -k start
             ??15590 /usr/sbin/apache2 -k start

May 15 15:00:03 ubuntu2004 systemd[1]: Starting The Apache HTTP Server...

An diesem Punkt ist der Apache Webserver so konfiguriert, dass er Concrete5 CMS hostet. Du kannst nun mit dem nächsten Schritt fortfahren.

Zugriff auf das Concrete5 CMS Web Interface

Öffne nun deinen Webbrowser und rufe das Concrete5 CMS Webinterface über die URL http://concrete5.example.com auf. Du wirst auf die folgende Seite weitergeleitet:

Sprache wählen

Wähle deine Sprache aus und klicke auf den Pfeil-Button. Du solltest nun die folgende Seite sehen:

Systemprüfung

Vergewissere dich, dass alle benötigten Bibliotheken installiert sind, dann klicke auf den Button Weiter zur Installation, du solltest die folgende Seite sehen:

Website Name und Login Details

Hier gibst du den Admin-Benutzernamen, das Passwort, den Datenbank-Benutzernamen, das Passwort und den Datenbanknamen ein und klickst dann auf den Install Concrete5 Button, um die Installation zu starten. Sobald die Installation abgeschlossen ist, solltest du die folgende Seite sehen:

Konkrete 5 Ressourcen

Installation komplett

Klicke nun auf den Edit Your Site Button, du solltest das Concrete5 Dashboard auf der folgenden Seite sehen:

Erste Schritte mit Concrete 5

Concrete5 mit Let’s Encrypt SSL sichern

Als nächstes empfiehlt es sich, deine Webseite mit Let’s Encrypt SSL zu sichern. Als erstes installierst du den Certbot Client mit dem folgenden Befehl:

apt-get install python3-certbot-apache -y

Sobald er installiert ist, führe den folgenden Befehl aus, um deine Website mit Let’s Encrypt SSL zu sichern:

certbot --apache -d concrete5.example.com

Du wirst aufgefordert, deine E-Mail-Adresse anzugeben und die Nutzungsbedingungen zu akzeptieren, wie unten gezeigt:

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): [email protected]

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
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 concrete5.example.com
Enabled Apache rewrite module
Waiting for verification...
Cleaning up challenges
Created an SSL vhost at /etc/apache2/sites-available/concrete5-le-ssl.conf
Enabled Apache socache_shmcb module
Enabled Apache ssl module
Deploying Certificate to VirtualHost /etc/apache2/sites-available/concrete5-le-ssl.conf
Enabling available site: /etc/apache2/sites-available/concrete5-le-ssl.conf

Als nächstes wählst du aus, ob der HTTP-Verkehr auf HTTPS umgeleitet werden soll oder nicht, wie unten gezeigt:

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

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

Enabled Apache rewrite module
Redirecting vhost in /etc/apache2/sites-enabled/concrete5.conf to ssl vhost in /etc/apache2/sites-available/concrete5-le-ssl.conf

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

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

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

Jetzt kannst du Concrete 5 sicher über die URL https://concrete5.example.com aufrufen.

Fazit

In der obigen Anleitung hast du gelernt, wie man das Concrete5 CMS mit Apache und Let’s Encrypt SSL auf Ubuntu 20.04 installiert. Du kannst nun deine Inhalte mit dem Concrete5 CMS einfach im Internet veröffentlichen. Wenn du noch Fragen hast, kannst du dich gerne an mich wenden.

Das könnte dich auch interessieren …