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.

Das könnte dich auch interessieren …