So installierst du Prestashop mit Apache und kostenlosem Let’s Encrypt SSL unter Debian 12

Prestashop ist eine kostenlose, in PHP geschriebene Open-Source-E-Commerce-Lösung. Mit ihr kannst du selbst Online-Shops hosten und erstellen und dein Online-Geschäft ausbauen. Prestashop ist eine vollständig anpassbare und funktionsreiche E-Commerce-Lösung, mit der du umfassende E-Commerce-Websites erstellen kannst. Prestashop wird mittlerweile von mehr als 250.000 Online-Shops auf der ganzen Welt genutzt und ist in 65 Sprachen verfügbar.

In diesem Tutorial führe ich dich Schritt für Schritt durch die Installation von PrestaShop auf einem Debian 12 Server. Du installierst PrestaShop mit dem LAMP-Stack (Apache2, MariaDB und PHP) und sicherst dann deine PrestaShop-Installation mit SL/TLS-Zertifikaten über Letsencrypt.

Voraussetzungen

Bevor du beginnst, solltest du Folgendes bereithalten:

  • Einen Debian 12 Server.
  • Einen Nicht-Root-Benutzer mit Administrator-Rechten.
  • Einen Domainnamen, der auf die IP-Adresse des Servers zeigt.

Installieren der Abhängigkeiten

PrestaShop ist eine Open-Source-Plattform zur Erstellung eines Onlineshops, die in PHP mit MariaDB/MySQL als Datenbank geschrieben wurde. Im folgenden Schritt installierst du die Abhängigkeiten für PrestaShop. Dazu gehören die LAMP-Stack-Pakete (Apache2, MariaDB und PHP) mit einigen zusätzlichen PHP-Erweiterungen. Du wirst speziell PHP 8.1 über ein Repository eines Drittanbieters installieren, da der aktuelle PrestaShop noch nicht PHP 8.2 unterstützt.

Führe zunächst den folgenden Befehl aus, um ein PHP-Repository eines Drittanbieters und einen GPG-Schlüssel zu deinem Debian-System hinzuzufügen.

sudo curl -sSLo /usr/share/keyrings/deb.sury.org-php.gpg https://packages.sury.org/php/apt.gpg
sudo sh -c 'echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'

Aktualisiere deinen Debian-Paketindex, indem du den folgenden apt-Befehl ausführst.

sudo apt update

Setup-Repo

Sobald das Repository aktualisiert ist, installierst du die Abhängigkeiten für PrestaShop mit dem folgenden Befehl. Dadurch werden die Pakete für den LAMP-Stack (Apache2, MariaDB, PHP 8.1), Certbot, das Certbot-Apache-Plugin und zusätzliche PHP-Erweiterungen, die für PrestaShop benötigt werden, installiert.

sudo apt install apache2 mariadb-server certbot python3-certbot-apache php8.1 php8.1-curl php8.1-xmlrpc php8.1-soap php8.1-intl php8.1-zip php8.1-cli php8.1-mysql php8.1-common php8.1-opcache php8.1-memcached php8.1-bcmath php8.1-gd php8.1-mbstring php8.1-xml php8.1-gmp php8.1-imagick unzip

Gib y ein, um mit der Installation fortzufahren.

deps installieren

Nachdem die Abhängigkeiten installiert sind, überprüfe jede Abhängigkeit mit dem folgenden Befehl.

Überprüfe den apache2-Dienst, um sicherzustellen, dass der Dienst läuft, indem du den folgenden systemctl-Befehl ausführst.

sudo systemctl is-enabled apache2
sudo systemctl status apache2

Das folgende Ergebnis zeigt an, dass der apache2-Dienst läuft und aktiviert ist.

apache2 prüfen

Überprüfe nun den mariadb-Dienst mit dem folgenden Befehl.

sudo systemctl is-enabled mariadb
sudo systemctl status mariadb

Die unten angezeigte Ausgabe bestätigt, dass der mariadb-Dienst läuft und aktiviert ist.

mariadb prüfen

Zum Schluss überprüfst du mit dem folgenden Befehl die PHP-Version und die Liste der aktivierten Erweiterungen.

php -v
php -m

Du solltest sehen, dass PHP 8.1 auf deinem Debian-Rechner installiert ist und die Erweiterungen aktiviert sind.

php prüfen

MariaDB Server konfigurieren

Nachdem du die Abhängigkeiten für PrestaShop installiert hast, musst du im nächsten Schritt deine MariaDB Server-Installation mit dem Dienstprogramm mariadb-secure-installation absichern. Dann musst du eine neue Datenbank und einen neuen Benutzer für PrestaShop erstellen.

