Magento je open source obchod (software pro elektronické obchodování) a systém pro správu obsahu pro webové stránky elektronického obchodu založený na PHP Zend Framework. Magento používá konvence objektově orientovaného programování a architektury MVC (Model-View-Controller) a jako databázi používá MySQL/MariaDB. Vyvinutý software byl spuštěn v roce 2008 společností Varien Inc. V posledních letech se Magento stalo důvěryhodnou platformou pro software pro elektronické obchodování, který pohání online podniky po celém světě.
V tomto tutoriálu vás provedu instalací Magento 2.1. Nainstalujeme Magento 2.1 s Nginx a Php7.0-fpm a MySQL jako databázi. Pro tento účel použiji server CentOS 7 s povoleným SELinux.
Krok 1 – Instalace Nginx
V tomto kroku nainstalujeme Nginx z epel-repository. Epel není ve výchozím nastavení k dispozici, takže před instalací Nginx musíme nainstalovat epel-repository.
Nainstalujte epel-repository pomocí tohoto příkazu yum.
yum -y install epel-release
Nyní můžeme nainstalovat Nginx z epel-repository.
yum -y nainstalujte nginx
Po dokončení instalace spusťte Nginx a přidejte jej, aby se spustil při spouštění.
systemctl spustit nginx
systemctl povolit nginx
Nginx je spuštěn na portu 80, můžete to zkontrolovat pomocí příkazu netstat níže.
netstat -plntu
V případě, že uvidíte výsledek 'příkaz nenalezen', můžete si nainstalovat síťové nástroje, jako je tento.
yum -y install net-tools
Krok 2 – Instalace a konfigurace PHP-FPM
V tomto tutoriálu budeme používat PHP-FPM 7 pro instalaci Magento. Budu používat balíčky PHP 7 z úložiště Webtatic.
Stáhněte si a přidejte do systému nové webové úložiště.
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
Nyní spusťte níže uvedený příkaz a nainstalujte PHP-FPM7 se všemi balíčky a rozšířeními potřebnými pro instalaci Magento.
yum -y nainstalujte php70w-fpm php70w-mcrypt php70w-curl php70w-cli php70w-mysql php70w-gd php70w-xsl php70w-json php70w-intl php70w-pear php70w-pear php70php php70w-pear php70phpaping /před>Po dokončení instalace PHP-FPM7 jej musíme nakonfigurovat. Nakonfigurujeme soubor php.ini a konfigurační soubor php-fpm 'www.conf'.
Upravte php.ini pomocí vim.
vim /etc/php.iniOdkomentujte řádek cgi.fix_pathinfo 762 a změňte hodnotu na 0.
cgi.fix_pathinfo=0Nakonfigurujte limit paměti, maximální dobu provádění a povolte výstupní kompresi zlib, ujistěte se, že jste nastavili hodnoty, jak je uvedeno níže.
memory_limit =512 M
max_execution_time =1800
zlib.output_compression =ZapnutoOdkomentujte adresář cesty relace a změňte adresář, jak je uvedeno níže.
session.save_path ="/var/lib/php/session"Uložte a ukončete.
Dále upravte konfigurační soubor php-fpm www.conf pomocí příkazu vim.
vim /etc/php-fpm.d/www.confPHP-FPM7 poběží pod uživatelem a skupinou 'nginx', pro řádky uživatele a skupiny změňte hodnotu na 'nginx'.
user =nginx
skupina =nginxSpustíme php-fpm pod souborem soketu, nikoli pod portem serveru. Změňte hodnotu naslouchacího řádku na cestu k souboru soketu.
listen =/var/run/php/php-fpm.sockSoubor soketu musí vlastnit uživatel a skupina 'nginx', odkomentujte řádky poslechu a změňte hodnoty, jak je uvedeno níže.
listen.owner =nginx
listen.group =nginx
listen.mode =0660Nakonec odkomentujte řádky 366-370 prostředí PHP-FPM.
env[HOSTNAME] =$HOSTNAME
env[PATH] =/usr/local/bin:/usr/bin:/bin
env[TMP] =/tmp
env[ TMPDIR] =/tmp
env[TEMP] =/tmpUložte a ukončete.
Dále vytvořte nový adresář pro cestu relace a umístění souboru sock php. Poté změňte vlastníka na uživatele a skupinu 'nginx'.
Vytvořte nový adresář pro cestu k relaci.
mkdir -p /var/lib/php/session/
chown -R nginx:nginx /var/lib/php/session/Vytvořte nový adresář pro umístění souboru soketu php-fpm.
mkdir -p /run/php/
chown -R nginx:nginx /run/php/Konfigurace PHP-FPM7 je dokončena, spusťte démona nyní a povolte mu spuštění při startu pomocí příkazu systemctl níže.
systemctl spustit php-fpm
systemctl povolit php-fpmPokud se nevyskytnou žádné chyby, můžete pomocí příkazu níže zkontrolovat, zda pod souborem soketu běží php-fpm.
netstat -pl | grep php-fpm.sock
Krok 3 – Instalace serveru MySQL 5.7
Magento 2.1 vyžaduje aktuální verzi MySQL, pro instalaci můžete použít MySQL 5.6 nebo 5.7. V tomto tutoriálu budeme používat MySQL 5.7, který lze nainstalovat z oficiálního úložiště MySQL. Nejprve tedy musíme přidat nové úložiště MySQL.
Stáhněte si a přidejte nové úložiště MySQL pro instalaci MySQL 5.7.
yum localinstall https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpmNyní nainstalujte MySQL 5.7 z úložiště MySQL pomocí příkazu yum níže.
yum install mysql-community-serverPo dokončení instalace spusťte mysql a přidejte jej, aby se spustil při spouštění.
systemctl spustit mysqld
systemctl povolit mysqldMySQL 5.7 byla nainstalována s výchozím heslem root, je uloženo v souboru mysqld.log. Pro zobrazení výchozího hesla pro MySQL 5.7 použijte příkaz grep. Spusťte níže uvedený příkaz.
grep 'temporary' /var/log/mysqld.log
Nyní vidíte aktuální heslo root MySQL, měli byste změnit výchozí heslo.
Připojte se k shellu mysql pomocí root uživatele a výchozího hesla.
mysql -u root -p
VÝCHOZÍ HESLO TYPUZměňte výchozí heslo uživatele root pomocí níže uvedeného dotazu. Zde použiji nové heslo „[email protected]“. Zvolte prosím bezpečné heslo.
ALTER USER 'root'@'localhost' IDENTIFIKOVANÝ BY '[email protected]';
vyprázdnit oprávnění;
Výchozí heslo root MySQL bylo změněno. Dále musíme vytvořit nového uživatele a novou databázi pro instalaci Magenta.
Vytvoříme novou databázi s názvem 'magentodb' a nového uživatele 'magentouser' s heslem '[email protected]'. Poté novému uživateli udělte všechna oprávnění databáze. Spusťte níže dotaz mysql.
vytvořit databázi magentodb;
vytvořit uživatele [chráněno e-mailem] označeného jako '[chráněno e-mailem]';
udělit všechna oprávnění na magentodb.* uživateli [chráněno e-mailem] označenému jako '[chráněn e-mailem]';
vyprázdnit oprávnění;
Instalace a konfigurace MySQL 5.7 je dokončena a databáze pro instalaci Magento byla vytvořena.
Krok 4 Instalace a konfigurace Magento
V tomto kroku začneme instalovat a konfigurovat Magento. Pro webový kořenový adresář použijeme adresář '/var/www/magento2'. Potřebujeme PHP skladatel pro instalaci balíčku Magento.
Nainstalujte PHP Composer
Použijeme Composer pro instalaci závislostí balíčku PHP. Nainstalujte skladatel pomocí příkazu curl níže.
curl -sS https://getcomposer.org/installer | sudo php ---install-dir=/usr/bin --filename=composerPo dokončení instalace můžete zkontrolovat verzi skladatele, jak je uvedeno níže.
skladatel -v
PHP Composer byl nainstalován.
Stáhnout a extrahovat Magento
Přejděte do adresáře '/var/www' a stáhněte si kód Magento pomocí příkazu wget.
cd /var/www/
wget https://github.com/magento/magento2/archive/2.1.zipNainstalujte unzip pomocí yum.
yum -y install unzipExtrahujte kód Magento a přejmenujte adresář na adresář 'magento2'.
unzip 2.1.zip
mv magento2-2.1 magento2Nainstalujte závislosti PHP
Přejděte do adresáře magento2 a nainstalujte všechny závislosti Magento pomocí příkazu skladatel.
cd magento2
instalace skladatele -v
Počkejte na dokončení instalace PHP Dependency.
Konfigurace virtuálního hostitele Magento
Přejděte do adresáře Nginx a vytvořte nový konfigurační soubor virtuálního hostitele s názvem 'magento.conf' v adresáři 'conf.d'.
cd /etc/nginx/
vim conf.d/magento.confNíže vložte konfiguraci virtuálního hostitele.
upstream fastcgi_backend {
server unix:/run/php/php-fpm.sock;
}
server {
listen 80;
název_serveru magento.hakase-labs.com;
nastavit $MAGE_ROOT /var/www/magento2;
nastavit $MAGE_MODE vývojáře;
zahrnout /var/wwwinx.magento2/var/wwwinx. conf.sample;
}Uložte a ukončete.
Nyní otestujte konfiguraci. Když nedojde k žádné chybě, restartujte službu Nginx.
nginx -t
systemctl restart nginx
Nainstalujte Magento 2.1
Přejděte do adresáře magento2 a nainstalujte Magento na příkazový řádek.
cd /var/www/magento2Spusťte níže uvedený příkaz a ujistěte se, že máte správnou konfiguraci. Hodnoty, které je třeba změnit, jsou vysvětleny níže.
bin/magento setup:install --backend-frontname="adminlogin" \
--key="biY8vdWx4w8KV5Q59380Fejy36l6ssUb" \
--db-host="localhost" \
- -db-name="magentodb" \
--db-user="magentouser" \
--db-password="[e-mail chráněný]" \
--language="en_US " \
--currency="USD" \
--timezone="Amerika/New_York" \
--use-rewrites=1 \
--use-secure=0 \
--base-url="http://magento.hakase-labs.com" \
--base-url-secure="https://magento.hakase-labs.com " \
--admin-user=adminuser \
[e-mail chráněný] \
[e-mail chráněný] \
--admin-firstname=admin \
-- admin-lastname=user \
--cleanup-databaseZměnit hodnotu pro:
- --backend-frontname:Přihlašovací stránka správce Magento "adminlogin"
- --key:vygenerování vlastního klíče
- --db-host:Hostitel databáze localhost
- --db-name:název databáze 'magentodb'
- --db-user:uživatel databáze 'magentouser'
- --db-password:heslo databáze '[e-mail chráněný]'
- --base-url:Magento URL
- --admin-user:Váš administrátor
- --admin-password:Vaše heslo správce Magento
- --admin-email:Vaše e-mailová adresa
Pokud v příkazu není žádná chyba, uvidíte výsledky níže.
Magento 2.1 je nainstalováno. Spuštěním příkazu níže změňte oprávnění pro adresář etc a změňte vlastníka adresáře magento2 na uživatele 'nginx'.
chmod 700 /var/www/magento2/app/etc
chown -R nginx:nginx /var/www/magento2
Nakonfigurujte Magento Cron
Tento cronjob je potřeba pro Magento indexer. Vytvořte nový cronjob jako uživatel 'nginx' (protože magento běží pod uživatelem a skupinou nginx).
crontab -u nginx -e
Vložte konfiguraci níže.
* * * * * /usr/bin/php /var/www/magento2/bin/magento cron:run | grep -v "Spouštět úlohy podle plánu">> /var/www/magento2/var/log/magento.cron.log
* * * * * /usr/bin/php /var/www/magento2/update /cron.php> > /var/www/magento2/var/log/update.cron.log
* * * * * /usr/bin/php /var/www/magento2/bin/magento setup:cron :run>> /var/www/magento2/var/log/setup.cron.log
Uložte a ukončete.
Krok 5 – Konfigurace SELinux a Firewallu
V tomto tutoriálu ponecháme SELinux v režimu 'Vynucování'. Spuštěním níže uvedených příkazů zkontrolujte stav SELinux.
stav
SELinux je v režimu 'Vynucování'.
Nainstalujte nástroj pro správu SELinux 'policycoreutils-python' pomocí příkazu yum níže.
yum -y install policycoreutils-python
Přejděte do adresáře '/var/www/'.
cd /var/www/
Spusťte níže uvedené příkazy a změňte kontext zabezpečení pro soubory a adresáře Magento.
spravovat fcontext -a -t httpd_sys_rw_content_t '/var/www/magento2(/.*)?'
spravovat fcontext -a -t httpd_sys_rw_content_t '/var/www/magento2/app/etc(/.* )?'
spravovat fcontext -a -t httpd_sys_rw_content_t '/var/www/magento2/var(/.*)?'
spravovat fcontext -a -t httpd_sys_rw_content_t '/var/www/magento2/pub /media(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/magento2/pub/static(/.*)?'
restorecon -Rv '/var/www /magento2/'
Konfigurace SELinux je hotová. Nyní musíme nakonfigurovat firewall.
Nainstalujte balíček firewalld, pokud jej ještě nemáte na svém serveru.
yum -y install firewalld
Spusťte firewall a přidejte firewalld, aby se spustil při spouštění.
systemctl spustit firewalld
systemctl povolit firewalld
Otevřete porty pro HTTP a HTTPS, abychom mohli přistupovat k Magento URL z webového prohlížeče.
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload
Podívejte se na otevřené porty pro služby pomocí příkazu níže.
firewall-cmd --list-all
HTTP a HTTPS jsou připraveny pro připojení.
Krok 6 – Testování
Otevřete webový prohlížeč a poté procházejte Magento URL. Můj je:
magento.hakase-labs.com
A uvidíte výchozí domovskou stránku Magento.
Dále se přihlaste do administračního panelu otevřením adminlogin URL.
magento.hakase-labs.com/adminlogin
Přihlaste se pomocí svého administrátora a hesla.
Magento administrační panel.
Magento 2.1 bylo úspěšně nainstalováno s Nginx, PHP-FPM7 a MySQL 5.7 na server CentOS 7.