Magento ist die führende E-Commerce-Plattform der Enterprise-Klasse, die auf Open-Source-Technologie basiert und leistungsstarke Funktionen mit Flexibilität und einer benutzerfreundlichen Oberfläche kombiniert.
Mit Funktionen wie fesselnden Einkaufserlebnissen, flexibler modularer Architektur und Skalierbarkeit und Leistung auf Unternehmensniveau ist Magento die Plattform der Wahl für die meisten Online-Händler.
In diesem Tutorial zeigen wir Ihnen, wie Sie Magento 2.3 auf einem Ubuntu 18.04-Rechner 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.
Um auf das Magento 2-Code-Repository zugreifen zu können, müssen Sie Authentifizierungsschlüssel generieren. Wenn Sie kein Magento Marketplace-Konto haben, können Sie hier eines erstellen. Nachdem Sie das Konto erstellt haben, lesen Sie bitte diese Anweisungen, um einen neuen Satz von Authentifizierungsschlüsseln zu generieren.
Aktualisieren Sie die Systempakete auf die neuesten Versionen und installieren Sie das Unzip-Dienstprogramm:
sudo apt update && sudo apt upgrade
sudo apt install unzip
Mysql-Datenbank wird erstellt #
Wenn Sie MySQL oder MariaDB auf Ihrem Server installiert haben, können Sie diesen Schritt überspringen, wenn nicht, können Sie das MySQL 5.7-Serverpaket aus den Standard-Repositories von Ubuntu installieren, 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. Melden Sie sich mit dem folgenden Befehl 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 magento
zu erstellen :
CREATE DATABASE magento;
Erstellen Sie als Nächstes ein MySQL-Benutzerkonto mit dem Namen magento
und erteilen Sie dem Benutzer die erforderlichen Berechtigungen, indem Sie den folgenden Befehl ausführen:
GRANT ALL ON magento.* TO 'magento'@'localhost' IDENTIFIED BY 'change-with-strong-password';
Stellen Sie sicher, dass Sie change-with-strong-password
ändern mit einem starken Passwort. Wenn Sie fertig sind, verlassen Sie die MySQL-Konsole, indem Sie Folgendes eingeben:
EXIT;
Erstellen des Systembenutzers Nr.
Erstellen Sie einen neuen Benutzer und eine neue Gruppe, die Eigentümer des Magento-Dateisystems sein wird. Der Einfachheit halber nennen wir den Benutzer magento
:
sudo useradd -m -U -r -d /opt/magento magento
Fügen Sie die www-data
hinzu Benutzer zum magento
Gruppe und ändern Sie den /opt/magento
Verzeichnisberechtigungen, damit Nginx auf die Magento-Installation zugreifen kann:
sudo usermod -a -G magento www-data
sudo chmod 750 /opt/magento
Installieren und Konfigurieren von PHP #
PHP 7.2, die Standard-PHP-Version in Ubuntu 18.04, wird vollständig unterstützt und für Magento 2.3 empfohlen. Da wir Nginx als Webserver verwenden werden, installieren wir auch das PHP-FPM-Paket.
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
Der PHP-FPM-Dienst wird nach Abschluss des Installationsvorgangs automatisch gestartet. Sie können dies überprüfen, indem Sie den Dienststatus ausdrucken:
sudo systemctl status php7.2-fpm
Die Ausgabe sollte anzeigen, dass der fpm-Dienst aktiv ist und ausgeführt wird.
● 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 Wed 2018-12-12 15:47:16 UTC; 5s ago
Docs: man:php-fpm7.2(8)
Main PID: 16814 (php-fpm7.2)
Status: "Ready to handle connections"
Tasks: 3 (limit: 505)
CGroup: /system.slice/php7.2-fpm.service
Legen Sie die erforderlichen und empfohlenen PHP-Optionen fest, indem Sie die php.ini
bearbeiten Datei mit sed
::
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
Als nächstes müssen wir einen FPM-Pool für magento
erstellen Benutzer.
Öffnen Sie Ihren Texteditor und erstellen Sie die folgende Datei:
sudo nano /etc/php/7.2/fpm/pool.d/magento.conf
/etc/php/7.2/fpm/pool.d/magento.conf[magento]
user = magento
group = www-data
listen.owner = magento
listen.group = www-data
listen = /var/run/php/php7.2-fpm-magento.sock
pm = ondemand
pm.max_children = 50
pm.process_idle_timeout = 10s
pm.max_requests = 500
chdir = /
Starten Sie den PHP-FPM-Dienst neu, damit die Änderungen wirksam werden:
systemctl restart php7.2-fpm
Überprüfen Sie, ob der PHP-Socket erfolgreich erstellt wurde, indem Sie den folgenden ls-Befehl ausführen:
ls -al /var/run/php/php7.2-fpm-magento.sock
Die Ausgabe sollte in etwa so aussehen:
srw-rw---- 1 magento www-data 0 Dec 12 16:07 /var/run/php/php7.2-fpm-magento.sock=
Installieren von Composer #
Composer ist ein Abhängigkeitsmanager für PHP und wir werden ihn verwenden, um den Magento-Kern herunterzuladen und alle erforderlichen Magento-Komponenten zu installieren.
Um Composer global zu installieren, laden Sie das Composer-Installationsprogramm mit Curl herunter und verschieben Sie die Datei nach /usr/local/bin
Verzeichnis:
curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer
Überprüfen Sie die Installation, indem Sie die Composer-Version drucken:
composer --version
Die Ausgabe sollte in etwa so aussehen:
Composer version 1.8.0 2018-12-03 10:31:16
Installieren von Magento #
Es gibt mehrere Möglichkeiten, Magento 2 zu installieren. Vermeiden Sie die Installation von Magento aus dem Github-Repository, da diese Version für die Entwicklung und nicht für Produktionsinstallationen vorgesehen ist.
Zum Zeitpunkt der Erstellung dieses Artikels ist die neueste stabile Version von Magento Version 2.3.0
. In diesem Tutorial installieren wir Magento aus ihren Repositories mit Composer.
Wechseln Sie zum Benutzer magento
indem Sie Folgendes eingeben:
sudo su - magento
Starten Sie die Installation, indem Sie Magento-Dateien in das Verzeichnis /opt/magento/public_html herunterladen:
composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition /opt/magento/public_html
Sie werden aufgefordert, die Zugangsschlüssel einzugeben, die Schlüssel aus Ihrem Magento-Marktplatzkonto zu kopieren und in auth.json
zu speichern Datei, sodass Sie später beim Aktualisieren Ihrer Installation nicht dieselben Schlüssel erneut hinzufügen müssen.
Authentication required (repo.magento.com):
Username: e758ec1745d190320ca246e4e832e12c
Password:
Do you want to store credentials for repo.magento.com in /opt/magento/.config/composer/auth.json ? [Yn] Y
Der obige Befehl ruft alle erforderlichen PHP-Pakete ab. Der Vorgang kann einige Minuten dauern und wenn er erfolgreich ist, sollte das Ende der Ausgabe wie folgt aussehen:
Writing lock file
Generating autoload files
Sobald das Projekt erstellt ist, können wir die Magento-Installation starten. Wir können Magento entweder über die Befehlszeile oder mit dem Web-Setup-Assistenten installieren. In diesem Tutorial installieren wir Magento über die Befehlszeile.
Wir werden die folgenden Optionen verwenden, um den Magento-Shop zu installieren:
- Basis- und sichere Basis-URLs sind auf
https://example.com
festgelegt , ändern Sie es mit Ihrer Domain. - Magento-Administrator:
John
Doe
als Vor- und Nachname.[email protected]
als E-Mail.john
als Benutzername undj0hnP4ssvv0rD
als Passwort.
- Datenbankname
magento
, Benutzernamemagento
, Passwortchange-with-strong-password
und der Datenbankserver befindet sich auf demselben Host wie der Webserver. en_US
, US-Englisch als Standardsprache.USD
Dollar als Standardwährung.America/Chicago
als Zeitzone.
Wechseln Sie zu Magento ~/public_html
Verzeichnis:
cd ~/public_html
Führen Sie den folgenden Befehl aus, um die Installation zu starten:
php bin/magento setup:install --base-url=https://example.com/ \
--base-url-secure=https://example.com/ \
--admin-firstname="John" \
--admin-lastname="Doe" \
--admin-email="[email protected]" \
--admin-user="john" \
--admin-password="j0hnP4ssvv0rD" \
--db-name="magento" \
--db-host="localhost" \
--db-user="magento" \
--currency=USD \
--timezone=America/Chicago \
--use-rewrites=1 \
--db-password="change-with-strong-password"
Vergessen Sie nicht, das Passwort zu ändern (j0hnP4ssvv0rD
) zu etwas Sichererem. Der Vorgang kann einige Minuten dauern und nach Abschluss wird Ihnen eine Nachricht angezeigt, die den URI zum Magento-Admin-Dashboard enthält.
[Progress: 773 / 773]
[SUCCESS]: Magento installation complete.
[SUCCESS]: Magento Admin URI: /admin_13nv5k
Nothing to import.
Magento-crontab erstellen #
Magento verwendet Cron-Jobs, um Aufgaben wie Neuindizierung, Benachrichtigungen, Sitemaps, E-Mails und mehr zu planen.
Um die Magento-Crontab zu erstellen, führen Sie den folgenden Befehl als magento
aus Benutzer:
php ~/public_html/bin/magento cron:install
Crontab has been generated and saved
Vergewissern Sie sich, dass crontab installiert ist, indem Sie Folgendes eingeben:
crontab -l
#~ MAGENTO START adc062915d7b30804a2b340095af072d
* * * * * /usr/bin/php7.2 /opt/magento/public_html/bin/magento cron:run 2>&1 | grep -v "Ran jobs by schedule" >> /opt/magento/public_html/var/log/magento.cron.log
* * * * * /usr/bin/php7.2 /opt/magento/public_html/update/cron.php >> /opt/magento/public_html/var/log/update.cron.log
* * * * * /usr/bin/php7.2 /opt/magento/public_html/bin/magento setup:cron:run >> /opt/magento/public_html/var/log/setup.cron.log
#~ MAGENTO END adc062915d7b30804a2b340095af072d
Nginx konfigurieren #
Inzwischen sollten Sie Nginx mit SSL-Zertifikat bereits auf Ihrem Ubuntu-Server installiert haben, wenn nicht, überprüfen Sie die Voraussetzungen für dieses Tutorial.
Wir werden die standardmäßige Nginx-Konfiguration einschließen, die mit Magento geliefert wird.
Wechseln Sie zu Ihrem sudo-Benutzer, öffnen Sie Ihren Texteditor und erstellen Sie die folgende Datei:
sudo nano /etc/nginx/sites-available/example.com
/etc/nginx/sites-available/example.comupstream fastcgi_backend {
server unix:/var/run/php/php7.2-fpm-magento.sock;
}
server {
listen 80;
server_name example.com www.example.com;
include snippets/letsencrypt.conf;
return 301 https://example.com$request_uri;
}
server {
listen 443 ssl http2;
server_name www.example.com;
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;
return 301 https://example.com$request_uri;
}
server {
listen 443 ssl http2;
server_name example.com;
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;
set $MAGE_ROOT /opt/magento/public_html;
set $MAGE_MODE developer; # or production
access_log /var/log/nginx/example.com-access.log;
error_log /var/log/nginx/example.com-error.log;
include /opt/magento/public_html/nginx.conf.sample;
}
Vergessen Sie nicht, example.com durch Ihre Magento-Domain zu ersetzen und den richtigen Pfad zu den SSL-Zertifikatsdateien festzulegen. Die in dieser Konfiguration verwendeten Snippets werden in diesem Handbuch erstellt. Führen Sie vor dem Neustart des Nginx-Dienstes einen Test durch, um sicherzustellen, dass keine Syntaxfehler vorliegen:
sudo nginx -t
Wenn es keine Fehler gibt, sollte die Ausgabe 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
Überprüfen der Installation #
Öffnen Sie Ihren Browser, geben Sie Ihre Domain ein und vorausgesetzt, die Installation ist erfolgreich, wird ein Bildschirm ähnlich dem folgenden angezeigt:
Sie können jetzt zum Magento-Admin-URI gehen, sich als Admin-Benutzer anmelden und mit der Anpassung Ihrer neuen Magento-Installation beginnen.