Magento je bezplatný a otevřený systém pro správu obsahu postavený na PHP, frameworku Zend a databázi MySQL. Je to velmi oblíbená webová aplikace elektronického obchodu, která běží nad mnoha open source aplikacemi, jako je Apache, MySQL a mnoho dalších. Magento přichází se spoustou vestavěných modulů, které se používají k přidání dalších funkcí.
Varnish Cache je výkonný akcelerátor webových aplikací s otevřeným zdrojovým kódem, známý také jako reverzní proxy HTTP pro ukládání do mezipaměti. Používá se k urychlení vašeho webu uložením kopie webové stránky do mezipaměti při první návštěvě uživatele. Magento a lak je známá kombinace, která výrazně zvyšuje výkon webu. Lak je ve výchozím nastavení integrován v Magento 2. Aby to fungovalo, budete muset provést pouze některé změny konfigurace.
V tomto tutoriálu se naučíme, jak nainstalovat Magento 2 s Varnish jako mezipaměť celé stránky na serveru Ubuntu 16.04.
Požadavky
- Server se systémem Ubuntu 16.04.
- Apache, PHP a MariaDB.
- Na vašem serveru je nastaven uživatel bez oprávnění root s právy sudo.
1 Začínáme
Před spuštěním se doporučuje aktualizovat váš systém nejnovějším balíčkem spuštěním následujícího příkazu:
sudo apt-get update -y
sudo apt-get upgrade -y
Jakmile bude váš systém aktuální, restartujte systém a přihlaste se pomocí uživatele sudo.
2 Instalace LAMP Server
Magento nebude fungovat bez instalace LAMP stacku (Apache, PHP, MariaDB). Nejprve nainstalujte webový server Apache a lak spuštěním následujícího příkazu:
sudo apt-get install apache2 varnish -y
Po instalaci Apache spusťte službu Apache a povolte její spuštění při spuštění spuštěním následujícího příkazu:
sudo systemctl start apache2
sudo systemctl enable apache2
Magento je napsáno v jazyce PHP, takže je také potřeba nainstalovat PHP se všemi knihovnami do vašeho systému. Všechny je můžete nainstalovat spuštěním následujícího příkazu:
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
Po instalaci PHP spolu se všemi požadovanými knihovnami budete muset změnit několik výchozích nastavení PHP. Můžete to udělat úpravou souboru php.ini:
sudo nano /etc/php/7.0/cli/php.ini
Změňte následující řádky:
memory_limit = 512 upload_max_filesize = 128M zlib.output_compression = on max_execution_time = 15000
Po dokončení uložte a zavřete soubor.
3 Instalace a konfigurace MariaDB
Magento používá MariaDB jako databázi. Budete jej tedy muset nainstalovat na váš server. Můžete jej nainstalovat pouhým spuštěním následujícího příkazu:
sudo apt-get install mariadb-server -y
Po instalaci MariaDB spusťte službu MariaDB a povolte její spuštění při spouštění spuštěním následujícího příkazu:
sudo systemctl start mysql
sudo systemctl enable mysql
Ve výchozím nastavení není MariaDB zabezpečena, takže ji budete muset zabezpečit. Můžete jej zabezpečit spuštěním následujícího příkazu:
sudo mysql_secure_installation
Odpovězte na všechny otázky, jak je uvedeno níže:
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!
Dále se přihlaste do prostředí MariaDB pomocí následujícího příkazu:
mysql -u root -p
Po zobrazení výzvy zadejte heslo uživatele root a poté vytvořte databázi pro Magento pomocí následujícího příkazu:
MariaDB [(none)]>CREATE DATABASE magento_db;
Po vytvoření databáze pro Magento vytvořte uživatelské jméno a heslo pomocí následujícího příkazu:
MariaDB [(none)]>CREATE USER 'magento'@'localhost' IDENTIFIED BY 'password';
Dále udělte oprávnění databázi Magento pomocí následujícího příkazu:
MariaDB [(none)]>GRANT ALL PRIVILEGES ON magento_db.* TO 'magento'@'localhost';
Dále spusťte příkaz FLUSH PRIVILEGES a znovu načtěte oprávnění:
MariaDB [(none)]>FLUSH PRIVILEGES;
Nakonec ukončete konzolu MariaDB pomocí následujícího příkazu:
MariaDB [(none)]>\q
4 Stáhnout Magento
Nejprve si budete muset stáhnout nejnovější verzi Magenta z jejich oficiálních stránek.
Po stažení Magento rozbalte stažený soubor zip do kořenového adresáře webu Apache pomocí následujícího příkazu:
sudo mkdir /var/www/html/magento/
sudo unzip magento2-develop.zip -d /var/www/html/magento
Dále změňte vlastnictví magento adresáře a udělte mu správná oprávnění:
sudo chown -R www-data:www-data /var/www/html/magento
sudo chmod -R 777 /var/www/html/magento
Dále budete muset nainstalovat Composer do vašeho systému. Composer je správce závislostí, který se používá k instalaci všech požadovaných závislostí PHP. Binární soubor Composer si můžete stáhnout a nainstalovat pomocí následujícího příkazu:
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/bin/composer
Dále spusťte příkaz skladatel a nainstalujte všechny závislosti požadované Magento:
cd /var/www/html/magento
sudo composer install
Jakmile jsou všechny závislosti nainstalovány, můžete pokračovat v konfiguraci Apache pro Magento.
5 Konfigurace Apache pro Magento
Dále budete muset vytvořit soubor virtuálního hostitele Apache pro Magento. Vytvořte nový konfigurační soubor Apache s názvem magento.conf pomocí následujícího příkazu:
sudo nano /etc/apache2/sites-available/magento.conf
Přidejte následující řádky:
<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>
Uložte soubor a poté povolte svého virtuálního hostitele pomocí modulu Apache rewrite následujícím příkazem:
sudo a2ensite magento
sudo a2enmod rewrite
Dále budete také muset změnit naslouchací port Apache z 80 na 8080. Protože port 80 vyhradíme pro lak. Chcete-li tak učinit, otevřete soubor ports.conf:
sudo nano /etc/apache2/ports.conf
Změňte soubor, jak je znázorněno níže:
Listen 8080
Nakonec restartujte službu Apache a použijte tyto změny pomocí následujícího příkazu:
sudo systemctl restart apache2
6 Access Magento Web Installation Wizard
Magento je nyní nainstalováno, nyní je čas nainstalovat Magento prostřednictvím webového prohlížeče.
Chcete-li tak učinit, otevřete webový prohlížeč a zadejte adresu URL http://192.168.15.189:8080, měla by se zobrazit následující stránka:
Nyní odsouhlaste Smluvní podmínky a poté klikněte na tlačítko „Souhlasím a nastavte Magento“, měla by se vám zobrazit následující stránka:
Zkontrolujte všechny připravenosti a klikněte na tlačítko "Další", měla by se zobrazit následující stránka:
Zadejte podrobnosti o databázi, jako je název databáze, uživatelské jméno databáze a heslo, poté klikněte na tlačítko "Další", měla by se zobrazit následující stránka:
Zadejte podrobnosti o své webové stránce a klikněte na tlačítko "Další", měla by se zobrazit následující stránka:
Přizpůsobte si Magento podle svých potřeb a klikněte na tlačítko "Další", měla by se zobrazit následující stránka:
Zadejte své uživatelské údaje správce a klikněte na tlačítko "Další", měla by se zobrazit následující stránka:
Nyní klikněte na tlačítko "Install Now" pro spuštění instalace Magento. Po dokončení instalace byste měli vidět následující stránku:
Poznámka:Pamatujte si svou adresu URL správce Magento:http://192.168.15.189/admin_wczta4. Toto bude použito pro přístup k Magento admin.
Nyní klikněte na tlačítko "Spustit Magento Admin", měla by se zobrazit přihlašovací stránka Magento, jak je uvedeno níže:
Zadejte své přihlašovací údaje správce Magento a klikněte na tlačítko "Přihlásit se", měli byste vidět Magent-o Dashboard, jak je uvedeno níže:
Z ovládacího panelu Magento Admin klikněte na tlačítko OBCHODY (vlevo)> Konfigurace> POKROČILÉ> Systém> Mezipaměť celé stránky , poté Zrušte výběr použít systémovou hodnotu a vyberte Varnish Cache ze seznamu Caching Application, uložte konfiguraci, klikněte na odkaz Varnish Configuration a klikněte na tlačítko Export VCL for Varnish 4 (tím dojde k exportu souboru lak.vcl do /var/www /html/magento/var directoroy), jak je uvedeno níže:
Nakonec vyprázdněte mezipaměť Magento pomocí následujícího příkazu:
cd /var/www/html/magento
sudo php bin/magento cache:flush
Jakmile budete hotovi, můžete pokračovat v konfiguraci laku.
6 Konfigurace laku
Magento je nyní nainstalováno a nakonfigurováno. Je čas nakonfigurovat lak.
Nejprve odstraňte soubor /etc/varnish/default.vcl a vytvořte symbolický odkaz z exportované konfigurace laku:
sudo rm -rf /etc/varnish/default.vcl
sudo ln -s /var/www/html/magento/var/varnish.vcl /etc/varnish/default.vcl
Dále budete muset vytvořit servisní soubor systemd pro lak. Můžete to udělat zkopírováním lak.service z /lib/systemd/system/ do adresáře /etc/systemd/system/:
sudo cp /lib/systemd/system/varnish.service /etc/systemd/system/
Po zkopírování tohoto souboru budete muset provést nějaké změny v souboru lak.service:
sudo nano /etc/systemd/system/varnish.service
Proveďte následující změny:
[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
Po dokončení uložte soubor a restartujte lakovací službu pomocí následujícího příkazu:
sudo systemctl daemon-reload
sudo systemctl reload varnish.service
Pokud vše funguje správně, měli byste být schopni se přihlásit k back-endu Magento zadáním následující adresy URL do webového prohlížeče:
http://192.168.15.189/admin_wczta4
Můžete také zkontrolovat, zda je lak povolen nebo ne, spuštěním následujícího příkazu:
curl -I http://192.168.15.189/admin_wczta4
Měli byste vidět, že lak je povolen:
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
Gratulujeme! úspěšně jste nakonfigurovali Magento s Varnish na serveru Ubuntu 16.04.