Magento 2 ist der Nachfolger der leistungsstarken Open-Source-E-Commerce-Plattform Magento, die auf Ihren Linux-Distributionen verfügbar ist. Dieses Tutorial enthält die Schritte zum Installieren von Magento 2 mit Nginx unter Ubuntu 18.04. Diese Software ist in PHP geschrieben und verwendet Mysql oder MariaDB für die Datenbank, was bedeutet, dass die Konfiguration mit LEMP erfolgen kann.
Magento 2 ist das neueste Upgrade von Magento, das einige Verbesserungen wie
bietet- sowohl Frontend als auch Backend, eines für die Verwaltung und eines für die Kunden des Geschäfts
- Flexibilität und volle Unterstützung
- die Seitengeschwindigkeit und die integrierten Plugins...
Das Datenbankdiagramm von Magento 2 unterscheidet sich von Magento 1. Einige Tabellen wurden von Magento 1 umbenannt oder geändert zu Magento 2
- core_website - store_website (Struktur wurde geändert)
- core_store - Speicher (Struktur wird nicht geändert)
- core_translate - Übersetzung
- core_url_rewrite - url_rewrite
- core_store_group - store_group (Struktur wird nicht geändert)
- core_email_template - email_template
- admin_role - Autorisierungsrolle (Struktur wurde geändert)
- admin_rule - Autorisierungsregel (Struktur wurde geändert)
- sales_flat_order - sales_order
- sales_flat_order_address - sales_order_address
- sales_flat_order_grid - sales_order_grid
- sales_flat_order_item - sales_order_item
- sales_flat_order_payment - sales_order_payment
- sales_flat_order_status_history - sales_order_status_history
- coupon_aggregated_order - salesrule_coupon_aggregated_order
Magento scheint tatsächlich nicht vollständig kompatibel mit php 7.2 zu sein Dies ist die Standardinstallation auf Ubuntu 18.04. Es gibt eine Magento-Community auf GitHub, wo versucht wird, die Unterstützung von php-7.2 in Magento zu implementieren.
Sie können unten die verschiedenen PHP-Versionen sehen, die tatsächlich mit Magento 2 kompatibel sind. Sie können die anderen Anforderungen auf der offiziellen Seite von Magento einsehen
1) Installieren Sie die Voraussetzungen
In unserem Tutorial installieren wir Magento 2 mit Nginx auf Ubuntu 18.04 und verwenden die MySQL-Datenbank. Das bedeutet, dass Sie einen laufenden LEMP-Server auf Ihrem Server haben müssen. Magento erfordert einige PHP-Erweiterungen, die Sie installieren müssen
- bc-math
- Typ
- locken
- Dom
- gd, ImageMagick 6.3.7 (oder höher) oder beides
- intl.
- mbstring
- mcrypt
- Hash
- openssl
- PDO/MySQL
- SimpleXML
- Seife
- spl
- libxml
- xsl
- zip
- json
- iconv
Sie müssen die software-properties-common haben Paket, das bereits in Ubuntu 18.04 und ondrej/php vorhanden ist Repository, das wir hinzufügen werden
# add-apt-repository ppa:ondrej/php -y
Installieren Sie nun php 7.1 mit den Abhängigkeiten
# apt install php7.1-fpm php7.1-mcrypt php7.1-curl php7.1-cli php7.1-mysql php7.1-gd php7.1-xsl php7.1-json php7.1-intl php-pear php7.1-dev php7.1-common php7.1-mbstring php7.1-zip php7.1-soap php7.1-bcmath
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
autoconf automake autopoint autotools-dev binutils binutils-common binutils-x86-64-linux-gnu build-essential cpp cpp-7 debhelper dh-autoreconf
dh-php dh-strip-nondeterminism dpkg-dev fakeroot g++ g++-7 gcc gcc-7
...
...
Bitte beachten Sie, dass Sie bei einem zukünftigen Schritt unseres Tutorials blockiert werden, wenn Sie nicht alle diese PHP-Abhängigkeiten installieren.
Bearbeiten Sie dann die Zeilen der Datei /etc/php/7.1/fpm/php.ini
um etwas wie unten zu haben und stellen Sie sicher, dass Sie die Werte an Ihre anpassen
# vim /etc/php/7.1/fpm/php.ini
file_uploads = On
upload_max_filesize = 150M
memory_limit = 256M
cgi.fix_pathinfo=0
date.timezone = Cameroon/Douala
Starten Sie PHP 7.1-fpm neu
# systemctl restart php7.1-fpm
2) Erstellen Sie die Magento 2-Datenbank
Jetzt sollten wir uns mit der MySQL-Datenbank verbinden, um die Datenbank für Magento zu erstellen
# mysql -u root -p
Enter password:
Erstellen Sie dann die Magento-Datenbank, Benutzer und gewähren Sie die Berechtigungen
mysql> CREATE DATABASE magentodb;
Query OK, 1 row affected (0.00 sec)
mysql> CREATE USER 'magento'@'localhost' IDENTIFIED BY 'magentodb-password';
Query OK, 0 rows affected (0.00 sec)
mysql> GRANT ALL PRIVILEGES ON magentodb.* TO 'magento'@'localhost' IDENTIFIED BY 'magentodb-password';
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
mysql> exit
Bye
3) Magento 2 herunterladen und konfigurieren
Dieses Tutorial zeigt die Installation von Magento 2.2.5 das ist eigentlich die neueste verfügbare Release-Version. Wir werden es direkt aus dem offiziellen GitHub-Repository von Magento herunterladen
# wget https://github.com/magento/magento2/archive/2.2.5.tar.gz
--2018-07-13 08:24:37-- https://github.com/magento/magento2/archive/2.2.5.tar.gz
Resolving github.com (github.com)... 192.30.253.112, 192.30.253.113
Connecting to github.com (github.com)|192.30.253.112|:443... connected.
HTTP request sent, awaiting response... 302 Found
...
...
Jetzt entpacken
# tar xvf 2.2.5.tar.gz
Verschieben Sie es dann in den Stammordner Ihres Nginx-Servers
# mv magento2-2.2.5/ /var/www/html/magento
Stellen Sie sicher, dass Sie die Berechtigung mit dem Befehl chmod und den Besitz mit dem Befehl chown aktualisieren, wie unten gezeigt:
# chown -R www-data:www-data /var/www/html/ && chmod -R 755 /var/www/html/
Sie können Composer auch benötigen, wenn Sie Magento-Erweiterungen entwickeln möchten. Sie benötigen es auch, wenn Sie zur Codebasis von Magento 2 beitragen möchten.
# apt install composer -y
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
jsonlint php-cli-prompt php-composer-ca-bundle
....
....
Überprüfen Sie dann
# composer -V
Do not run Composer as root/super user! See https://getcomposer.org/root for details
Composer 1.6.3 2018-01-31 16:28:17
Jetzt können wir die Magento-Komponenten mit Composer installieren. Dies ist nur möglich, wenn Sie alle PHP-Anforderungen installiert haben
# cd /var/www/html/magento/ && composer install -v
Do not run Composer as root/super user! See https://getcomposer.org/root for details
Loading composer repositories with package information
Installing dependencies (including require-dev) from lock file
Dependency resolution completed in 0.001 seconds
Analyzed 177 packages to resolve dependencies
Analyzed 482 rules to resolve dependencies
Package operations: 117 installs, 0 updates, 0 removals
Installs: magento/magento-composer-installer:0.1.13, braintree/braintree_php:3.28.0, colinmollenhour/cache-backend-file:1.4, colinmollenhour/cache-bac
kend-redis:1.10.4, colinmollenhour/credis:1.8.2
...
...
4) Nginx für Magento konfigurieren
Jetzt werden wir Nginx für Magento konfigurieren. Überprüfen Sie den Speicherort des PHP-Sockets, mit dem sich Nginx verbindet. Listen Sie also den Inhalt für das Verzeichnis /var/run/php/
auf
# ls /var/run/php/
php7.1-fpm.pid php7.1-fpm.sock
Bearbeiten Sie nun die Konfigurationsdatei
# vim /etc/nginx/sites-available/magento
upstream fastcgi_backend {
server unix:/var/run/php/php7.1-fpm.sock;
}
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name www.mywebstore.com;
set $MAGE_ROOT /var/www/html/magento;
set $MAGE_MODE developer;
include /var/www/html/magento/nginx.conf.sample;
}
Sie können die Konfiguration speichern, beenden und den virtuellen Host aktivieren, indem Sie den symbolischen Link wie folgt erstellen
# ln -s /etc/nginx/sites-available/magento /etc/nginx/sites-enabled/
Um einige Fehler bezüglich des standardmäßig zu verwendenden virtuellen Hosts zu vermeiden, stellen Sie sicher, dass Sie den Serverblock der nginx-Standardkonfiguration /etc/nginx/sites-available/default
bearbeiten um den default_server zu entfernen wie unten erwähnen
#vim /etc/nginx/sites-available/default
server {
listen 80;
listen [::]:80;
# your others line below
}
Wenn Sie dies nicht tun, erhalten Sie einen ähnlichen Fehler wie unten
[emerg] 2369#2369: a duplicate default server for 0.0.0.0:80 in /etc/nginx/sites-enabled/magento:22
Dies zeigt, dass die beiden virtuellen Hosts als standardmäßig zu verwendender virtueller Host angesehen werden. Überprüfen Sie die Konfiguration
# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Starten Sie jetzt den Nginx-Server neu
# systemctl restart nginx
4) Schließen Sie die Webinstallation des Magento-Assistenten ab
Jetzt können Sie Ihren Webbrowser starten, um die Installation von Magento http://www.yourwebstore.com fortzusetzen, und dann zustimmen
Überprüfen Sie die PHP-Umgebung
Wenn Ihre Umgebung korrekt ist, haben Sie alles in Grün
Konfigurieren Sie nun die bereits erstellte Datenbank mit den zuvor verwendeten Informationen mit der mysql-Befehlszeile
Konfigurieren Sie den Webzugriff. Stellen Sie sicher, dass Sie die Magento-Admin-Adresse beibehalten. Sie können sich die erweiterten Optionen ansehen
Wählen Sie nun die Währung, die Sprache und die Zeitzone, die von Ihrem Shop verwendet werden sollen
Sie können die erweiterte Option sehen, die die zu installierenden Module anzeigt
Konfigurieren Sie das Administratorkonto
Jetzt kann die Installation beginnen
Jetzt sehen Sie eine Zusammenfassung der Konfiguration. Vergessen Sie aus Sicherheitsgründen nicht die wichtigen Erwähnungen auf dieser Seite
Nun sehen Sie die Anmeldeseite. Geben Sie Ihre zuvor erstellten Admin-Parameter ein
Sie können die Dashboard-Startseite Ihres Magento-Webshops sehen. Fühlen Sie sich frei, jede von magento2 bereitgestellte Funktion zu durchsuchen
Sie können die Startseite Ihres Webshops öffnen. Es ist die Seite für den Kunden
Sie können während des Prozesses auf einige Fehler stoßen, wir werden die möglichen Fehler behandeln, die auftreten können.
5) Einige mögliche Fehler beheben
Während des Vorgangs können einige Probleme auftreten, die die Installation Ihres Magento 2 stoppen können. Daher haben wir einige Fehler mit den Korrekturen aufgelistet, die angewendet werden könnten
php FastCGI verweigert
Sie können eine Berechtigung aufgrund der Standard-nginx-Konfigurationsdatei von Magento 2 verweigern lassen, die nicht funktionieren kann. Wenn Sie Ihr Nginx-Protokoll überprüfen, können Sie den Fehler unten sehen
Um es zu beheben, bearbeiten Sie /var/www/html/magento/nginx.conf.sample
/setup location block durch Hinzufügen einer bestimmten Zeile wie unten
# vim /var/www/html/magento/nginx.conf.sample
location ~* ^/setup($|/) {
root $MAGE_ROOT;
location ~ ^/setup/index.php {
### The only line to add is the one below:
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
###################
## Don't change anything else in the file
Starten Sie dann nginx neu. Sie können einem Thread auf Magento Github zu diesem Problem folgen, wenn Sie Web Setup auf nginx nicht ausführen können
Ein oder mehrere Indexer sind ungültig. Stellen Sie sicher, dass Ihr Magento-Cronjob ausgeführt wird
Wenn Sie zum ersten Mal auf das Admin-Panel zugreifen, können Sie eine Meldung bezüglich der ungültigen Indizes und des Magento-Cron-Jobs erhalten, die wie unten beschrieben nicht richtig funktionieren
Hier müssen Sie alle verfügbaren Indizierungen in Magento 2 neu indizieren. Gehen Sie dazu in das Projektstammverzeichnis
# cd /var/www/html/magento
und führen Sie die Magento-CLI
aus# php bin/magento indexer:reindex
Design Config Grid index has been rebuilt successfully in 00:00:00
Customer Grid index has been rebuilt successfully in 00:00:00
Category Products index has been rebuilt successfully in 00:00:00
Product Categories index has been rebuilt successfully in 00:00:00
Catalog Rule Product index has been rebuilt successfully in 00:00:00
Product EAV index has been rebuilt successfully in 00:00:00
Stock index has been rebuilt successfully in 00:00:00
Product Price index has been rebuilt successfully in 00:00:00
Catalog Product Rule index has been rebuilt successfully in 00:00:00
Catalog Search index has been rebuilt successfully in 00:00:00
Verwenden Sie nun den Befehl
, um Cron für Magento 2 einzurichten und auszuführen# php bin/magento cron:run
Ran jobs by schedule.
Cache-Typen werden ungültig gemacht
Sie können sich den ungültig gemachten Cache-Typen stellen. Die Nachricht wird oben angezeigt
Einer oder mehrere der Cache-Typen sind ungültig:Seiten-Cache. Bitte gehen Sie zur Cache-Verwaltung und aktualisieren Sie die Cache-Typen.
Die Gründe für die Invalidierung des Block-Cache können von Produktaktualisierungen, Änderungen der Katalogpreisregeln und auch Erweiterungen von Drittanbietern stammen. Einige laufende Cronjobs können auch dazu führen, dass Block-Caches ungültig werden. Die Auflösung wird in der Nachricht angezeigt, gehen Sie zu System> Cache-Verwaltung
Sie sehen alle Cache-Typen. Klicken Sie nun auf M spülen agento-Cache
Lesen Sie auch:
- So installieren Sie LAMP Stack auf Ubuntu 18.04
- So installieren Sie PhpMyAdmin mit LAMP unter Ubuntu 18.04
Sie haben die verschiedenen Schritte, um ein funktionierendes Magento 2 auf Ubuntu 18.04 zu haben. Die Unterstützung von php-7.2 scheint noch nicht fertig zu sein, aber eine Magento-Community arbeitet an diesem Zweck. Sie können den Versuch erzwingen, Magento 2 mit php-7.2 anzupassen, aber wenn der offizielle Support bereit ist, funktioniert Ihr Patch möglicherweise nicht mehr.