Wie man Prestashop auf einem LAMP Server installiert

In diesem Artikel:

Kategorie: , , Tags: , , , Linux: , , , , , , , , , , , , , , , , , , , , ,

Serverpakete aktualisieren

apt update
apt upgrade
reboot

Datenbank erstellen

Hetzner speichert das Root-Passwort für MariaDB in der Datei /root/.hcloud_password

#Automatisch generiertes Passwort abfragen:
nano .hcloud_password

#Mit mysql einloggen und Datenbank erstellen:
mysql -u root -p
[Passwort aus .hcloud_password einfügen]

CREATE DATABASE presta_db;
CREATE USER 'presta_user'@'localhost' IDENTIFIED BY 'Passwort';
GRANT ALL PRIVILEGES ON presta_db.* TO 'presta_user'@'localhost';
FLUSH PRIVILEGES;

Installationsdaten per FTP hochladen und vorbereiten

Auf der Webseite von Prestashop kann die aktuellste Version heruntergeladen werden.

https://prestashop.com/prestashop-edition-basic/

Die heruntergeladenen Datei entpacken und nur die prestashop.zip per FTP auf den Server ins Webseiten-Verzeichnis unter /var/www/deien_webseite.de hochladen.

ls /var/www/deine_webseite.de

Falls neben der prestashop.zip noch andere Dateien (wie bspw. eine index.php) vorhanden sind, müssen diese entfernt werden.

rm index.php

Das Paket unzip installieren, damit wir die prestashop.zip entpacken können. Danach wird die prestashop.zip entfernt mit rm.

apt install unzip
unzip prestashop.zip
rm prestashop.zip

Nun das Verzeichnis app/Resources/translations erstellen, damit wir auch dafür schon die Verzeichnisrechte anpassen können.

mkdir /var/www/deine_webseite.de/app/Resources/translations

Verzeichnisrechte und -besitzer müssen angepasst werden.

chown -R www-data:www-data /var/www/deine_webseite.de/
chmod -R 755 /var/www/deine_webseite.de/

PHP Extensions installieren

Prestashop benötigt und/oder empfiehlt die Installation mehrere PHP-Extensions.

apt install php-zip php-simplexml php-curl php-gd php-intl php-mbstring php-bcmath php-imagick

PHP Memcached installieren

apt install memcached libmemcached-tools -y
apt install php-memcached
service apache2 restart

PHP-FPM installieren

Wir installieren zusätzlich PHP-FPM

apt install php-fpm
a2enconf php8.1-fpm
a2dismod php8.1
a2enmod mpm_event proxy_fcgi setenvif

Empfohlene PHP Konfiguration

Die empfohlen Konfiguration kann über die phppsinfo.php aufgerufen und überprüft werden. Die phppsinfo.php kann unter folgendem Link heruntergerladen werden.

https://github.com/PrestaShop/php-ps-info/

Außerdem hat Prestashop eine Beitrag veröffentlicht, in dem mehrere Optimierungshinweise zu PHP enthalten sind.

https://devdocs.prestashop-project.org/8/scale/optimizations/

Im weiteren Verlauf wird nun die php.ini entsprechend den Empfehlungen angepasst.

#Änderungen in der www.conf
nano /etc/php/8.1/fpm/pool.d/www.conf

pm.max_children = 15

#Änderungen in der php.ini
nano /etc/php/8.1/fpm/php.ini

max_execution_time = 300
max_input_time = 300
max_input_vars = 5000
memory_limit = 512M
post_max_size = 128M
upload_max_filesize = 128M

realpath_cache_size = 4096K
realpath_cache_ttl = 600

opcache.enable=1
opcache.enable_cli=0
opcache.memory_consumption=256
opcache.interned_strings_buffer=32
opcache.max_accelerated_files=16229
opcache.max_wasted_percentage=10
opcache.revalidate_freq=10
opcache.fast_shutdown=1
opcache.enable_file_override=0
opcache.max_file_size=0

Alle Einstellungen werden erst nach Neustart wirksam. Daher einmal den apache2 Dienst neu starten.

systemctl restart php8.1-fpm
systemctl restart apache2

Firewall installieren

apt install ufw
ufw default deny incoming
ufw default allow outgoing
ufw allow from your_static_public_ip to any port ssh (ACHTUNG!)
ufw allow http
ufw allow https
ufw enable
ufw status

Prestashop installieren

Für die Installation die URL deine_webseite.de/install im Browser aufrufen.

Nach der Installation und vor dem Aufrufen des Backends muss das Installationsverzeichnis /install gelöscht werden.

rm -r /var/www/deine_webseite.de/install