Ako nainštalovať Magento eCommerce Suite na Debian 12 s Nginx a Elasticsearch
Na tejto stránke
- Predpoklady
- Krok 1 - Nakonfigurujte bránu firewall
- Krok 2 - Nainštalujte PHP a jeho rozšírenia
- Krok 3 - Nainštalujte Composer
- Krok 4 - Nainštalujte MariaDB
- Krok 5 – Nakonfigurujte MariaDB
- Krok 6 - Nainštalujte Nginx
- Krok 7 – Nainštalujte SSL
- Krok 8 - Nainštalujte Elasticsearch
- Krok 9 - Nainštalujte server Redis
- Krok 10 - Stiahnite si Magento
- Krok 11 - Nainštalujte Magento
- Krok 12 – Nakonfigurujte PHP-FPM
- Krok 13 - Nakonfigurujte Nginx
- Krok 14 - Zakážte dvojfaktorové overenie
- Krok 15 – Prístup k Administračnému portálu
- Krok 16 – Povoľte a nakonfigurujte dvojfaktorové overenie
- Záver
Magento je open-source platforma elektronického obchodu napísaná v PHP. Spoločnosť Adobe ju získala v roku 2018. Ponúka sa aj ako komerčný a cloudový produkt. Magento môžete použiť na vytváranie vysokokapacitných profesionálnych nákupných webových stránok. Ponúka oboje – režim jednej predajne aj viac predajní. Dodáva sa s množstvom modulov na rozšírenie jeho funkčnosti.
V tomto návode nainštalujeme edíciu komunity Magento s otvoreným zdrojovým kódom. Ponúka všetky funkcie, ktoré potrebujete na zriadenie profesionálneho internetového obchodu. Nainštalujeme tiež Elasticsearch na vyhľadávanie v katalógu produktov, Redis pre reláciu a vyrovnávaciu pamäť súborov a budeme ho podávať pomocou servera Nginx.
Predpoklady
Server so systémom Debian 12 s minimálne 2 GB RAM. V závislosti od vašich požiadaviek možno budete potrebovať viac pamäte RAM.
Používateľ bez oprávnenia root s oprávneniami sudo.
Plne kvalifikovaný názov domény (FQDN) pre server, magento.example.com
Uistite sa, že je všetko aktualizované.
$ sudo apt update
$ sudo apt upgrade
Niekoľko balíkov, ktoré váš systém potrebuje.
$ sudo apt install wget curl nano ufw software-properties-common dirmngr apt-transport-https gnupg2 ca-certificates lsb-release debian-archive-keyring unzip -y
Niektoré z týchto balíkov už môžu byť vo vašom systéme nainštalované.
Krok 1 - Nakonfigurujte bránu firewall
Prvým krokom je konfigurácia brány firewall. Debian sa štandardne dodáva s ufw (Uncomplicated Firewall).
Skontrolujte, či je spustený firewall.
$ sudo ufw status
Mali by ste vidieť niečo ako nasledovné.
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Povoliť aj porty HTTP a HTTPS.
$ sudo ufw allow http
$ sudo ufw allow https
Znova skontrolujte stav brány firewall.
$ sudo ufw status
Mali by ste vidieť podobný výstup.
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
80/tcp ALLOW Anywhere
443 ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
80/tcp (v6) ALLOW Anywhere (v6)
443 (v6) ALLOW Anywhere (v6)
Krok 2 - Nainštalujte PHP a jeho rozšírenia
Debian 12 sa štandardne dodáva s verziou PHP 8.2. Môžete ho nainštalovať a rozšírenia požadované Magentom spustením nasledujúceho príkazu.
$ sudo apt install php-fpm php-cli php-mysql php-mbstring php-xml php-gd php-bcmath php-zip php-curl php-tidy php-intl php-soap php-xsl libsodium-dev libsodium23 libssl-dev libcurl4-openssl-dev
Ak chcete vždy zostať na najnovšej verzii PHP alebo ak chcete nainštalovať viacero verzií PHP, pridajte Ondrejov repozitár PHP.
Najprv importujte repo PHP GPG kľúč Sury.
$ sudo curl -sSLo /usr/share/keyrings/deb.sury.org-php.gpg https://packages.sury.org/php/apt.gpg
Pridajte repozitár PHP Ondreja Suryho.
$ sudo sh -c 'echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
Aktualizujte zoznam systémového úložiska.
$ sudo apt update
Ďalej nainštalujte PHP a jeho rozšírenia požadované Magentom.
$ sudo apt install php8.2-fpm php8.2-mysql php8.2-bcmath php8.2-xml php8.2-zip php8.2-curl php8.2-mbstring php8.2-gd php8.2-tidy php8.2-intl php8.2-cli php8.2-soap php8.2-xsl libsodium-dev libsodium23 libssl-dev libcurl4-openssl-dev
Overte inštaláciu.
$ php --version
PHP 8.2.8 (cli) (built: Jul 16 2023 11:00:43) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.2.8, Copyright (c) Zend Technologies
with Zend OPcache v8.2.8, Copyright (c), by Zend Technologies
Krok 3 - Nainštalujte Composer
Composer je nástroj na správu závislostí pre PHP a je potrebný pre inštaláciu Magento.
Spustite nasledujúce príkazy na stiahnutie binárneho súboru Composer. Magento vyžaduje Composer 2.2 LTS, preto sme príkaz zodpovedajúcim spôsobom upravili.
$ php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
$ php composer-setup.php --2.2
$ php -r "unlink('composer-setup.php');"
Nainštalujte Composer presunutím binárneho súboru do adresára /usr/local/bin
.
$ sudo mv composer.phar /usr/local/bin/composer
Overte inštaláciu kontrolou jej verzie.
$ composer --version
Composer version 2.2.21 2023-02-15 13:07:40
Krok 4 - Nainštalujte MariaDB
Debian 12 sa štandardne nedodáva s MySQL a zatiaľ preň nevydali oficiálny balík. Preto na to budeme používať MariaDB. MariaDB nemá oficiálny balík aj pre Debian 12, ale Debian sa s ním dodáva. Preto ho nainštalujte pomocou nasledujúceho príkazu.
$ sudo apt install mariadb-server
Skontrolujte verziu MySQL.
$ mysql --version
mysql Ver 15.1 Distrib 10.11.3-MariaDB, for debian-linux-gnu (x86_64) using EditLine wrapper
Teraz túto verziu MariaDB Magento nepodporuje a oficiálny balík MariaDB pre Debian 12 momentálne nie je k dispozícii. Takže budeme pokračovať v inštalácii a neskôr použijeme riešenie na obídenie obmedzenia.
Spustite skript zabezpečenej inštalácie MariaDB.
$ sudo mysql_secure_installation
Budete požiadaní o heslo používateľa root. Stlačte Enter, pretože sme preň nenastavili žiadne heslo.
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
haven't set the root password yet, you should just press enter here.
Enter current password for root (enter for none):
Ďalej sa vás spýta, či chcete prejsť na metódu autentifikácie soketu Unix. Doplnok unix_socket
vám umožňuje použiť prihlasovacie údaje operačného systému na pripojenie k serveru MariaDB. Keďže už máte chránený účet root, pokračujte zadaním n
.
OK, successfully used password, moving on...
Setting the root password or using the unix_socket ensures that nobody
can log into the MariaDB root user without the proper authorisation.
You already have your root account protected, so you can safely answer 'n'.
Switch to unix_socket authentication [Y/n] n
Ďalej sa vás spýta, či chcete zmeniť svoje root heslo. V Debiane 12 je heslo root úzko prepojené s automatickou údržbou systému, takže by sa malo nechať tak. Ak chcete pokračovať, zadajte n
.
... skipping.
You already have your root account protected, so you can safely answer 'n'.
Change the root password? [Y/n] n
Ďalej sa vám spýtajú určité otázky na zlepšenie zabezpečenia MariaDB. Ak chcete odstrániť anonymných používateľov, zakázať vzdialené prihlásenia root, odstrániť testovaciu databázu a znova načítať tabuľky privilégií, zadajte Y.
... 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!
Do prostredia MariaDB môžete vstúpiť zadaním sudo mysql
alebo sudo mariadb
na príkazovom riadku.
Krok 5 – Nakonfigurujte MariaDB
Prihláste sa do prostredia MariaDB.
$ sudo mysql
Vytvorte databázu pre Magento.
mysql> CREATE DATABASE magento;
Vytvorte si používateľské konto SQL.
mysql> CREATE USER 'magentouser'@'localhost' IDENTIFIED BY 'Your_password2';
Udeľte používateľovi všetky privilégiá k databáze.
mysql> GRANT ALL PRIVILEGES ON magento.* TO 'magentouser'@'localhost';
Keďže nemodifikujeme užívateľa root, mali by ste vytvoriť ďalšieho užívateľa SQL na vykonávanie administratívnych úloh, ktoré využívajú autentifikáciu heslom. Pre toto si zvoľte silné heslo.
MariaDB> GRANT ALL ON *.* TO 'navjot'@'localhost' IDENTIFIED BY 'Yourpassword32!' WITH GRANT OPTION;
Vyprázdniť používateľské práva.
mysql> FLUSH PRIVILEGES;
Opustite škrupinu.
mysql> exit
Krok 6 - Nainštalujte Nginx
Debian 12 sa dodáva so staršou verziou Nginx. Ak chcete nainštalovať najnovšiu verziu, musíte si stiahnuť oficiálne úložisko Nginx.
Importujte podpisový kľúč Nginx.
$ curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
| sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
Pridajte úložisko pre stabilnú verziu Nginx.
$ echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \
http://nginx.org/packages/debian `lsb_release -cs` nginx" \
| sudo tee /etc/apt/sources.list.d/nginx.list
Aktualizujte systémové úložiská.
$ sudo apt update
Nainštalujte Nginx.
$ sudo apt install nginx
Overte inštaláciu. Na systémoch Debian bude nasledujúci príkaz fungovať iba s sudo
.
$ sudo nginx -v
nginx version: nginx/1.24.0
Spustite server Nginx.
$ sudo systemctl start nginx
Skontrolujte stav služby.
? nginx.service - nginx - high performance web server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; preset: enabled)
Active: active (running) since Wed 2023-08-02 06:45:52 UTC; 14s ago
Docs: https://nginx.org/en/docs/
Process: 18326 ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf (code=exited, status=0/SUCCESS)
Main PID: 18327 (nginx)
Tasks: 2 (limit: 2315)
Memory: 1.8M
CPU: 11ms
CGroup: /system.slice/nginx.service
??18327 "nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf"
??18328 "nginx: worker process"
Krok 7 – Nainštalujte SSL
Na vygenerovanie certifikátu SSL musíme nainštalovať Certbot. Certbot môžete nainštalovať pomocou úložiska Debianu alebo získať najnovšiu verziu pomocou nástroja Snapd. Budeme používať verziu Snapd.
Debian 12 sa nedodáva s nainštalovaným Snapd. Nainštalujte balík Snapd.
$ sudo apt install snapd
Spustite nasledujúce príkazy, aby ste sa uistili, že vaša verzia Snapd je aktuálna.
$ sudo snap install core && sudo snap refresh core
Nainštalujte Certbot.
$ sudo snap install --classic certbot
Pomocou nasledujúceho príkazu zaistite spustenie príkazu Certbot vytvorením symbolického odkazu na adresár /usr/bin
.
$ sudo ln -s /snap/bin/certbot /usr/bin/certbot
Overte, či Certbot funguje správne.
$ certbot --version
certbot 2.6.0
Spustite nasledujúci príkaz na vygenerovanie certifikátu SSL.
$ sudo certbot certonly --nginx --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email -d magento.example.com
Vyššie uvedený príkaz stiahne certifikát do adresára /etc/letsencrypt/live/magento.example.com
na vašom serveri.
Vygenerujte certifikát Diffie-Hellman group.
$ sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096
Skontrolujte službu plánovača obnovy Certbot.
$ sudo systemctl list-timers
Ako jednu zo služieb naplánovaných na spustenie nájdete snap.certbot.renew.service
.
NEXT LEFT LAST PASSED UNIT ACTIVATES
.....
Wed 2023-08-02 08:09:00 UTC 9h left Wed 2023-08-02 07:39:06 UTC 2h 59min ago snap.certbot.renew.timer snap.certbot.renew.service
Thu 2023-08-03 06:41:11 UTC 9h left Wed 2023-08-02 06:24:33 UTC 10h ago apt-daily-upgrade.timer apt-daily-upgrade.service
Wed 2023-08-02 14:06:00 UTC 11h left Sun 2021-11-14 02:03:02 UTC 5min ago apt-daily.timer apt-daily.service
Vykonajte suchý chod procesu a skontrolujte, či obnovenie SSL funguje správne.
$ sudo certbot renew --dry-run
Ak nevidíte žiadne chyby, všetko je nastavené. Váš certifikát sa automaticky obnoví.
Krok 8 - Nainštalujte Elasticsearch
Elasticsearch používa Magento na vyhľadávanie produktov. Elasticsearch 7.x nainštalujeme pomocou jeho oficiálneho úložiska, pretože je to verzia, ktorá je kompatibilná s Magento.
Importujte kľúč GPG spoločnosti Elasticsearch.
$ wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elasticsearch-keyring.gpg
Pridajte úložisko Elasticsearch.
$ echo "deb [signed-by=/usr/share/keyrings/elasticsearch-keyring.gpg] https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-7.x.list
Aktualizujte zoznam úložísk systému.
$ sudo apt update
Nainštalujte Elasticsearch.
$ sudo apt install elasticsearch
Elasticsearch využíva veľa pamäte. Jeho používanie musíte obmedziť v závislosti od veľkosti vášho servera. Vytvorte súbor /etc/elasticsearch/jvm.options.d/memory.options
a otvorte ho na úpravu.
$ sudo nano /etc/elasticsearch/jvm.options.d/memory.options
Vložte do nej nasledujúci kód. Upravte hodnoty podľa veľkosti vášho servera. Prvá hodnota sa vzťahuje na počiatočnú pamäť a druhá na maximálnu dostupnú pamäť. Pre 1 GB a viac použite formát -Xms1g
.
-Xms512m
-Xmx784m
Uložte súbor stlačením Ctrl + X a po zobrazení výzvy zadajte Y. Toto nakonfiguruje Elasticsearch tak, aby používal 1 GB RAM. Podľa potreby môžete použiť ľubovoľnú hodnotu.
Spustite a povoľte službu.
$ sudo systemctl enable elasticsearch --now
Skontrolujte, či funguje Elasticsearch.
$ curl http://localhost:9200
Mali by ste vidieť nasledujúci výstup.
{
"name" : "magento",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "LNFRevgvQIOGeWCdtvc7bA",
"version" : {
"number" : "7.17.12",
"build_flavor" : "default",
"build_type" : "deb",
"build_hash" : "e3b0c3d3c5c130e1dc6d567d6baef1c73eeb2059",
"build_date" : "2023-07-20T05:33:33.690180787Z",
"build_snapshot" : false,
"lucene_version" : "8.11.1",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
Krok 9 - Nainštalujte server Redis
Magento používa Redis na ukladanie relácií a vyrovnávacej pamäte. Je to úplne voliteľné a databázu môžete použiť na ukladanie relácií. Ale Redis odvádza lepšiu prácu. Najnovšia verzia Magento funguje s Redis 7.0. Debian sa dodáva s Redis 6.0, takže na inštaláciu použijeme úložisko Redis.
Importujte oficiálny kľúč Redis GPG.
$ curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg
Pridajte archív APT do svojho zoznamu zdrojov.
$ echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list
Aktualizujte zoznam systémového úložiska.
$ sudo apt update
Ak chcete nainštalovať server Redis, zadajte nasledujúci príkaz.
$ sudo apt install redis
Potvrďte verziu Redis.
$ redis-server -v
Redis server v=7.0.12 sha=00000000:0 malloc=jemalloc-5.2.1 bits=64 build=d706905cc5f560c1
Overíme pripojenie služby pomocou nasledujúceho príkazu.
$ redis-cli
Prepnete sa do prostredia Redis.
Prvým krokom je nastavenie hesla pre predvoleného používateľa Redis. Nahraďte Your_Redis_Password
silným heslom podľa vlastného výberu. Uistite sa, že pred heslom je znak >
.
127.0.0.1:6379> acl setuser default >Your_Redis_Password
Otestujte overenie Redis.
127.0.0.1:6379> AUTH Your_Redis_Password
OK
Pingujte službu.
127.0.0.1:6379> ping
PONG
Ukončite službu zadaním exit
.
Krok 10 - Stiahnite si Magento
Vytvorte koreňový webový adresár pre Magento.
$ sudo mkdir /var/www/magento -p
Udeľte práva na Magento adresár aktuálnemu užívateľovi.
$ sudo chown $USER:$USER /var/www/magento/ -R
Predtým, ako sa posunieme ďalej, potrebujete autentifikačné kľúče vyžadované úložiskom Magento. Navštívte webovú lokalitu https://account.magento.com/
a zobrazí sa nasledujúca stránka s výzvou na prihlásenie pomocou svojho Adobe ID.
Kliknutím na tlačidlo Prihlásiť sa pomocou Adobe ID prejdete na nasledujúcu stránku.
Ak máte Adobe ID, zadajte svoje poverenia a pokračujte alebo si tu vytvorte účet. Po vytvorení účtu a prihlásení otvorte adresu URL https://marketplace.magento.com/customer/accessKeys/
. Na túto stránku sa dostanete aj tak, že navštívite svoj profil a kliknete na odkaz Prístupové kľúče.
Kliknutím na tlačidlo Vytvoriť nový prístupový kľúč vytvorte svoj overovací kľúč. Zadajte meno kľúča na identifikáciu.
Poznamenajte si verejný aj súkromný kľúč pre ďalší krok.
Vytvorte súbor ~/.config/composer/auth.json
a otvorte ho na úpravy.
$ nano ~/.config/composer/auth.json
Vložte do nej nasledujúci kód. Pre meno používateľa použite verejný kľúč a pre heslo súkromný kľúč.
{
"http-basic": {
"repo.magento.com": {
"username": "<public_key>",
"password": "<private_key>"
}
}
}
Uložte súbor stlačením Ctrl + X a po zobrazení výzvy zadajte Y.
Prepnite sa do adresára /var/www/magento
.
$ cd /var/www/magento
Vytvorte projekt Magento. Všimnite si bodku
na konci príkazu. Odkazuje na aktuálny adresár, v ktorom je príkaz spustený.
$ composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition .
Mali by ste vidieť podobný výstup.
Creating a "magento/project-community-edition" project at "./"
Installing magento/project-community-edition (2.4.6-p1)
- Downloading magento/project-community-edition (2.4.6-p1)
- Installing magento/project-community-edition (2.4.6-p1): Extracting archive
Created project in /var/www/magento/.
Loading composer repositories with package information
Info from https://repo.packagist.org: #StandWithUkraine
Updating dependencies
Lock file operations: 565 installs, 0 updates, 0 removals
- Locking 2tvenom/cborencode (1.0.2)
- Locking adobe-commerce/adobe-ims-metapackage (2.2.0)
- Locking allure-framework/allure-codeception (v2.3.0)
- Locking allure-framework/allure-php-commons (v2.3.1)
- Locking allure-framework/allure-phpunit (v2.1.0)
...............................................
Vyskytol sa problém so vzorovým konfiguračným súborom Nginx poskytnutým spoločnosťou Adobe. Spustite nasledujúci príkaz a opravte to.
$ sed -i 's/php-fpm:9000/fastcgi_backend/g' /var/www/magento/nginx.conf.sample
Spustite nasledujúce príkazy, aby ste nastavili povolenia súboru a spravili spustiteľný binárny súbor Magento. Tiež nastavte vlastníka adresára Magento na používateľa Nginx, aby mal prístup na webovú stránku.
$ sudo find var generated vendor pub/static pub/media app/etc -type f -exec chmod g+w {} +
$ sudo find var generated vendor pub/static pub/media app/etc -type d -exec chmod g+ws {} +
$ sudo chown -R :nginx .
$ sudo chmod u+x bin/magento
Krok 11 - Nainštalujte Magento
Pred pokračovaním v inštalácii musíme upraviť inštalačný program, aby nám umožnil používať MariaDB 10.11.3, ktorú Magento momentálne nepodporuje. Magento zatiaľ podporuje verzie MariaDB 10.2-10.6.
Otvorte súbor /var/www/magento/app/etc/di.xml
na úpravu.
$ sudo nano /var/www/magento/app/etc/di.xml
Vyhľadajte nasledujúci riadok.
<item name="MariaDB-(10.2-10.6)" xsi:type="string">^10\.[2-6]\.</item>
Nahraďte ho nasledujúcim kódom.
<item name="MariaDB-(10.2-10.11)" xsi:type="string">^10\.([2-9]|10|11)\.</item>
Uložte súbor stlačením Ctrl + X a po zobrazení výzvy zadajte Y.
Uistite sa, že ste v adresári Magento.
$ cd /var/www/magento
Spustite nasledujúci príkaz a nainštalujte Magento.
$ bin/magento setup:install \
--base-url=http://magento.example.com \
--use-secure=1 \
--base-url-secure=https://magento.example.com \
--use-secure-admin=1 \
--db-host=localhost \
--db-name=magento \
--db-user=magentouser \
--db-password=Your_password2 \
--admin-firstname=Navjot \
--admin-lastname=Singh \
[email \
--admin-user=navjot \
--admin-password=admin_password \
--language=en_US \
--currency=USD \
--timezone=America/Chicago \
--use-rewrites=1 \
--elasticsearch-host=http://127.0.0.1 \
--elasticsearch-port=9200 \
--session-save=redis \
--session-save-redis-db=0 \
--session-save-redis-password=redis_password \
--cache-backend=redis \
--cache-backend-redis-db=2 \
--cache-backend-redis-password=redis_password \
--page-cache=redis \
--page-cache-redis-db=4 \
--page-cache-redis-password=redis_password
Po dokončení procesu získate podobný výstup.
.......
[SUCCESS]: Magento installation complete.
[SUCCESS]: Magento Admin URI: /admin_11xb2x
Nothing to import.
Poznačte si identifikátor URI správcu, ktorý budete neskôr potrebovať na prístup k panelu správy.
Vytvárajte úlohy cronu Magento.
$ php bin/magento cron:install
Overte úlohu cron.
$ crontab -l
Mali by ste vidieť nasledujúci výstup.
#~ MAGENTO START d1957f62aa710cc367525c9ec68dd7456d4311756b5aa37d2143c4a98b25318c
* * * * * /usr/bin/php8.2 /var/www/magento/bin/magento cron:run 2>&1 | grep -v "Ran jobs by schedule" >> /var/www/magento/var/log/magento.cron.log
#~ MAGENTO END d1957f62aa710cc367525c9ec68dd7456d4311756b5aa37d2143c4a98b25318c
Krok 12 – Nakonfigurujte PHP-FPM
Otvorte súbor /etc/php/8.2/fpm/pool.d/www.conf
.
$ sudo nano /etc/php/8.2/fpm/pool.d/www.conf
Musíme nastaviť unixového užívateľa/skupinu PHP procesov na nginx. Nájdite v súbore riadky user=www-data
a group=www-data
a zmeňte ich na nginx
.
...
; Unix user/group of the child processes. This can be used only if the master
; process running user is root. It is set after the child process is created.
; The user and group can be specified either by their name or by their numeric
; IDs.
; Note: If the user is root, the executable needs to be started with
; --allow-to-run-as-root option to work.
; Default Values: The user is set to master process running user by default.
; If the group is not set, the user's group is used.
user = nginx
group = nginx
...
Nájdite v súbore riadky listen.owner=www-data
a listen.group=www-data
a zmeňte ich na nginx
.
; Set permissions for unix socket, if one is used. In Linux, read/write
; permissions must be set in order to allow connections from a web server. Many
; BSD-derived systems allow connections regardless of permissions. The owner
; and group can be specified either by name or by their numeric IDs.
; Default Values: user and group are set as the running user
; mode is set to 0660
listen.owner = nginx
listen.group = nginx
Uložte súbor stlačením Ctrl + X a po zobrazení výzvy zadajte Y.
Zvýšte čas vykonania pre PHP-FPM a PHP-CLI na 180 sekúnd.
$ sudo sed -i 's/max_execution_time = 30/max_execution_time = 180/' /etc/php/8.2/fpm/php.ini
$ sudo sed -i 's/max_execution_time = 30/max_execution_time = 180/' /etc/php/8.2/cli/php.ini
Zvýšte limit pamäte pre PHP-FPM z 128 MB na 256 MB. Limit môžete zvýšiť v závislosti od veľkosti vášho servera a požiadaviek.
$ sudo sed -i 's/memory_limit = 128M/memory_limit = 256M/' /etc/php/8.2/fpm/php.ini
Magento predvolene nastavuje limit veľkosti súboru pre knižnicu médií na 2 MB. Spustite nasledujúce príkazy na zvýšenie limitu veľkosti súboru na 25 MB.
$ sudo sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 25M/g' /etc/php/8.2/fpm/php.ini
$ sudo sed -i 's/post_max_size = 8M/post_max_size = 25M/g' /etc/php/8.2/fpm/php.ini
Zapnite kompresiu Zlib.
$ sudo sed -i 's/zlib.output_compression = Off/zlib.output_compression = On/g' /etc/php/8.2/fpm/php.ini
Reštartujte službu PHP-FPM.
$ sudo systemctl restart php8.2-fpm
Zmeňte skupinu adresára PHP sessions na Nginx.
$ sudo chgrp -R nginx /var/lib/php/sessions
Krok 13 - Nakonfigurujte Nginx
Otvorte súbor /etc/nginx/nginx.conf
na úpravu.
$ sudo nano /etc/nginx/nginx.conf
Pridajte nasledujúci riadok pred riadok include /etc/nginx/conf.d/*.conf;
.
server_names_hash_bucket_size 64;
Uložte súbor stlačením Ctrl + X a po zobrazení výzvy zadajte Y.
Vytvorte a otvorte súbor /etc/nginx/conf.d/magento.conf
na úpravu.
$ sudo nano /etc/nginx/conf.d/magento.conf
Vložte do nej nasledujúci kód.
upstream fastcgi_backend {
server unix:/run/php/php8.2-fpm.sock;
}
server {
# Redirect any http requests to https
listen 80;
listen [::]:80;
server_name magento.example.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name magento.example.com;
set $MAGE_ROOT /var/www/magento;
include /var/www/magento/nginx.conf.sample;
client_max_body_size 25m;
access_log /var/log/nginx/magento.access.log;
error_log /var/log/nginx/magento.error.log;
# TLS configuration
ssl_certificate /etc/letsencrypt/live/magento.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/magento.example.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/magento.example.com/chain.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384';
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:50m;
ssl_session_timeout 1d;
# OCSP Stapling ---
# fetch OCSP records from URL in ssl_certificate and cache them
ssl_stapling on;
ssl_stapling_verify on;
ssl_dhparam /etc/ssl/certs/dhparam.pem;
}
Uložte súbor stlačením Ctrl + X a po zobrazení výzvy zadajte Y.
Magento prichádza s konfiguračnou šablónou Nginx na adrese /var/www/magento/nginx.conf.sample
, ktorú sme zahrnuli do našej konfigurácie. Premenná $MAGE_ROOT
ukazuje na webový koreňový adresár Magento, ktorý sme nastavili v našom súbore a ktorý sa používa vo vzorovom konfiguračnom súbore.
Overte syntax konfiguračného súboru Nginx.
$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Reštartujte službu Nginx.
$ sudo systemctl restart nginx
Otvorte webovú stránku Magento prostredníctvom adresy URL https://magento.example.com
. Mali by ste vidieť nasledujúcu stránku.
Ak sa vám nenačítajú CSS a JS, spustite nasledujúce príkazy.
$ cd /var/www/magento
$ php bin/magento setup:static-content:deploy -f
$ php bin/magento indexer:reindex
Krok 14 - Zakážte dvojfaktorové overenie
Pred prístupom k administračnému panelu musíme vypnúť dvojfaktorové overenie, ktoré je štandardne povolené. Magento sa pokúša odosielať poštu cez sendmail
, aby sa umožnilo dvojfaktorové overenie počas inštalácie, ale keďže sme to nenakonfigurovali, jediný spôsob, ako získať prístup k dashboardu, je najskôr túto funkciu zakázať.
Ak máte na serveri nakonfigurovaný sendmail
na odosielanie e-mailov, môžete tento krok preskočiť. Ak chcete zakázať dvojfaktorovú autentifikáciu, musíme vypnúť dva moduly Magento pomocou nasledujúcich príkazov.
$ php /var/www/magento/bin/magento module:disable Magento_AdminAdobeImsTwoFactorAuth
$ php /var/www/magento/bin/magento module:disable Magento_TwoFactorAuth
Spustite nasledujúci príkaz na vytvorenie tried.
$ php /var/www/magento/bin/magento setup:di:compile
Vyčistite aj vyrovnávaciu pamäť.
$ php /var/www/magento/bin/magento c:c
Krok 15 – Vstúpte do Administračného portálu
Budete musieť otvoriť administračný portál pomocou URI, ktoré vám dal inštalačný skript Magento. Ak ste si ho nejako zabudli poznačiť alebo ste ho stratili, môžete identifikátor URI znova získať pomocou nasledujúceho príkazu.
$ php /var/www/magento/bin/magento info:adminuri
Admin URI: /admin_11xb2x
Otvorte URL https://magento.example.com/admin_11xb2x
vo svojom prehliadači a dostanete nasledujúcu obrazovku.
Zadajte poverenia správcu poskytnuté počas inštalácie a pokračujte kliknutím na tlačidlo Prihlásiť sa. Uvíta vás nasledujúca obrazovka.
Zobrazí sa kontextové okno so žiadosťou o povolenie, aby spoločnosť Adobe zhromažďovala údaje o používaní. Pokračujte kliknutím na tlačidlo Nepovoliť.
Ďalším krokom je konfigurácia SMTP pre e-maily, aby sme mohli znova povoliť dvojfaktorové overenie. Navštívte ponuku Obchody >> Konfigurácia.
Na ľavej strane rozbaľte Ponuku Rozšírené a kliknutím na možnosť Systémy otvorte stránku nastavení e-mailu.
Zrušte začiarknutie políčka Použiť systémovú hodnotu pred možnosťami Transport, Host a Port. Kliknite na rozbaľovaciu ponuku Transport a vyberte z nej SMTP. Pre náš tutoriál používame ako poštovú schránku Amazon SES.
Zadajte svojho hostiteľa SMTP, 587 ako port, používateľské meno a heslo, nastavte Auth na LOGIN a nastavte SSL na TLS silný> v daných poliach. Po dokončení kliknite na tlačidlo Uložiť konfiguráciu. Teraz, keď sme nakonfigurovali nastavenia e-mailu, ďalším krokom je konfigurácia e-mailových ID obchodu, aby sme ich mohli otestovať.
Posuňte zobrazenie nahor a rozbaľte ponuku Všeobecné na tej istej stránke a vyberte možnosť Uložiť e-mailové adresy.
Zrušte začiarknutie predvolených polí E-mail odosielateľa a zadajte e-mailové ID vášho obchodu. Po dokončení kliknite na tlačidlo Uložiť konfiguráciu. Podobne otvorte obrazovku Kontakty, vykonajte rovnaké zmeny a kliknutím na tlačidlo Uložiť konfiguráciu ich dokončite.
Zmena možností správcu môže ovplyvniť vyrovnávaciu pamäť a zobrazí sa upozornenie. Spustite nasledujúci príkaz na manuálne vymazanie vyrovnávacej pamäte.
$ php /var/www/magento/bin/magento c:c
Ak chcete otestovať e-maily, navštívte stránku obchodu a otvorte stránku Kontaktujte nás
. Na prístup k nemu môžete priamo použiť adresu URL https://magento.example.com/contact/
. Pošlite testovaciu správu a kliknite na tlačidlo Odoslať. Mali by ste dostať podobný mail.
Krok 16 – Povoľte a nakonfigurujte dvojfaktorové overenie
Teraz, keď sme povolili SMTP mailer, je čas znova povoliť dvojfaktorové overenie. Ak chcete povoliť dvojfaktorové overenie, spustite nasledujúce príkazy.
$ php /var/www/magento/bin/magento module:enable Magento_AdminAdobeImsTwoFactorAuth
$ php /var/www/magento/bin/magento module:enable Magento_TwoFactorAuth
Aktualizujte nastavenie modulov.
$ php /var/www/magento/bin/magento setup:upgrade
Spustite nasledujúci príkaz na vytvorenie tried.
$ php /var/www/magento/bin/magento setup:di:compile
Vyčistite aj vyrovnávaciu pamäť.
$ php /var/www/magento/bin/magento c:c
Ak nemáte prístup do oblasti správcu, spustite aj nasledujúce príkazy.
Vynútiť nasadenie statického obsahu.
$ php /var/www/magento/bin/magento setup:static-content:Deploy -f
Nastavte oprávnenia súboru.
$ cd /var/www/magento
$ sudo find var generated vendor pub/static pub/media app/etc -type f -exec chmod g+w {} +
$ sudo find var generated vendor pub/static pub/media app/etc -type d -exec chmod g+ws {} +
$ sudo chown -R :nginx .
Navštívte portál správcu a dostanete nasledujúcu obrazovku.
Budeme používať metódu Google Authenticator. Ak ho máte, môžete použiť hardvérový kľúč. Metóda Google Authenticator funguje s akoukoľvek aplikáciou TOTP vrátane Authy, 1Password, Bitwarden, Microsoft Authenticator atď. Pokračujte kliknutím na tlačidlo Použiť.
Na ďalšej stránke získate QR kód, ktorý naskenujete pomocou aplikácie 2FA. Zadajte podrobnosti do svojej aplikácie a skopírujte vygenerovaný kód do poľa Authenticator code. Kliknutím na tlačidlo Potvrdiť prejdite na ovládací panel správcu.
Záver
Týmto sa končí náš návod na inštaláciu stránky elektronického obchodu Magento na server Debian 12 so serverom Nginx a Elasticsearch. Ak máte nejaké otázky, napíšte ich do komentárov nižšie.