PrestaShop ist eine kostenlose und Open-Source-E-Commerce-Plattform. Es basiert auf PHP und MySQL und kann mit kostenlosen und Premium-Plugins und Themes erweitert werden.
Mit Funktionen wie einer intuitiven Verwaltungsoberfläche, mehreren Zahlungs-Gateways, Mehrsprachigkeit, Analysen und Berichten ist PrestaShop die Plattform der Wahl für viele Online-Händler.
In diesem Tutorial zeigen wir Ihnen, wie Sie PrestaShop auf einem Ubuntu 18.04-Server installieren. Wir verwenden Nginx als Webserver, das neueste PHP 7.2 und MySQL/MariaDB als Datenbankserver.
Voraussetzungen #
Stellen Sie sicher, dass Sie die folgenden Voraussetzungen erfüllt haben, bevor Sie mit diesem Lernprogramm fortfahren:
- Haben Sie einen Domänennamen, der auf die IP Ihres öffentlichen Servers verweist. Wir werden
example.com
verwenden . - Nginx wird auf Ihrem Ubuntu-Server installiert, indem Sie diese Anweisungen befolgen.
- Ein SSL-Zertifikat, das für Ihre Domain installiert ist, um Benutzerinformationen zu verschlüsseln. Sie können ein kostenloses SSL-Zertifikat von Let’s Encrypt installieren, indem Sie diesen Anweisungen folgen.
Aktualisieren Sie die Systempakete auf die neuesten Versionen und installieren Sie das Unzip-Dienstprogramm:
sudo apt update && sudo apt upgrade
sudo apt install unzip
Erstellen einer MySQL-Datenbank #
PrestaShop speichert seine Informationen in einer MySQL-Datenbank.
Wenn MySQL oder MariaDB auf Ihrem Server installiert ist, können Sie diesen Schritt überspringen. Andernfalls installieren Sie das MySQL 5.7-Serverpaket aus den Standard-Repositories von Ubuntu, indem Sie Folgendes eingeben:
sudo apt install mysql-server mysql-client
Für frische MySQL-Installationen wird empfohlen, die mysql_secure_installation
auszuführen Befehl, um die Sicherheit Ihres MySQL-Servers zu verbessern. Um eine Datenbank zu erstellen, melden Sie sich bei der MySQL-Shell an:
sudo mysql
Führen Sie in der MySQL-Shell die folgende SQL-Anweisung aus, um eine neue Datenbank mit dem Namen prestashop
zu erstellen :
CREATE DATABASE prestashop;
Erstellen Sie als Nächstes ein MySQL-Benutzerkonto mit dem Namen prestashop
und erteilen Sie dem Benutzer die erforderlichen Berechtigungen, indem Sie den folgenden Befehl ausführen:
GRANT ALL ON prestashop.* TO 'prestashop'@'localhost' IDENTIFIED BY 'change-with-strong-password';
Vergessen Sie nicht, change-with-strong-password
zu ändern mit einem starken Passwort. Wenn Sie fertig sind, verlassen Sie die MySQL-Konsole, indem Sie Folgendes eingeben:
EXIT;
Installieren und Konfigurieren von PHP #
PHP 7.2 ist die Standard-PHP-Version in Ubuntu 18.04 und wird vollständig unterstützt und für PrestaShop empfohlen.
Führen Sie den folgenden Befehl aus, um PHP und alle erforderlichen PHP-Module zu installieren:
sudo apt install php7.2-common php7.2-cli php7.2-fpm php7.2-opcache php7.2-gd php7.2-mysql php7.2-curl php7.2-intl php7.2-xsl php7.2-mbstring php7.2-zip php7.2-bcmath php7.2-soap
Sobald der Installationsvorgang abgeschlossen ist, wird der PHP-FPM-Dienst automatisch gestartet. Sie können dies überprüfen, indem Sie Folgendes eingeben:
sudo systemctl status php7.2-fpm
Die Ausgabe sollte in etwa so aussehen:
* php7.2-fpm.service - The PHP 7.2 FastCGI Process Manager
Loaded: loaded (/lib/systemd/system/php7.2-fpm.service; enabled; vendor preset: enabled)
Active: active (running) since Sun 2019-03-24 11:53:33 PDT; 14s ago
Docs: man:php-fpm7.2(8)
Main PID: 15853 (php-fpm7.2)
Status: "Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req/sec"
Führen Sie den folgenden sed
aus Befehle zum Festlegen der empfohlenen PHP-Optionen:
sudo sed -i "s/memory_limit = .*/memory_limit = 1024M/" /etc/php/7.2/fpm/php.ini
sudo sed -i "s/upload_max_filesize = .*/upload_max_filesize = 256M/" /etc/php/7.2/fpm/php.ini
sudo sed -i "s/zlib.output_compression = .*/zlib.output_compression = on/" /etc/php/7.2/fpm/php.ini
sudo sed -i "s/max_execution_time = .*/max_execution_time = 18000/" /etc/php/7.2/fpm/php.ini
sudo sed -i "s/;date.timezone.*/date.timezone = UTC/" /etc/php/7.2/fpm/php.ini
sudo sed -i "s/;opcache.save_comments.*/opcache.save_comments = 1/" /etc/php/7.2/fpm/php.ini
PrestaShop wird heruntergeladen #
Zum Zeitpunkt der Erstellung dieses Artikels ist die neueste stabile Version von PrestaShop Version 1.7.6.2
.
Laden Sie die neueste Version von PrestaShop von der PrestaShop-Downloadseite mit dem folgenden wget-Befehl herunter:
cd /tmp
wget https://download.prestashop.com/download/releases/prestashop_1.7.6.2.zip
Wenn der Download abgeschlossen ist, erstellen Sie ein Verzeichnis, das unsere PrestaShop-Dateien enthält:
sudo mkdir -p /var/www/html/example.com
Extrahieren Sie als Nächstes das PrestaShop-Archiv:
unzip prestashop_*.zip
Dieses Archiv enthält eine weitere ZIP-Datei „prestashop.zip“, die alle PrestaShop-Dateien enthält. Extrahieren Sie die Dateien in das Dokumentenstammverzeichnis der Domain:
sudo unzip prestashop.zip -d /var/www/html/example.com
Stellen Sie mit dem folgenden chown
die richtigen Berechtigungen ein, damit der Webserver vollen Zugriff auf die Dateien und Verzeichnisse der Site hat Befehl:
sudo chown -R www-data: /var/www/html
Nginx konfigurieren #
Inzwischen sollte Nginx bereits mit einem SSL-Zertifikat auf Ihrem Ubuntu-Server installiert sein. Wenn nicht, überprüfen Sie die Voraussetzungen für dieses Tutorial.
Öffnen Sie Ihren Texteditor und erstellen Sie die folgende Datei:
sudo nano /etc/nginx/sites-available/example.com
/etc/nginx/sites-available/example.comserver {
listen 80;
listen 443 ssl http2;
server_name example.com www.example.com;
root /var/www/html/example.com;
index index.php;
# SSL parameters
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;
include snippets/ssl.conf;
include snippets/letsencrypt.conf;
# Cloudflare / Max CDN fix
location ~* \.(eot|otf|ttf|woff(?:2)?)$ {
add_header Access-Control-Allow-Origin *;
}
# Do not save logs for these
location = /favicon.ico {
auth_basic off;
allow all;
log_not_found off;
access_log off;
}
location = /robots.txt {
auth_basic off;
allow all;
log_not_found off;
access_log off;
}
# Images
rewrite ^/([0-9])(-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+.jpg$ /img/p/$1/$1$2$3.jpg last;
rewrite ^/([0-9])([0-9])(-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+.jpg$ /img/p/$1/$2/$1$2$3$4.jpg last;
rewrite ^/([0-9])([0-9])([0-9])(-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+.jpg$ /img/p/$1/$2/$3/$1$2$3$4$5.jpg last;
rewrite ^/([0-9])([0-9])([0-9])([0-9])(-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+.jpg$ /img/p/$1/$2/$3/$4/$1$2$3$4$5$6.jpg last;
rewrite ^/([0-9])([0-9])([0-9])([0-9])([0-9])(-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+.jpg$ /img/p/$1/$2/$3/$4/$5/$1$2$3$4$5$6$7.jpg last;
rewrite ^/([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+.jpg$ /img/p/$1/$2/$3/$4/$5/$6/$1$2$3$4$5$6$7$8.jpg last;
rewrite ^/([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+.jpg$ /img/p/$1/$2/$3/$4/$5/$6/$7/$1$2$3$4$5$6$7$8$9.jpg last;
rewrite ^/([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+.jpg$ /img/p/$1/$2/$3/$4/$5/$6/$7/$8/$1$2$3$4$5$6$7$8$9$10.jpg last;
rewrite ^/c/([0-9]+)(-[.*_a-zA-Z0-9-]*)(-[0-9]+)?/.+.jpg$ /img/c/$1$2$3.jpg last;
rewrite ^/c/([a-zA-Z_-]+)(-[0-9]+)?/.+.jpg$ /img/c/$1$2.jpg last;
# AlphaImageLoader for IE and fancybox
rewrite ^images_ie/?([^/]+)\.(jpe?g|png|gif)$ js/jquery/plugins/fancybox/images/$1.$2 last;
# Web service API
rewrite ^/api/?(.*)$ /webservice/dispatcher.php?url=$1 last;
# Installation sandbox
rewrite ^(/install(?:-dev)?/sandbox)/(.*) /$1/test.php last;
#Change this block to your admin folder
location /admin_CHANGE_ME {
if (!-e $request_filename) {
rewrite ^/.*$ /admin_CHANGE_ME/index.php last;
}
}
# File security
# .htaccess .DS_Store .htpasswd etc
location ~ /\. {
deny all;
}
# Source code directories
location ~ ^/(app|bin|cache|classes|config|controllers|docs|localization|override|src|tests|tools|translations|travis-scripts|vendor|var)/ {
deny all;
}
# Prevent exposing other sensitive files
location ~ \.(yml|log|tpl|twig|sass)$ {
deny all;
}
# Prevent injection of php files
location /upload {
location ~ \.php$ {
deny all;
}
}
location /img {
location ~ \.php$ {
deny all;
}
}
# PHP FPM part
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.2-fpm.sock;
}
}
Vergessen Sie nicht, example.com durch Ihre PrestaShop-Domain und „admin_CHANGE_ME“ durch Ihr Admin-Verzeichnis zu ersetzen. Sie finden den Verzeichnisnamen, indem Sie den Inhalt des Prestashop-Stammverzeichnisses auflisten:
sudo ls -l /var/www/html/example.com | grep admin
Stellen Sie außerdem sicher, dass Sie den richtigen Pfad zu den SSL-Zertifikatsdateien verwenden. Die in dieser Konfiguration verwendeten Snippets werden in diesem Handbuch erstellt.
Überprüfen Sie vor dem Neustart des Nginx-Dienstes die Konfiguration auf Syntaxfehler:
sudo nginx -t
Die Ausgabe sollte so aussehen:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Starten Sie abschließend den Nginx-Dienst neu, indem Sie Folgendes eingeben:
sudo systemctl restart nginx
Installation von PrestaShop #
Nachdem PrestaShop heruntergeladen und die Serverkonfiguration abgeschlossen ist, können Sie die Installation über die Weboberfläche abschließen.
Öffnen Sie Ihren Browser, geben Sie Ihre Domain ein und ein Bildschirm ähnlich dem folgenden wird angezeigt:
Wählen Sie die Sprache aus, die Sie verwenden möchten, und klicken Sie auf die Schaltfläche „Weiter“.
Auf dem nächsten Bildschirm wird Ihnen die PrestaShop-Lizenzvereinbarung angezeigt. Lesen Sie die Lizenz und wählen Sie „Ich stimme den obigen Bedingungen zu“. um fortzufahren:
Als nächstes sehen Sie die folgende Informationsseite:
Stellen Sie sicher, dass alle Voraussetzungen vor der Installation erfüllt sind und Ihr System mit PrestaShop kompatibel ist.
Auf dem nächsten Bildschirm müssen Sie Ihre Geschäftsdaten eingeben. Die E-Mail-Adresse ist der Benutzername für den Zugriff auf das Administrations-Backend von PrestaShop.
Als nächstes fordert Sie der Einrichtungsassistent auf, Ihre Datenbankverbindungsdaten einzugeben. Geben Sie die MySQL-Benutzer- und Datenbankdetails ein, die Sie zuvor erstellt haben:
Klicken Sie auf die Schaltfläche „Weiter“ und die Installation beginnt:
Die Installation kann einige Minuten dauern, nach Abschluss wird die folgende Seite angezeigt, die Sie darüber informiert, dass PrestaShop installiert wurde.
Aus Sicherheitsgründen müssen Sie das Installationsverzeichnis löschen. Gehen Sie dazu zurück zum Terminal und geben Sie folgenden rm
ein Befehl:
sudo rm -rf /var/www/html/example.com/install
Um auf Ihr administratives Dashboard von PrestaShop zuzugreifen, klicken Sie auf die Schaltfläche „Shop verwalten“. Geben Sie Ihre E-Mail-Adresse und Ihr Passwort ein und Sie werden zum Administrations-Dashboard weitergeleitet.
Von hier aus können Sie mit der Anpassung Ihrer PrestaShop-Installation beginnen und neue Produkte hinzufügen.