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 admin@example.com
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:

Magento Web Installationsassistent

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:

TOS vereinbaren

Überprüfen Sie alle Readiness und klicken Sie auf die Schaltfläche „Next“, Sie sollten die folgende Seite sehen:

Datenbank-Details

Geben Sie Ihre Datenbankdetails wie Datenbankname, Datenbankbenutzername und Passwort ein, klicken Sie dann auf die Schaltfläche „Weiter“, Sie sollten die folgende Seite sehen:

Website-Details

Geben Sie Ihre Website-Details an und klicken Sie auf die Schaltfläche „Weiter“, Sie sollten die folgende Seite sehen:

Magento-Einstellungen

Passen Sie Magento nach Ihren Bedürfnissen an und klicken Sie auf die Schaltfläche „Weiter“, Sie sollten die folgende Seite sehen:

Admin-Benutzerdaten

Geben Sie Ihre Admin-Benutzerdaten an und klicken Sie auf die Schaltfläche „Weiter“, Sie sollten die folgende Seite sehen:

Jetzt installieren

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:

Installation erfolgreich

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:

Magento Anmeldung

Geben Sie Ihre Magento-Administrationsdaten an und klicken Sie auf die Schaltfläche „Anmelden“, Sie sollten das Magent-o Dashboard wie unten beschrieben sehen:

Magento Dashboard

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:

Magento Store Konfiguration

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.

Das könnte Dich auch interessieren …