Magento je přední platforma elektronického obchodování podnikové třídy postavená na technologii open source spojující výkonné funkce s flexibilitou a uživatelsky přívětivým rozhraním.
Díky funkcím, jako jsou poutavé nákupní zážitky, flexibilní modulární architektura a škálovatelnost a výkon na podnikové úrovni, je Magento platformou, kterou si vybere většina online obchodníků.
V tomto tutoriálu vám ukážeme, jak nainstalovat Magento 2.3 na stroj Ubuntu 18.04. Budeme používat Nginx jako webový server, nejnovější PHP 7.2 a MySQL/MariaDB jako databázový server.
Předpoklady #
Než budete pokračovat v tomto kurzu, ujistěte se, že jste splnili následující předpoklady:
- Mějte název domény odkazující na IP vašeho veřejného serveru. Použijeme
example.com
. - Nginx se nainstaluje na váš server Ubuntu podle těchto pokynů.
- Certifikát SSL nainstalovaný pro vaši doménu k šifrování informací o uživateli. Bezplatný certifikát Let’s Encrypt SSL si můžete nainstalovat podle těchto pokynů.
Abyste mohli přistupovat k úložišti kódu Magento 2, musíte si vygenerovat ověřovací klíče. Pokud nemáte účet Magento Marketplace, můžete si jej vytvořit zde. Po vytvoření účtu si prosím přečtěte tyto pokyny, jak vygenerovat novou sadu ověřovacích klíčů.
Aktualizujte systémové balíčky na nejnovější verze a nainstalujte nástroj pro rozbalení:
sudo apt update && sudo apt upgrade
sudo apt install unzip
Vytváření databáze MySQL #
Pokud máte na svém serveru nainstalovanou MySQL nebo MariaDB, můžete tento krok přeskočit, pokud ne, můžete nainstalovat serverový balíček MySQL 5.7 z výchozích repozitářů Ubuntu zadáním:
sudo apt install mysql-server mysql-client
Pro čerstvé instalace MySQL se doporučuje spustit mysql_secure_installation
příkaz ke zlepšení zabezpečení vašeho serveru MySQL. Přihlaste se do prostředí MySQL pomocí následujícího příkazu:
sudo mysql
Z prostředí MySQL spusťte následující příkaz SQL a vytvořte novou databázi s názvem magento
:
CREATE DATABASE magento;
Dále vytvořte uživatelský účet MySQL s názvem magento
a udělte uživateli potřebná oprávnění spuštěním následujícího příkazu:
GRANT ALL ON magento.* TO 'magento'@'localhost' IDENTIFIED BY 'change-with-strong-password';
Ujistěte se, že jste změnili change-with-strong-password
se silným heslem. Po dokončení ukončete konzolu MySQL zadáním:
EXIT;
Vytváření systémového uživatele #
Vytvořte novou skupinu uživatelů a skupinu, která bude vlastníkem systému souborů Magento, pro jednoduchost pojmenujeme uživatele magento
:
sudo useradd -m -U -r -d /opt/magento magento
Přidejte www-data
uživatele na magento
a změňte /opt/magento
oprávnění k adresáři, aby Nginx mohl přistupovat k instalaci Magento:
sudo usermod -a -G magento www-data
sudo chmod 750 /opt/magento
Instalace a konfigurace PHP #
PHP 7.2, což je výchozí verze PHP v Ubuntu 18.04, je plně podporována a doporučena pro Magento 2.3. Protože budeme používat Nginx jako webový server, nainstalujeme také balíček PHP-FPM.
Spusťte následující příkaz pro instalaci PHP a všech požadovaných modulů PHP:
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
Služba PHP-FPM se automaticky spustí po dokončení procesu instalace, můžete si to ověřit vytištěním stavu služby:
sudo systemctl status php7.2-fpm
Výstup by měl indikovat, že služba fpm je aktivní a běží.
● 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
Nastavte požadované a doporučené možnosti PHP úpravou php.ini
soubor s 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
Dále musíme vytvořit fond FPM pro magento
uživatel.
Otevřete textový editor a vytvořte následující soubor:
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 = /
Restartujte službu PHP-FPM, aby se změny projevily:
systemctl restart php7.2-fpm
Ověřte, zda byl socket PHP úspěšně vytvořen spuštěním následujícího příkazu ls:
ls -al /var/run/php/php7.2-fpm-magento.sock
Výstup by měl vypadat nějak takto:
srw-rw---- 1 magento www-data 0 Dec 12 16:07 /var/run/php/php7.2-fpm-magento.sock=
Instalace aplikace Composer #
Composer je správce závislostí pro PHP a budeme jej používat ke stažení jádra Magento a instalaci všech nezbytných komponent Magento.
Chcete-li nainstalovat skladatel globálně, stáhněte si instalační program Composer s curland přesuňte soubor do /usr/local/bin
adresář:
curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer
Ověřte instalaci vytištěním verze skladatele:
composer --version
Výstup by měl vypadat nějak takto:
Composer version 1.8.0 2018-12-03 10:31:16
Instalace Magento #
Existuje několik způsobů, jak nainstalovat Magento 2. Neinstalujte Magento z úložiště Github, protože tato verze je určena pro vývoj a ne pro produkční instalace.
V době psaní tohoto článku je nejnovější stabilní verze Magenta verze 2.3.0
. V tomto tutoriálu nainstalujeme Magento z jejich repozitářů pomocí skladatele.
Přepněte na uživatelskémagento
zadáním:
sudo su - magento
Spusťte instalaci stažením souborů magento do adresáře /opt/magento/public_html:
composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition /opt/magento/public_html
Budete vyzváni k zadání přístupových klíčů, zkopírování klíčů z účtu Magento Marketplace a jejich uložení do auth.json
souboru, takže později při aktualizaci instalace nemusíte znovu přidávat stejné klíče.
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
Výše uvedený příkaz načte všechny požadované balíčky PHP. Proces může trvat několik minut a pokud bude úspěšný, konec výstupu by měl vypadat následovně:
Writing lock file
Generating autoload files
Jakmile je projekt vytvořen, můžeme spustit instalaci Magento. Magento můžeme nainstalovat buď z příkazové řádky, nebo pomocí webového průvodce nastavením. V tomto tutoriálu nainstalujeme Magento pomocí příkazového řádku.
K instalaci obchodu Magento použijeme následující možnosti:
- Základní a základní zabezpečené adresy URL jsou nastaveny na
https://example.com
, změňte jej pomocí vaší domény. - Administrátor Magento:
John
Doe
jako jméno a příjmení.[email protected]
jako e-mail.john
jako uživatelské jméno aj0hnP4ssvv0rD
jako heslo.
- Název databáze
magento
, uživatelské jménomagento
, heslochange-with-strong-password
a databázový server je na stejném hostiteli jako webový server. en_US
, americká angličtina jako výchozí jazyk.USD
dolary jako výchozí měna.America/Chicago
jako časové pásmo.
Změňte na Magento ~/public_html
adresář:
cd ~/public_html
Spusťte následující příkaz pro spuštění instalace:
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"
Nezapomeňte si změnit heslo (j0hnP4ssvv0rD
) na něco bezpečnějšího. Tento proces může trvat několik minut a po dokončení vám bude předložena zpráva obsahující URI do řídicího panelu správce Magento.
[Progress: 773 / 773]
[SUCCESS]: Magento installation complete.
[SUCCESS]: Magento Admin URI: /admin_13nv5k
Nothing to import.
Vytváření Magento crontab #
Magento používá úlohy cron k plánování úloh, jako je opětovné indexování, upozornění, mapy webu, e-maily a další.
Chcete-li vytvořit Magento crontab, spusťte následující příkaz jako magento
uživatel:
php ~/public_html/bin/magento cron:install
Crontab has been generated and saved
Ověřte, že je crontab nainstalován, zadáním:
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
Konfigurace Nginx #
Nyní byste již měli mít na svém serveru Ubuntu nainstalovaný Nginx s certifikátem SSL, pokud ne, zkontrolujte předpoklady pro tento tutoriál.
Zahrneme výchozí konfiguraci Nginx dodávanou s Magento.
Přepněte na svého uživatele sudo, otevřete textový editor a vytvořte následující soubor:
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;
}
Nezapomeňte nahradit example.com svou doménou Magento a nastavit správnou cestu k souborům certifikátu SSL. Fragmenty použité v této konfiguraci jsou vytvořeny v této příručce. Před restartováním služby Nginx proveďte test, abyste se ujistili, že neexistují žádné syntaktické chyby:
sudo nginx -t
Pokud nejsou žádné chyby, výstup by měl vypadat takto:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Nakonec restartujte službu Nginx zadáním:
sudo systemctl restart nginx
Ověření instalace #
Otevřete prohlížeč, zadejte svou doménu a za předpokladu úspěšné instalace se zobrazí obrazovka podobná následující:
Nyní můžete přejít na Magento Admin URI, přihlásit se jako uživatel admin a začít přizpůsobovat svou novou instalaci Magento.