Führe den folgenden Befehl mariadb-secure-installation aus, um deine MariaDB Server-Installation zu sichern.

sudo mariadb-secure-installation

Gib Y ein, um die neue Konfiguration zu bestätigen und anzuwenden, oder n für No, um sie abzulehnen. Nachfolgend die MariaDB Server-Konfigurationen, nach denen du gefragt wirst:

  • Auf unix_socket-Authentifizierung umschalten? Gib n ein und drücke ENTER. Der Standard-MariaDB-Root-Benutzer ist bereits geschützt. Optional kannst du ihn auch aktivieren, indem du y für ja eingibst.
  • Ändere das Root-Passwort? Gib y ein, um zu bestätigen und dein neues MariaDB Root-Passwort einzurichten.
  • Anonymen Benutzer entfernen? Gib y ein, um zu bestätigen.
  • Root-Login aus der Ferne verbieten? Gib zur Bestätigung y ein. Wenn du den MariaDB Root-Benutzer verwendest, wird nur eine lokale Verbindung zugelassen.
  • Testdatenbank und Zugriff auf sie entfernen? Bestätige mit y und entferne die Standarddatenbank „test“.
  • Gib abschließend erneut y ein, um alle Tabellenrechte auf deinem MariaDB-Server neu zu laden und die neuen Änderungen anzuwenden.

Als Nächstes führst du den Befehl mariadb client aus, um dich beim MariaDB Server anzumelden. Gib dein MariaDB Root-Passwort ein, wenn du dazu aufgefordert wirst.

sudo mariadb -u root -p

Sobald du eingeloggt bist, führe die folgenden Abfragen aus, um eine neue Datenbank prestashopdb und einen Benutzer prestashop mit dem Kennwort password zu erstellen. Die neue MariaDB-Datenbank und der Benutzer werden der Benutzer für die PrestaShop-Installation sein.

CREATE DATABASE prestashopdb;
GRANT ALL PRIVILEGES ON prestashopdb.* TO 'prestashop'@'localhost' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;

Datenbank und Benutzer anlegen

Als Nächstes führst du die folgende Abfrage aus, um den MariaDB-Benutzer prestashop zu überprüfen.

SHOW GRANTS FOR 'prestashop'@'localhost';

Die unten angezeigte Ausgabe zeigt, dass der MariaDB-Benutzer prestashop auf die Datenbank prestashopdb zugreifen darf.

Benutzerberechtigungen prüfen

Zum Schluss gibst du quit ein, um den MariaDB Server zu verlassen.

PHP konfigurieren

Nach der Konfiguration von MariaDB Server konfigurierst du deine PHP-Installation, indem du die Datei php.ini anpasst. Anschließend überprüfst du deine Umgebung, um sicherzustellen, dass die PHP-Konfiguration mit den Anforderungen von PrestaShop übereinstimmt.

Öffne die Standard-PHP-Konfiguration /etc/php/8.1/apache2/php.ini mit dem folgenden Befehl des nano-Editors.

sudo nano /etc/php/8.1/apache2/php.ini

Ändere die folgende Konfiguration und passe die Parameter date.timezone und memory_limit an deine Serverumgebung an.

date.timezone = Europe/Amsterdam
max_execution_time = 130
memory_limit = 256M
allow_url_fopen = On
allow_url_include = Off
post_max_size = 128M
upload_max_filesize = 128M
max_input_vars = 5000

Speichere die Datei und beende den Editor, wenn du fertig bist.

Führe anschließend den folgenden systemctl-Befehl aus, um den apache2-Dienst neu zu starten und die Änderungen zu übernehmen.

sudo systemctl restart apache2

Nachdem du nun PHP konfiguriert hast, musst du überprüfen, ob deine Serverumgebung für die Installation von PrestaShop bereit ist. Dazu kannst du den von PrestaShop bereitgestellten Environment Checker verwenden.

Wechsle in das Verzeichnis /var/www/html und lade das Skript zur Umgebungsprüfung mit dem unten stehenden wget-Befehl herunter. Du wirst die Datei v1.1.tar.gz in deinem aktuellen Arbeitsverzeichnis sehen.

cd /var/www/html
wget https://github.com/PrestaShop/php-ps-info/archive/refs/tags/v1.1.tar.gz

Entpacke die Datei v1.1.tar.gz und benenne das entpackte Verzeichnis in check-ps um.

tar -xf v1.1.tar.gz
mv php-ps-info-1.1 check-ps

Öffne schließlich deinen Webbrowser und rufe die IP-Adresse des Servers gefolgt von dem Pfad check-ps auf, um das Skript zur Überprüfung der PrestaShop-Umgebung aufzurufen, z. B. http://192.168.10.15/check-ps/phppsinfo.php.

