Prestashop Installation mit Apache und Let’s Encrypt SSL unter Debian 11
PrestaShop ist eine kostenlose, quelloffene, effiziente und innovative E-Commerce-Lösung, die dir hilft, deine Produkte online zu verkaufen. Es ist ein leistungsstarkes und anpassungsfähiges E-Commerce-CMS, das alle Funktionen bietet, die du für die Erstellung eines Online-Shops brauchst. Mit PrestaShop kannst du Lagerbestände, Produktkataloge, Versand, Rechnungsstellung und vieles mehr verwalten. Es bietet mehr als 5000 Module und Themen und unterstützt viele verschiedene Zahlungssysteme wie PayPal, Google Checkout usw.
In diesem Beitrag zeigen wir dir, wie du PrestaShop mit Apache Webserver und Let’s Encrypt SSL auf Debian 11 installierst.
Voraussetzungen
- Ein Server, auf dem Debian 11 läuft.
- Ein gültiger Domainname ist auf die IP deines Servers gerichtet.
- Ein Root-Passwort ist auf dem Server eingerichtet.
Installiere Apache, MariaDB und PHP
Zuerst musst du Apache, MariaDB, PHP und andere PHP-Erweiterungen auf deinem Server installieren. Du kannst sie alle mit dem folgenden Befehl installieren:
apt-get install apache2 mariadb-server libapache2-mod-php php php-gd php-mbstring php-mysql php-curl php-xml php-cli php-intl php-zip unzip -y
Sobald alle Pakete installiert sind, bearbeite die Datei php.ini und ändere einige Einstellungen:
nano /etc/php/7.4/apache2/php.ini
Ändere die folgenden Zeilen:
memory_limit = 256M post_max_size = 64M upload_max_filesize = 32M date.timezone = UTC
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 PrestaShop
Zuerst musst du die MariaDB-Installation sichern und ein MariaDB-Root-Passwort festlegen. Das kannst du tun, indem du das Skript mysql_secure_installation ausführst:
mysql_secure_installation
Beantworte alle Fragen wie unten gezeigt:
Enter current password for root (enter for none): Switch to unix_socket authentication [Y/n] Y Change the root password? [Y/n] Y New password: Re-enter new password: Remove anonymous users? [Y/n] Y Disallow root login remotely? [Y/n] Y Remove test database and access to it? [Y/n] Y Reload privilege tables now? [Y/n] Y
Melde dich dann mit folgendem Befehl in der MariaDB-Shell an:
mysql -u root -p
Gib dein MariaDB-Root-Passwort ein und erstelle mit dem folgenden Befehl einen Benutzer und eine Datenbank für PrestaShop:
MariaDB [(none)]> CREATE DATABASE prestadb; MariaDB [(none)]> GRANT ALL PRIVILEGES ON prestadb.* TO 'prestauser'@'localhost' IDENTIFIED BY 'yourpass';
Als Nächstes löschst du die Berechtigungen und verlässt MariaDB mit dem folgenden Befehl:
MariaDB [(none)]> FLUSH PRIVILEGES; MariaDB [(none)]> EXIT;
PrestaShop herunterladen
Gehe auf die PrestaShop-Website und lade die neueste Version von PrestaShop mit folgendem Befehl herunter:
wget https://download.prestashop.com/download/releases/prestashop_1.7.7.7.zip
Sobald der Download abgeschlossen ist, entpackst du die heruntergeladene Datei mit dem folgenden Befehl:
unzip prestashop_1.7.7.7.zip
Als Nächstes entpackst du PrestaShop mit folgendem Befehl erneut in das Apache-Web-Root-Verzeichnis:
unzip prestashop.zip -d /var/www/html/prestashop
Lege als Nächstes die richtigen Eigentumsrechte für das PrestaShop-Verzeichnis fest:
chown -R www-data:www-data /var/www/html/prestashop/ chmod -R 755 /var/www/html/prestashop
Sobald du damit fertig bist, kannst du mit dem nächsten Schritt fortfahren.
Apache für PrestaShop konfigurieren
Als Nächstes musst du eine Konfigurationsdatei für den virtuellen Apache-Host für PrestaShop erstellen. Du kannst sie mit dem folgenden Befehl erstellen:
nano /etc/apache2/sites-available/prestashop.conf
Füge die folgenden Zeilen ein:
<VirtualHost *:80> ServerAdmin admin@example.com ServerName presta.example.com DocumentRoot /var/www/html/prestashop <Directory /var/www/html/prestashop> Options FollowSymlinks AllowOverride All Require all granted </Directory> ErrorLog ${APACHE_LOG_DIR}/your-domain.com_error.log CustomLog ${APACHE_LOG_DIR}/your-domain.com_access.log combined </VirtualHost>
Speichere und schließe die Datei, aktiviere dann das Apache Rewrite-Modul und aktiviere den Apache Virtual Host mit dem folgenden Befehl:
a2enmod rewrite a2ensite prestashop
Starte schließlich den Apache-Dienst neu, um die Änderungen zu übernehmen:
systemctl restart apache2
Du kannst den Apache-Dienst auch mit dem folgenden 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 Fri 2021-08-27 06:15:23 UTC; 5min ago Docs: https://httpd.apache.org/docs/2.4/ Process: 17540 ExecReload=/usr/sbin/apachectl graceful (code=exited, status=0/SUCCESS) Main PID: 14330 (apache2) Tasks: 6 (limit: 2341) Memory: 16.5M CPU: 332ms CGroup: /system.slice/apache2.service ??14330 /usr/sbin/apache2 -k start ??17544 /usr/sbin/apache2 -k start ??17545 /usr/sbin/apache2 -k start ??17546 /usr/sbin/apache2 -k start ??17547 /usr/sbin/apache2 -k start ??17548 /usr/sbin/apache2 -k start Aug 27 06:15:23 debian11 systemd[1]: Starting The Apache HTTP Server...
Zugriff auf PrestaShop Web UI
Jetzt ist PrestaShop installiert und konfiguriert. Du kannst nun über die URL http://presta.example.com darauf zugreifen . Du solltest die folgende Seite sehen:
Wähle deine Sprache und klicke auf die Schaltfläche Weiter. Du solltest die folgende Seite sehen:
Akzeptiere die Allgemeinen Geschäftsbedingungen und klicke dann auf die Schaltfläche Weiter. Du solltest die folgende Seite sehen:
Gib den Namen deines Ladens und deine Kontodaten ein und klicke auf die Schaltfläche Weiter. Du solltest die folgende Seite sehen:
Gib deine Datenbankeinstellungen an und klicke auf die Schaltfläche Weiter, um die Installation zu starten. Sobald die Installation abgeschlossen ist, solltest du die folgende Seite sehen:
Klicke auf die Schaltfläche Verwalte deinen Laden. Du solltest die folgende Seite sehen:
Als Nächstes öffnest du dein Terminal und entfernst den Installationsordner:
rm -rf /var/www/html/prestashop/install
Rufe nun die PrestaShop-Verwaltungsoberfläche über die URL auf, die im vorherigen Bildschirm angezeigt wurde. Du solltest den PrestaShop-Anmeldebildschirm sehen:
Gib deinen Admin-Benutzernamen und dein Passwort ein und klicke auf die Schaltfläche Anmelden. Auf der folgenden Seite solltest du das PrestaShop-Dashboard sehen:
PrestaShop mit Let’s Encrypt SSL sichern
Zunächst musst du den Certbot Let’s Encrypt Client installieren, um das SSL-Zertifikat für deine Domain herunterzuladen und zu installieren.
Du kannst ihn mit dem folgenden Befehl installieren:
apt-get install python3-certbot-apache -y
Nach der Installation kannst du den folgenden Befehl ausführen, um das Let’s Encrypt Zertifikat für deine Domain prestashop.example.com zu installieren.
certbot --apache -d presta.example.com
Während der Installation wirst du 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 apache, Installer apache Enter email address (used for urgent renewal and security notices) (Enter 'c' to cancel): admin@example.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 prestashop.example.com Enabled Apache rewrite module Waiting for verification... Cleaning up challenges Created an SSL vhost at /etc/apache2/sites-available/prestashop-le-ssl.conf Deploying Certificate to VirtualHost /etc/apache2/sites-available/prestashop-le-ssl.conf Enabling available site: /etc/apache2/sites-available/prestashop-le-ssl.conf 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 dann 2 ein und drücke die Eingabetaste, um ein kostenloses SSL-Zertifikat für deine Domain herunterzuladen und zu installieren. Sobald die Installation erfolgreich abgeschlossen ist. Du solltest die folgende Ausgabe erhalten:
Enabled Apache rewrite module Redirecting vhost in /etc/apache2/sites-enabled/prestashop.conf to ssl vhost in /etc/apache2/sites-available/ prestashop-le-ssl.conf - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Congratulations! You have successfully enabled https://prestashop.example.com You should test your configuration at: https://www.ssllabs.com/ssltest/analyze.html?d=prestashop.example.com - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Fazit
In der obigen Anleitung haben wir erklärt, wie du PrestaShop mit Apache und Let’s Encrypt SSL-Zertifikat unter Debian 11 installierst. Jetzt kannst du deinen Onlineshop ganz einfach mit PrestaShop hosten. Wenn du noch Fragen hast, kannst du dich gerne an mich wenden.