Magento ist ein kostenloses Open-Source-Content-Management-System, das auf PHP, Zend-Framework und MySQL-Datenbank basiert. Es ist eine sehr beliebte E-Commerce-Webanwendung, die auf vielen Open-Source-Anwendungen wie Apache, MySQL und vielen mehr läuft. Magento wird mit vielen integrierten Modulen geliefert, die verwendet werden, um weitere Funktionen hinzuzufügen.
Varnish Cache ist ein leistungsstarker Open-Source-Beschleuniger für Webanwendungen, der auch als Caching-HTTP-Reverse-Proxy bekannt ist. Es wird verwendet, um Ihre Website zu beschleunigen, indem eine Kopie einer Webseite beim ersten Besuch eines Benutzers zwischengespeichert wird. Magento und Varnish ist eine bekannte Kombination, um die Leistung der Website erheblich zu steigern. Varnish ist standardmäßig in Magento 2 integriert. Sie müssen nur einige Konfigurationsänderungen vornehmen, damit es funktioniert.
In diesem Tutorial lernen wir, wie man Magento 2 mit Varnish als Ganzseiten-Cache auf einem Ubuntu 16.04-Server installiert.
Anforderungen
- Ein Server mit Ubuntu 16.04.
- Apache, PHP und MariaDB.
- Ein Nicht-Root-Benutzer mit sudo-Berechtigungen, der auf Ihrem Server eingerichtet ist.
1 Erste Schritte
Bevor Sie beginnen, 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.
an2 LAMP-Server installieren
Magento funktioniert nicht ohne die Installation des LAMP-Stacks (Apache, PHP, MariaDB). Installieren Sie zuerst den Apache-Webserver und den Lack, indem Sie den folgenden Befehl ausführen:
sudo apt-get install apache2 varnish -y
Starten Sie nach der Installation von Apache den Apache-Dienst und ermöglichen Sie ihm, beim Booten zu starten, indem Sie den folgenden Befehl ausführen:
sudo systemctl start apache2
sudo systemctl enable apache2
Magento ist in der PHP-Sprache geschrieben, daher müssen Sie auch PHP mit allen Bibliotheken auf Ihrem System installieren. Sie können alle installieren, indem Sie den folgenden Befehl ausführen:
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
Nach der Installation von PHP zusammen mit allen erforderlichen Bibliotheken müssen Sie einige PHP-Standardeinstellungen ä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 Installieren und konfigurieren Sie MariaDB
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
Starten Sie nach der Installation von MariaDB den MariaDB-Dienst und ermöglichen Sie ihm, beim Booten zu starten, 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!
Melden Sie sich als Nächstes mit dem folgenden Befehl bei der MariaDB-Shell an:
mysql -u root -p
Geben Sie Ihr Root-Passwort ein, wenn Sie dazu aufgefordert werden, und erstellen Sie dann mit dem folgenden Befehl eine Datenbank für Magento:
MariaDB [(none)]>CREATE DATABASE magento_db;
Nachdem Sie eine 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 erteilen Sie der Magento-Datenbank mit dem folgenden Befehl Berechtigungen:
MariaDB [(none)]>GRANT ALL PRIVILEGES ON magento_db.* TO 'magento'@'localhost';
Führen Sie als Nächstes den Befehl FLUSH PRIVILEGES aus, um die Berechtigungen neu zu laden:
MariaDB [(none)]>FLUSH PRIVILEGES;
Verlassen Sie schließlich die MariaDB-Konsole mit dem folgenden Befehl:
MariaDB [(none)]>\q
4 Magento herunterladen
Zuerst müssen Sie die neueste Version von Magento von der offiziellen Website herunterladen.
Extrahieren Sie nach dem Herunterladen von Magento die heruntergeladene ZIP-Datei mit dem folgenden Befehl in das Apache-Web-Root-Verzeichnis:
sudo mkdir /var/www/html/magento/
sudo unzip magento2-develop.zip -d /var/www/html/magento
Ändern Sie als Nächstes den Eigentümer des Magento-Verzeichnisses und erteilen Sie ihm die entsprechende Berechtigung:
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, der verwendet wird, um alle erforderlichen PHP-Abhängigkeiten zu installieren. 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 Composer-Befehl 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 von 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 mit dem folgenden Befehl eine neue Apache-Konfigurationsdatei namens magento.conf:
sudo nano /etc/apache2/sites-available/magento.conf
Fügen Sie 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-Rewrite-Modul 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. Weil wir Port 80 für Lack 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 abschließend den Apache-Dienst neu, um diese Änderungen mit dem folgenden Befehl zu übernehmen:
sudo systemctl restart apache2
6 Greifen Sie auf den Magento-Webinstallationsassistenten zu
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:
Stimmen Sie jetzt den Allgemeinen Geschäftsbedingungen zu und klicken Sie dann auf die Schaltfläche "Zustimmen und Magento einrichten". 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 und klicken Sie dann auf die Schaltfläche "Weiter". Sie sollten die folgende Seite sehen:
Geben Sie Ihre Website-Details ein 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 ein 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. Sobald die Installation abgeschlossen ist, 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 den Magento-Admin zuzugreifen.
Klicken Sie nun auf die Schaltfläche „Launch Magento Admin“, Sie sollten die Magento-Anmeldeseite wie folgt sehen:
Geben Sie Ihre Magento-Admin-Anmeldeinformationen ein und klicken Sie auf die Schaltfläche „Anmelden“. Sie sollten das Magent-o-Dashboard wie folgt sehen:
Klicken Sie in Ihrem Magento-Admin-Dashboard auf die Schaltfläche STORES (links)> Konfiguration> ERWEITERT> System> Ganzseiten-Cache , deaktivieren Sie dann Systemwert verwenden und wählen Sie Varnish Cache aus der Caching-Anwendungsliste, speichern Sie die Konfiguration, klicken Sie auf den Link Varnish Configuration und klicken Sie auf die Schaltfläche VCL für Varnish 4 exportieren (dadurch wird die Datei polish.vcl in /var/www /html/magento/var Verzeichnis) wie unten gezeigt:
Leeren Sie schließlich 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 Lack konfigurieren
Magento ist nun installiert und konfiguriert. Es ist Zeit, den Lack zu konfigurieren.
Löschen Sie zuerst die Datei /etc/varnish/default.vcl und erstellen Sie einen Symlink von der exportierten Lackkonfiguration:
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-Dienstdatei für Lack erstellen. Sie können dies tun, indem Sie lack.service von /lib/systemd/system/ in das Verzeichnis /etc/systemd/system/ kopieren:
sudo cp /lib/systemd/system/varnish.service /etc/systemd/system/
Nachdem Sie diese Datei kopiert haben, müssen Sie einige Änderungen in der Datei „firnis.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 dann den Lackdienst mit dem folgenden Befehl neu:
sudo systemctl daemon-reload
sudo systemctl reload varnish.service
Wenn alles gut funktioniert, sollten Sie sich bei Ihrem Magento-Backend anmelden 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 Lack aktiviert ist oder nicht, indem Sie den folgenden Befehl ausführen:
curl -I http://192.168.15.189/admin_wczta4
Sie sollten sehen, dass Lack 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
Herzliche Glückwünsche! Sie haben Magento mit Varnish auf dem Ubuntu 16.04-Server erfolgreich konfiguriert.