Gib den Standard-Benutzernamen prestashop und das Passwort prestashop ein und klicke dann auf Sign in.

Anmeldung prüfen-ps

Vergewissere dich, dass deine Abhängigkeiten, PHP-Konfigurationen und PHP-Erweiterungen mit den PrestaShop-Anforderungen übereinstimmen. Falls nicht, kannst du deine Einstellungen anhand der Empfehlungen auf der Seite anpassen.

ps-checker

Herunterladen von Prestashop

Nachdem der MariaDB Server und PHP konfiguriert sind, musst du als Nächstes den PrestaShop-Quellcode herunterladen und das Installationsverzeichnis mit den richtigen Berechtigungen und Eigentümern konfigurieren.

Verschiebe dein Arbeitsverzeichnis nach /var/www/ und lade den PrestaShop-Quellcode mit dem unten stehenden wget-Befehl herunter. Schaue auf jeden Fall auf der PrestaShop-Versionsseite nach, um die neueste Version von PrestaShop zu erhalten.

cd /var/www/
wget https://github.com/PrestaShop/PrestaShop/releases/download/8.1.2/prestashop_8.1.2.zip

Entpacke nun den PrestaShop-Quellcode mit dem Befehl unzip (siehe unten). Du solltest den PrestaShop-Quellcode in der Zip-Datei prestashop.zip sehen.

unzip prestashop_8.1.2.zip

Entpacke die Datei prestashop.zip mit dem unten stehenden unzip-Befehl in das Zielverzeichnis /var/www/prestashop. Der PrestaShop-Quellcode wird in das prestashop-Verzeichnis extrahiert, dein Prestashop-Installationsverzeichnis sollte also /var/www/prestashop sein.

unzip prestashop.zip -d /var/www/prestashop

Führen Sie abschließend den folgenden Befehl aus, um die richtigen Eigentums- und Zugriffsrechte für das PrestaShop-Installationsverzeichnis /var/www/prestashop einzurichten. Der Eigentümer sollte www-data mit der Berechtigung u+rw verwenden, was bedeutet, dass der Eigentümer das Zielverzeichnis lesen und beschreiben kann.

sudo chown -R www-data:www-data /var/www/prestashop
sudo chmod u+rw /var/www/prestashop

Virtuellen Apache2-Host konfigurieren

Im folgenden Schritt erstellst du eine neue Konfiguration des virtuellen Apache2-Hosts, der für den Betrieb von prestaShop verwendet werden soll. Stelle vorher sicher, dass dein Domainname auf eine Server-IP-Adresse zeigt.

Führe zunächst den folgenden Befehl aus, um das Rewrite-Modul für Apache zu aktivieren.

sudo a2enmod rewrite

Rewrite aktivieren

Anschließend erstellst du mit dem Editor nano eine neue Konfiguration für den virtuellen Host /etc/apache2/sites-available/prestashop.conf.

sudo nano /etc/apache2/sites-available/prestashop.conf

Füge die folgende Konfiguration ein und achte darauf, dass du den Domainnamen im Parameter ServerName änderst.

<VirtualHost *:80>
ServerAdmin admin@hwdomain.io
DocumentRoot /var/www/prestashop
ServerName hwdomain.io

<Directory /var/www/prestashop>
# enable the .htaccess rewrites
AllowOverride All
Options +Indexes
Require all granted

# Disable back office token
# SetEnv _TOKEN_ disabled
</Directory>

ErrorLog /var/log/apache2/prestashop.error.log
CustomLog /var/log/apache2/prestashop.access.log combined
</VirtualHost>

Speichere und schließe die Datei, wenn du fertig bist.

Führe als Nächstes den folgenden Befehl aus, um die virtuelle Hostdatei prestashop.conf zu aktivieren und deine Apache-Konfiguration zu überprüfen.

sudo a2ensite prestashop.conf
sudo apachectl configtest

Wenn du den Apache richtig konfiguriert hast, wird die Ausgabe Syntax OK angezeigt.

vhost-Einrichtung

Führe nun den folgenden systemctl-Befehl aus, um den apache2-Dienst neu zu starten und die Änderungen zu übernehmen.

sudo systemctl restart apache2

Zuletzt generierst du die SSL/TLS-Zertifikate für deine PrestaShop-Domain, indem du den folgenden certbot-Befehl ausführst. Achte darauf, dass du die E-Mail-Adresse und den Domainnamen mit deinen Daten änderst.

