Wie man Magento 2 mit Lack und Apache auf Ubuntu 16.04 einrichtet
Magento ist ein kostenloses und quelloffenes Content Management System, das in PHP, Zend Framework und MySQL-Datenbank integriert ist. Es ist eine sehr beliebte eCommerce-Webanwendung, die auf vielen Open-Source-Anwendungen wie Apache, MySQL und vielen anderen läuft. Magento kommt mit vielen eingebauten Modulen, die verwendet werden, um mehr Funktionalität hinzuzufügen.
Varnish Cache ist ein leistungsstarker Open-Source-Beschleuniger für Webanwendungen, auch bekannt als Caching HTTP Reverse Proxy. Es wird verwendet, um Ihre Website zu beschleunigen, indem eine Kopie einer Webseite beim ersten Besuch eines Benutzers zwischengespeichert wird. Magento und Lack ist eine bekannte Kombination, um die Leistung der Website deutlich zu steigern. Varnish ist standardmäßig in Magento 2 integriert, so dass Sie nur einige Konfigurationsänderungen vornehmen müssen, damit es funktioniert.
In diesem Tutorial lernen wir, wie man Magento 2 mit Varnish als Ganzseiten-Cache auf dem Ubuntu 16.04 Server installiert.
Anforderungen
- Ein Server mit Ubuntu 16.04.
- Apache, PHP und MariaDB.
- Ein Nicht-Root-Benutzer mit sudo-Rechten, der auf Ihrem Server eingerichtet ist.
1 Erste Schritte
Vor dem Start wird empfohlen, Ihr System mit dem neuesten Paket zu aktualisieren, indem Sie den folgenden Befehl ausführen:
sudo apt-get update -y sudo apt-get upgrade -y
Sobald Ihr System auf dem neuesten Stand ist, starten Sie Ihr System neu und melden Sie sich mit sudo user an.
2 LAMP-Server installieren
Magento funktioniert nicht ohne die Installation des LAMP-Stacks (Apache, PHP, MariaDB). Installieren Sie zunächst den Apache Webserver und den Lack, indem Sie den folgenden Befehl ausführen:
sudo apt-get install apache2 varnish -y
Nach der Installation von Apache starten Sie den Apache-Dienst und aktivieren Sie ihn, indem Sie den folgenden Befehl ausführen:
sudo systemctl start apache2 sudo systemctl enable apache2
Magento ist in der Sprache PHP geschrieben, so dass Sie auch PHP mit allen Bibliotheken auf Ihrem System installieren müssen. Du kannst sie alle installieren, indem du den folgenden Befehl ausführst:
sudo apt-get install php7.0 libapache2-mod-php7.0 php7.0-mbstring php7.0-mysql php7.0-mcrypt php7.0-xsl php-imagick php7.0-gd php7.0-cli php-pear php7.0-intl php7.0-curl php7.0-zip php7.0-gd php7.0-soap php7.0-xml -y
Nachdem Sie PHP zusammen mit allen erforderlichen Bibliotheken installiert haben, müssen Sie einige Standardeinstellungen für PHP ändern. Sie können dies tun, indem Sie die Datei php.ini bearbeiten:
sudo nano /etc/php/7.0/cli/php.ini
Ändern Sie die folgenden Zeilen:
memory_limit = 512 upload_max_filesize = 128M zlib.output_compression = on max_execution_time = 15000
Speichern und schließen Sie die Datei, wenn Sie fertig sind.
3 MariaDB installieren und konfigurieren
Magento verwendet MariaDB als Datenbank. Sie müssen es also auf Ihrem Server installieren. Sie können es installieren, indem Sie einfach den folgenden Befehl ausführen:
sudo apt-get install mariadb-server -y
Nach der Installation von MariaDB starten Sie den MariaDB-Dienst und aktivieren Sie ihn zum Startzeitpunkt, indem Sie den folgenden Befehl ausführen:
sudo systemctl start mysql sudo systemctl enable mysql
Standardmäßig ist MariaDB nicht gesichert, daher müssen Sie es sichern. Sie können es sichern, indem Sie den folgenden Befehl ausführen:
sudo mysql_secure_installation
Beantworten Sie alle Fragen wie unten gezeigt:
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY! In order to log into MariaDB to secure it, we'll need the current password for the root user. If you've just installed MariaDB, and you haven't set the root password yet, the password will be blank, so you should just press enter here. Enter current password for root (enter for none): OK, successfully used password, moving on... Setting the root password ensures that nobody can log into the MariaDB root user without the proper authorisation. You already have a root password set, so you can safely answer 'n'. Change the root password? [Y/n] n ... skipping. By default, a MariaDB installation has an anonymous user, allowing anyone to log into MariaDB without having to have a user account created for them. This is intended only for testing, and to make the installation go a bit smoother. You should remove them before moving into a production environment. Remove anonymous users? [Y/n] Y ... Success! Normally, root should only be allowed to connect from 'localhost'. This ensures that someone cannot guess at the root password from the network. Disallow root login remotely? [Y/n] Y ... Success! By default, MariaDB comes with a database named 'test' that anyone can access. This is also intended only for testing, and should be removed before moving into a production environment. Remove test database and access to it? [Y/n] Y - Dropping test database... ... Success! - Removing privileges on test database... ... Success! Reloading the privilege tables will ensure that all changes made so far will take effect immediately. Reload privilege tables now? [Y/n] Y ... Success! Cleaning up... All done! If you've completed all of the above steps, your MariaDB installation should now be secure. Thanks for using MariaDB!
Als nächstes loggen Sie sich mit dem folgenden Befehl in die MariaDB-Shell ein:
mysql -u root -p
Geben Sie Ihr Root-Passwort ein, wenn Sie dazu aufgefordert werden, und erstellen Sie dann eine Datenbank für Magento mit dem folgenden Befehl:
MariaDB [(none)]>CREATE DATABASE magento_db;
Nachdem Sie die Datenbank für Magento erstellt haben, erstellen Sie einen Benutzernamen und ein Passwort mit dem folgenden Befehl:
MariaDB [(none)]>CREATE USER 'magento'@'localhost' IDENTIFIED BY 'password';
Als nächstes vergeben Sie der Magento-Datenbank mit dem folgenden Befehl Berechtigungen:
MariaDB [(none)]>GRANT ALL PRIVILEGES ON magento_db.* TO 'magento'@'localhost';
Als nächstes führen Sie den Befehl FLUSH PRIVILEGES aus, um die Berechtigungen wieder zu laden:
MariaDB [(none)]>FLUSH PRIVILEGES;
Beenden Sie schließlich die MariaDB-Konsole mit dem folgenden Befehl:
MariaDB [(none)]>\q
4 Magento herunterladen
Zuerst müssen Sie die neueste Version des Magento von der offiziellen Website herunterladen.
Nachdem Sie Magento heruntergeladen haben, extrahieren Sie die heruntergeladene Zip-Datei mit dem folgenden Befehl in das Stammverzeichnis von apache web:
sudo mkdir /var/www/html/magento/ sudo unzip magento2-develop.zip -d /var/www/html/magento
Als nächstes ändern Sie den Besitzer des Magento-Verzeichnisses und geben Sie ihm die entsprechenden Rechte:
sudo chown -R www-data:www-data /var/www/html/magento sudo chmod -R 777 /var/www/html/magento
Als nächstes müssen Sie Composer auf Ihrem System installieren. Composer ist ein Abhängigkeitsmanager, mit dem alle erforderlichen PHP-Abhängigkeiten installiert werden können. Sie können die Composer-Binärdatei mit dem folgenden Befehl herunterladen und installieren:
curl -sS https://getcomposer.org/installer | php sudo mv composer.phar /usr/bin/composer
Als nächstes führen Sie den Befehl composer aus, um alle von Magento benötigten Abhängigkeiten zu installieren:
cd /var/www/html/magento sudo composer install
Sobald alle Abhängigkeiten installiert sind, können Sie mit der Konfiguration des Apache für Magento fortfahren.
5 Apache für Magento konfigurieren
Als nächstes müssen Sie eine virtuelle Apache-Hostdatei für Magento erstellen. Erstellen Sie eine neue Apache-Konfigurationsdatei namens magento.conf mit dem folgenden Befehl:
sudo nano /etc/apache2/sites-available/magento.conf
Füge die folgenden Zeilen hinzu:
<VirtualHost *:8080> ServerAdmin [email protected] DocumentRoot /var/www/html/magento ServerName 192.168.15.189 ServerAlias www.example.com <Directory "/var/www/html/magento/"> Options FollowSymLinks AllowOverride All Order allow,deny allow from all </Directory> ErrorLog /var/log/apache2/magento-error_log CustomLog /var/log/apache2/magento-access_log common </VirtualHost>
Speichern Sie die Datei und aktivieren Sie dann Ihren virtuellen Host mit dem Apache Umschreibmodul mit dem folgenden Befehl:
sudo a2ensite magento sudo a2enmod rewrite
Als nächstes müssen Sie auch den Apache Listening Port von 80 auf 8080 ändern. Denn wir werden den Port 80 für Lacke reservieren. Öffnen Sie dazu die Datei ports.conf:
sudo nano /etc/apache2/ports.conf
Ändern Sie die Datei wie unten gezeigt:
Listen 8080
Starten Sie schließlich den Apache-Dienst neu, um diese Änderungen mit dem folgenden Befehl anzuwenden:
sudo systemctl restart apache2
6 Zugriff auf den Magento Web Installationsassistenten
Magento ist jetzt installiert, jetzt ist es an der Zeit, Magento über den Webbrowser zu installieren.
Öffnen Sie dazu Ihren Webbrowser und geben Sie die URL http://192.168.15.189:8080 ein, Sie sollten die folgende Seite sehen:
Nun, stimmen Sie den Allgemeinen Geschäftsbedingungen zu und klicken Sie dann auf die Schaltfläche „Agree and Setup Magento“, Sie sollten die folgende Seite sehen:
Überprüfen Sie alle Readiness und klicken Sie auf die Schaltfläche „Next“, Sie sollten die folgende Seite sehen:
Geben Sie Ihre Datenbankdetails wie Datenbankname, Datenbankbenutzername und Passwort ein, klicken Sie dann auf die Schaltfläche „Weiter“, Sie sollten die folgende Seite sehen:
Geben Sie Ihre Website-Details an und klicken Sie auf die Schaltfläche „Weiter“, Sie sollten die folgende Seite sehen:
Passen Sie Magento nach Ihren Bedürfnissen an und klicken Sie auf die Schaltfläche „Weiter“, Sie sollten die folgende Seite sehen:
Geben Sie Ihre Admin-Benutzerdaten an und klicken Sie auf die Schaltfläche „Weiter“, Sie sollten die folgende Seite sehen:
Klicken Sie nun auf die Schaltfläche „Jetzt installieren“, um die Magento-Installation zu starten. Nach Abschluss der Installation sollten Sie die folgende Seite sehen:
Hinweis: Merken Sie sich Ihre Magento Admin URL: http://192.168.15.189/admin_wczta4. Dies wird verwendet, um auf Magento admin zuzugreifen.
Klicken Sie nun auf die Schaltfläche „Launch Magento Admin“, Sie sollten die Magento Login-Seite wie unten beschrieben sehen:
Geben Sie Ihre Magento-Administrationsdaten an und klicken Sie auf die Schaltfläche „Anmelden“, Sie sollten das Magent-o Dashboard wie unten beschrieben sehen:
Klicken Sie in Ihrem Magento Admin Dashboard auf die Schaltfläche STORES (links) > Configuration > ADVANCED > System > Full Page Cache, dann Deaktivieren Sie den Systemwert und wählen Sie Varnish Cache aus der Liste der Caching-Anwendungen, speichern Sie die Konfiguration, klicken Sie auf den Link Varnish Configuration und klicken Sie auf die Schaltfläche Export VCL for Varnish 4 (dies exportiert die Datei lacnish.vcl in /var/www/html/magento/var directoy), wie unten gezeigt:
Zum Schluss leeren Sie den Magento-Cache mit dem folgenden Befehl:
cd /var/www/html/magento sudo php bin/magento cache:flush
Wenn Sie fertig sind, können Sie mit der Konfiguration des Lacks fortfahren.
6 Varnish konfigurieren
Magento ist nun installiert und konfiguriert. Es ist an der Zeit, den Varnish zu konfigurieren.
Löschen Sie zunächst die Datei /etc/varnish/default.vcl und erstellen Sie einen Symlink aus der exportierten Varnishkonfiguration:
sudo rm -rf /etc/varnish/default.vcl sudo ln -s /var/www/html/magento/var/varnish.vcl /etc/varnish/default.vcl
Als nächstes müssen Sie eine systemd-Servicedatei für Varnish erstellen. Sie können dies tun, indem Sie die Datei lacnish.service von /lib/systemd/system/system/ nach /etc/systemd/system/ directory kopieren:
sudo cp /lib/systemd/system/varnish.service /etc/systemd/system/
Nach dem Kopieren dieser Datei müssen Sie einige Änderungen in der Datei varnish.service vornehmen:
sudo nano /etc/systemd/system/varnish.service
Nehmen Sie die folgenden Änderungen vor:
[Unit] Description=Varnish HTTP accelerator Documentation=https://www.varnish-cache.org/docs/4.1/ man:varnishd [Service] Type=simple LimitNOFILE=131072 LimitMEMLOCK=82000 ExecStart=/usr/sbin/varnishd -j unix,user=vcache -F -a :80 -T localhost:6082 -f /etc/varnish/default.vcl -S /etc/varnish/secret -s malloc,256m ExecReload=/usr/share/varnish/reload-vcl ProtectSystem=full ProtectHome=true PrivateTmp=true PrivateDevices=true [Install] WantedBy=multi-user.target
Speichern Sie die Datei, wenn Sie fertig sind, und starten Sie den Varnish dienst mit dem folgenden Befehl neu:
sudo systemctl daemon-reload sudo systemctl reload varnish.service
Wenn alles gut funktioniert, dann sollten Sie sich in Ihr Magento-Backend einloggen können, indem Sie die folgende URL in Ihren Webbrowser eingeben:
http://192.168.15.189/admin_wczta4
Sie können auch überprüfen, ob der Varnish aktiviert ist oder nicht, indem Sie den folgenden Befehl ausführen:
curl -I http://192.168.15.189/admin_wczta4
Du solltest sehen, dass Varnish aktiviert ist:
Date: Fri, 07 Jul 2017 17:10:01 GMT Server: Apache/2.4.18 (Ubuntu) Set-Cookie: store=default; expires=Sat, 07-Jul-2018 17:10:03 GMT; Max-Age=31536000; path=/; HttpOnly Set-Cookie: PHPSESSID=irp2k8cmrhct0dfh18qk7ap0i4; expires=Fri, 07-Jul-2017 18:10:04 GMT; Max-Age=3600; path=/; domain=192.168.15.189; HttpOnly Expires: Thu, 07 Jul 2016 17:10:04 GMT Cache-Control: max-age=0, must-revalidate, no-cache, no-store Pragma: no-cache Location: http://192.168.15.189/admin_wczta4/?SID=irp2k8cmrhct0dfh18qk7ap0i4 X-Content-Type-Options: nosniff X-XSS-Protection: 1; mode=block X-Frame-Options: SAMEORIGIN Content-Length: 0 Content-Type: text/html; charset=UTF-8 X-Varnish: 2 Age: 0 Via: 1.1 varnish-v4 Connection: keep-alive
Herzlichen Glückwunsch! Sie haben Magento mit Varnish auf dem Ubuntu 16.04 Server erfolgreich konfiguriert.