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
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.
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.
Ü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.
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.
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;
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.
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.
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.
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
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.
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.
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.
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.
Wenn du einen richtigen Admin-Benutzer und ein richtiges Passwort hast, sollte dir das PrestaShop-Administrations-Dashboard angezeigt werden.
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.
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.