sudo certbot --apache --agree-tos --no-eff-email  --redirect --hsts --staple-ocsp --email alice@hwdomain.io -d hwdomain.io

Sobald der Vorgang abgeschlossen ist, wird deine virtuelle Hostdatei prestashop.conf automatisch mit HTTPS konfiguriert und deine SSL/TLS-Zertifikate sind im Verzeichnis /etc/letsencrypt/live/hwdomain.io verfügbar.

Installation von PrestaShop über die Kommandozeile

Jetzt kannst du deine PrestaShop-Installation über die Web-UI oder die Kommandozeile abschließen. In diesem Beispiel beendest du die PrestaShop-Installation über die Kommandozeile.

Gehe in das PrestaShop-Installationsverzeichnis /var/www/prestashop/install.

cd /var/www/prestashop/install

Führe das Skript index_cli.php wie folgt aus, um die PrestaShop-Installation über die Befehlszeile zu starten. Achte darauf, dass du den Domainnamen, den MariaDB-Datenbankhost, den Namen, den Benutzernamen und das Passwort änderst. Außerdem musst du die E-Mail-Adresse und das Passwort ändern, die als Administrator für PrestaShop verwendet werden sollen.

sudo -u www-data php index_cli.php --domain=hwdomain.io --db_server=127.0.0.1 --db_name=prestashopdb --db_user=prestashop --db_password=password --prefix=myps_ --email=alice@hwdomain.io --password=Passw0rd

Sobald die Installation abgeschlossen ist, wird die Ausgabe„Installation erfolgreich“ wie folgt angezeigt.

Prestashop über die Kommandozeile installieren

Als Nächstes führst du den folgenden Befehl aus, um die richtigen Berechtigungen für einige PrestaShop-Verzeichnisse einzurichten. Dadurch erhält www-data als Eigentümer die Berechtigung, die Zielverzeichnisse zu lesen und zu beschreiben.

sudo chmod u+rw /var/www/prestashop/var/cache
sudo chmod u+rw /var/www/prestashop/var/logs
sudo chmod u+rw /var/www/prestashop/img
sudo chmod u+rw /var/www/prestashop/mails
sudo chmod u+rw /var/www/prestashop/modules
sudo chmod u+rw /var/www/prestashop/translations
sudo chmod u+rw /var/www/prestashop/upload
sudo chmod u+rw /var/www/prestashop/download
sudo chmod u+rw /var/www/prestashop/app/config
sudo chmod u+rw /var/www/prestashop/app/Resources/translations

Führe nun den folgenden Befehl aus, um das Verzeichnis /var/www/prestashop/install zu entfernen und deine PrestaShop-Installation zu sichern.

sudo rm -rf /var/www/prestashop/install

Öffne dann deinen Webbrowser und rufe deine PrestaShop-Domain auf, z. B. http://hwdomain.io/. Wenn die Installation erfolgreich war, solltest du zu einer sicheren HTTPS-Verbindung weitergeleitet werden und die Standard-Startseite deiner PrestaShop-Installation sehen.

prestashop homepage

Als Nächstes rufst du den PrestaShop-Domainnamen auf, gefolgt von dem Admin-Pfad, z. B. https://hwdomain.io/admin/. Wenn alles klappt, solltest du auf die PrestaShop-Anmeldeseite weitergeleitet werden. Außerdem kannst du sehen, dass der Standard-URL-Pfad für PrestaShop auf admin051rgjztgtkvgcie6dp geändert wurde.

Gib deinen Admin-Benutzer und dein Passwort ein und klicke dann auf Login.

Anmeldung prestashop

Wenn du einen richtigen Admin-Benutzer und ein richtiges Passwort hast, sollte dir das PrestaShop-Administrations-Dashboard angezeigt werden.

prestashop dashboard

Du kannst auch den folgenden Befehl ausführen, um den PrestaShop Login Admin zu überprüfen.

ls /var/www/prestashop

Die folgende Ausgabe zeigt, dass die PrestaShop-Admin-Seite unter admin051rgjztgtkvgcie6dp verfügbar ist.

ps admin prüfen

Fazit

Zum Abschluss hast du PrestaShop nun erfolgreich unter Debian 12 installiert – Schritt für Schritt. Du hast PrestaShop 8 mit dem LAMP-Stack (Apache2, MariaDB und PHP) installiert und die PrestaShop-Installation mit SSL/TLS-Zertifikaten gesichert. Außerdem hast du gelernt, wie du die PrestaShop-Installation über die Kommandozeile starten kannst. Jetzt kannst du neue Themes und zusätzliche Erweiterungen hinzufügen, um deine PrestaShop-Installation zu erweitern.

Das könnte dich auch interessieren …