Ինչպես տեղադրել Magento eCommerce Suite-ը Debian 12-ում Nginx-ով և Elasticsearch-ով
Այս էջում
- Նախադրյալներ
- Քայլ 1 - Կարգավորել Firewall-ը
- Քայլ 2 - Տեղադրեք PHP-ն և դրա ընդլայնումները
- Քայլ 3 - Տեղադրեք Composer-ը
- Քայլ 4 - Տեղադրեք MariaDB
- Քայլ 5 - Կարգավորեք MariaDB
- Քայլ 6 - Տեղադրեք Nginx
- Քայլ 7 - Տեղադրեք SSL-ը
- Քայլ 8 - Տեղադրեք Elasticsearch-ը
- Քայլ 9 - Տեղադրեք Redis սերվերը
- Քայլ 10 - Ներբեռնեք Magento-ն
- Քայլ 11 - Տեղադրեք Magento-ն
- Քայլ 12 - Կարգավորեք PHP-FPM
- Քայլ 13 - Կարգավորել Nginx-ը
- Քայլ 14 - Անջատել երկու գործոնով իսկությունը
- Քայլ 15 - Մուտք գործեք կառավարման պորտալ
- Քայլ 16 - Միացնել և կարգավորել երկգործոն նույնականացումը
- Եզրակացություն
Magento-ն բաց կոդով էլեկտրոնային առևտրի հարթակ է, որը գրված է PHP-ով: Այն ձեռք է բերվել Adobe-ի կողմից 2018 թվականին: Այն նաև առաջարկվում է որպես առևտրային և ամպի վրա հիմնված արտադրանք: Դուք կարող եք օգտագործել Magento-ն բարձր հզորությամբ պրոֆեսիոնալ գնումների կայքեր ստեղծելու համար: Այն առաջարկում է և՛ մեկ խանութ, և՛ մի քանի խանութի ռեժիմ: Այն գալիս է բազմաթիվ մոդուլներով՝ իր ֆունկցիոնալությունը ընդլայնելու համար:
Այս ձեռնարկում մենք կտեղադրենք Magento բաց կոդով համայնքի հրատարակությունը: Այն առաջարկում է բոլոր գործառույթները, որոնք անհրաժեշտ են պրոֆեսիոնալ առցանց խանութ ստեղծելու համար: Մենք նաև կտեղադրենք Elasticsearch-ը՝ ապրանքների կատալոգում որոնելու համար, Redis՝ նիստի և ֆայլերի քեշի համար, և այն կծառայենք Nginx սերվերի միջոցով:
Նախադրյալներ
Debian 12-ով աշխատող սերվեր՝ նվազագույնը 2 ԳԲ օպերատիվ հիշողությամբ: Ձեզ կարող է անհրաժեշտ լինել ավելի շատ RAM՝ կախված ձեր պահանջներից:
Ոչ արմատային օգտատեր՝ sudo արտոնություններով:
Լիովին որակավորված տիրույթի անուն (FQDN) սերվերի համար, magento.example.com
Համոզվեք, որ ամեն ինչ թարմացվում է:
$ sudo apt update
$ sudo apt upgrade
Մի քանի փաթեթներ, որոնք անհրաժեշտ են ձեր համակարգին:
$ sudo apt install wget curl nano ufw software-properties-common dirmngr apt-transport-https gnupg2 ca-certificates lsb-release debian-archive-keyring unzip -y
Այս փաթեթներից որոշները կարող են արդեն տեղադրված լինել ձեր համակարգում:
Քայլ 1 - Կարգավորել Firewall-ը
Առաջին քայլը firewall-ի կազմաձևումն է: Debian-ը լռելյայն գալիս է ufw-ով (Uncomplicated Firewall):
Ստուգեք, արդյոք firewall-ը աշխատում է:
$ sudo ufw status
Դուք պետք է տեսնեք հետևյալի նման մի բան.
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Թույլատրել նաև HTTP և HTTPS պորտերը:
$ sudo ufw allow http
$ sudo ufw allow https
Կրկին ստուգեք firewall-ի կարգավիճակը:
$ sudo ufw status
Դուք պետք է տեսնեք նմանատիպ արդյունք:
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)
Քայլ 2 - Տեղադրեք PHP-ն և դրա ընդլայնումները
Debian 12-ը լռելյայն մատակարարվում է PHP 8.2 տարբերակով: Դուք կարող եք տեղադրել այն և Magento-ի կողմից պահանջվող ընդարձակումները՝ գործարկելով հետևյալ հրամանը.
$ 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
Որպեսզի միշտ մնաք PHP-ի վերջին տարբերակում կամ եթե ցանկանում եք տեղադրել PHP-ի մի քանի տարբերակներ, ավելացրեք Ondrej-ի PHP պահոցը:
Նախ, ներմուծեք Sury-ի ռեպո PHP GPG բանալին:
$ sudo curl -sSLo /usr/share/keyrings/deb.sury.org-php.gpg https://packages.sury.org/php/apt.gpg
Ավելացնել Ondrej Sury-ի PHP պահեստը:
$ 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'
Թարմացրեք համակարգի պահեստների ցանկը:
$ sudo apt update
Հաջորդը, տեղադրեք PHP-ն և դրա ընդլայնումները, որոնք պահանջվում են Magento-ի կողմից:
$ 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
Ստուգեք տեղադրումը:
$ 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
Քայլ 3 - Տեղադրեք Composer-ը
Կոմպոզիտորը PHP-ի համար կախվածության կառավարման գործիք է և պահանջվում է Magento-ի տեղադրման համար:
Կոմպոզիտորի երկուականը ներբեռնելու համար գործարկեք հետևյալ հրամանները: Magento-ն պահանջում է Composer 2.2 LTS, այնպես որ մենք համապատասխանաբար փոփոխել ենք հրամանը:
$ php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
$ php composer-setup.php --2.2
$ php -r "unlink('composer-setup.php');"
Տեղադրեք Composer-ը՝ երկուականը տեղափոխելով /usr/local/bin
գրացուցակ:
$ sudo mv composer.phar /usr/local/bin/composer
Ստուգեք տեղադրումը` ստուգելով դրա տարբերակը:
$ composer --version
Composer version 2.2.21 2023-02-15 13:07:40
Քայլ 4 - Տեղադրեք MariaDB
Debian 12-ը լռելյայնորեն չի առաքվում MySQL-ով, և նրանք դեռ պաշտոնական փաթեթ չեն թողարկել դրա համար: Հետևաբար, մենք դրա համար կօգտագործենք MariaDB-ն: MariaDB-ն պաշտոնական փաթեթ չունի նաև Debian 12-ի համար, բայց Debian-ը առաքվում է դրա հետ: Հետևաբար, տեղադրեք այն՝ օգտագործելով հետևյալ հրամանը.
$ sudo apt install mariadb-server
Ստուգեք MySQL-ի տարբերակը:
$ mysql --version
mysql Ver 15.1 Distrib 10.11.3-MariaDB, for debian-linux-gnu (x86_64) using EditLine wrapper
Այժմ, MariaDB-ի այս տարբերակը չի աջակցվում Magento-ի կողմից, և պաշտոնական MariaDB փաթեթը Debian 12-ի համար այս պահին հասանելի չէ: Այսպիսով, մենք կշարունակենք տեղադրումը և ավելի ուշ կօգտագործենք սահմանափակումը շրջանցելու համար:
Գործարկեք MariaDB անվտանգ տեղադրման սցենարը:
$ sudo mysql_secure_installation
Ձեզանից կպահանջվի root գաղտնաբառը: Սեղմեք Enter, քանի որ մենք դրա համար գաղտնաբառ չենք սահմանել:
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):
Հաջորդը, ձեզ կհարցնեն, թե արդյոք ցանկանում եք անցնել Unix վարդակից նույնականացման մեթոդին: unix_socket
հավելվածը թույլ է տալիս օգտագործել ձեր օպերացիոն համակարգի հավատարմագրերը MariaDB սերվերին միանալու համար: Քանի որ դուք արդեն ունեք պաշտպանված արմատային հաշիվ, շարունակելու համար մուտքագրեք 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
Հաջորդը, ձեզ կհարցնեն, թե արդյոք ցանկանում եք փոխել ձեր արմատային գաղտնաբառը: Debian 12-ում արմատային գաղտնաբառը սերտորեն կապված է ավտոմատացված համակարգի սպասարկման հետ, ուստի այն պետք է հանգիստ թողնել: Շարունակելու համար մուտքագրեք n
:
... skipping.
You already have your root account protected, so you can safely answer 'n'.
Change the root password? [Y/n] n
Հաջորդը ձեզ որոշակի հարցեր կուղղվեն MariaDB-ի անվտանգությունը բարելավելու համար: Մուտքագրեք 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!
Դուք կարող եք մուտք գործել MariaDB վահանակ՝ հրամանի տողում մուտքագրելով sudo mysql
կամ sudo mariadb
:
Քայլ 5 - Կարգավորեք MariaDB
Մուտք գործեք MariaDB վահանակ:
$ sudo mysql
Ստեղծեք տվյալների բազա Magento-ի համար:
mysql> CREATE DATABASE magento;
Ստեղծեք SQL օգտվողի հաշիվ:
mysql> CREATE USER 'magentouser'@'localhost' IDENTIFIED BY 'Your_password2';
Տվյալների բազայի բոլոր արտոնությունները տրամադրեք օգտագործողին:
mysql> GRANT ALL PRIVILEGES ON magento.* TO 'magentouser'@'localhost';
Քանի որ մենք չենք փոփոխում արմատային օգտատերը, դուք պետք է ստեղծեք մեկ այլ SQL օգտվող՝ ադմինիստրատիվ առաջադրանքներ կատարելու համար, որոնք օգտագործում են գաղտնաբառի իսկությունը: Ընտրեք ուժեղ գաղտնաբառ այս մեկի համար:
MariaDB> GRANT ALL ON *.* TO 'navjot'@'localhost' IDENTIFIED BY 'Yourpassword32!' WITH GRANT OPTION;
Լվացեք օգտվողի արտոնությունները:
mysql> FLUSH PRIVILEGES;
Դուրս եկեք պատյանից:
mysql> exit
Քայլ 6 - Տեղադրեք Nginx
Debian 12-ը առաքվում է Nginx-ի ավելի հին տարբերակով: Վերջին տարբերակը տեղադրելու համար անհրաժեշտ է ներբեռնել պաշտոնական Nginx պահոցը:
Ներմուծեք Nginx-ի ստորագրման բանալին:
$ curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
| sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
Ավելացրեք պահեստը 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
Թարմացրեք համակարգի պահեստները:
$ sudo apt update
Տեղադրեք Nginx-ը:
$ sudo apt install nginx
Ստուգեք տեղադրումը: Debian համակարգերում հետևյալ հրամանը կաշխատի միայն sudo
-ի հետ։
$ sudo nginx -v
nginx version: nginx/1.24.0
Գործարկեք Nginx սերվերը:
$ sudo systemctl start nginx
Ստուգեք ծառայության կարգավիճակը:
? 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"
Քայլ 7 - Տեղադրեք SSL-ը
SSL վկայագիր ստեղծելու համար մենք պետք է տեղադրենք Certbot-ը: Կարող եք կա՛մ տեղադրել Certbot-ը՝ օգտագործելով Debian-ի պահոցը, կա՛մ գրավել վերջին տարբերակը՝ օգտագործելով Snapd գործիքը: Մենք կօգտագործենք Snapd տարբերակը:
Debian 12-ը չի գալիս Snapd-ի տեղադրմամբ: Տեղադրեք Snapd փաթեթը:
$ sudo apt install snapd
Գործարկեք հետևյալ հրամանները՝ համոզվելու համար, որ Snapd-ի ձեր տարբերակը արդիական է:
$ sudo snap install core && sudo snap refresh core
Տեղադրեք Certbot-ը:
$ sudo snap install --classic certbot
Օգտագործեք հետևյալ հրամանը՝ համոզվելու համար, որ Certbot հրամանը կարող է գործարկվել՝ ստեղծելով խորհրդանշական հղում դեպի /usr/bin
գրացուցակը:
$ sudo ln -s /snap/bin/certbot /usr/bin/certbot
Ստուգեք, արդյոք Certbot-ը ճիշտ է աշխատում:
$ certbot --version
certbot 2.6.0
Գործարկեք հետևյալ հրամանը՝ SSL վկայական ստեղծելու համար:
$ sudo certbot certonly --nginx --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email -d magento.example.com
Վերոնշյալ հրամանը վկայական կներբեռնի ձեր սերվերի /etc/letsencrypt/live/magento.example.com
գրացուցակում:
Ստեղծեք Diffie-Hellman խումբ վկայագիր:
$ sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096
Ստուգեք Certbot-ի նորացման ժամանակացույցի ծառայությունը:
$ sudo systemctl list-timers
Դուք կգտնեք 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
Կատարեք գործընթացի չոր գործարկում՝ ստուգելու, թե արդյոք SSL-ի նորացումը լավ է աշխատում:
$ sudo certbot renew --dry-run
Եթե սխալներ չկան, ապա ամեն ինչ պատրաստ է: Ձեր վկայականը ինքնաբերաբար կերկարաձգվի:
Քայլ 8 - Տեղադրեք Elasticsearch-ը
Elasticsearch-ն օգտագործվում է Magento-ի կողմից արտադրանքի որոնումների համար: Մենք կտեղադրենք Elasticsearch 7.x-ը՝ օգտագործելով իր պաշտոնական պահոցը, քանի որ դա այն տարբերակն է, որը համատեղելի է Magento-ի հետ:
Ներմուծեք Elasticsearch-ի GPG բանալին:
$ wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elasticsearch-keyring.gpg
Ավելացնել 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
Թարմացրեք համակարգի պահեստների ցանկը:
$ sudo apt update
Տեղադրեք Elasticsearch-ը:
$ sudo apt install elasticsearch
Elasticsearch-ը շատ հիշողություն է օգտագործում: Դուք պետք է սահմանափակեք դրա օգտագործումը՝ կախված ձեր սերվերի չափից: Ստեղծեք /etc/elasticsearch/jvm.options.d/memory.options
ֆայլը և բացեք այն խմբագրման համար:
$ sudo nano /etc/elasticsearch/jvm.options.d/memory.options
Դրա մեջ տեղադրեք հետևյալ կոդը. Փոփոխեք արժեքները՝ ըստ ձեր սերվերի չափի: Առաջին արժեքը վերաբերում է սկզբնական հիշողությանը, իսկ երկրորդը վերաբերում է առավելագույն հասանելի հիշողությանը: 1 ԳԲ և ավելիի համար օգտագործեք -Xms1g
ձևաչափը:
-Xms512m
-Xmx784m
Պահպանեք ֆայլը՝ սեղմելով Ctrl + X և մուտքագրելով Y, երբ պահանջվում է: Սա կարգավորում է Elasticsearch-ը, որպեսզի օգտագործի 1 ԳԲ օպերատիվ հիշողություն: Անհրաժեշտության դեպքում կարող եք օգտագործել ցանկացած արժեք:
Սկսեք և միացրեք ծառայությունը:
$ sudo systemctl enable elasticsearch --now
Ստուգեք, արդյոք Elasticsearch-ը աշխատում է:
$ curl http://localhost:9200
Դուք պետք է տեսնեք հետևյալ արդյունքը.
{
"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"
}
Քայլ 9 - Տեղադրեք Redis սերվերը
Magento-ն օգտագործում է Redis-ը նստաշրջանի և քեշի պահպանման համար: Այն ամբողջովին ընտրովի է, և դուք կարող եք օգտագործել տվյալների բազան նստաշրջանի պահպանման համար: Բայց Ռեդիսն ավելի լավ է աշխատում: Magento-ի վերջին տարբերակը աշխատում է Redis 7.0-ի հետ: Debian-ը առաքվում է Redis 6.0-ով, ուստի տեղադրման համար մենք կօգտագործենք Redis-ի պահոցը:
Ներմուծեք պաշտոնական Redis GPG բանալին:
$ curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg
Ավելացրեք APT պահոցը ձեր աղբյուրների ցանկում:
$ 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
Թարմացրեք համակարգի պահեստների ցանկը:
$ sudo apt update
Redis սերվերը տեղադրելու համար թողարկեք հետևյալ հրամանը.
$ sudo apt install redis
Հաստատեք Redis տարբերակը:
$ redis-server -v
Redis server v=7.0.12 sha=00000000:0 malloc=jemalloc-5.2.1 bits=64 build=d706905cc5f560c1
Եկեք ստուգենք ծառայության կապը՝ օգտագործելով հետևյալ հրամանը.
$ redis-cli
Դուք կփոխանցվեք Redis shell-ին:
Առաջին քայլը Redis-ի լռելյայն օգտագործողի համար գաղտնաբառը սահմանելն է: Փոխարինեք Your_Redis_Password
-ը ձեր ընտրած ուժեղ գաղտնաբառով: Համոզվեք, որ գաղտնաբառի նախածանցը դրել եք >
նիշով:
127.0.0.1:6379> acl setuser default >Your_Redis_Password
Փորձարկեք Redis նույնականացումը:
127.0.0.1:6379> AUTH Your_Redis_Password
OK
Ping ծառայությունը.
127.0.0.1:6379> ping
PONG
Դուրս եկեք ծառայությունից՝ մուտքագրելով ելք
:
Քայլ 10 - Ներբեռնեք Magento-ն
Ստեղծեք վեբ արմատային գրացուցակ Magento-ի համար:
$ sudo mkdir /var/www/magento -p
Տվեք Magento գրացուցակի իրավունքները ընթացիկ օգտագործողին:
$ sudo chown $USER:$USER /var/www/magento/ -R
Նախքան հետագա շարժվելը, ձեզ հարկավոր է նույնականացման բանալիներ, որոնք պահանջվում են Magento-ի պահոցից: Այցելեք https://account.magento.com/
կայքը և կստանաք հետևյալ էջը՝ խնդրելով մուտք գործել ձեր Adobe ID-ի միջոցով:
Սեղմեք Մուտք գործեք Adobe ID-ով կոճակը՝ հետևյալ էջին հասնելու համար:
Եթե ունեք Adobe ID, մուտքագրեք ձեր հավատարմագրերը՝ շարունակելու կամ կարող եք այստեղ հաշիվ ստեղծել: Ձեր հաշիվը ստեղծելուց և մուտք գործելուց հետո բացեք https://marketplace.magento.com/customer/accessKeys/
URL-ը: Դուք կարող եք նաև մուտք գործել այս էջ՝ այցելելով ձեր պրոֆիլը և սեղմելով Մուտքի բանալիներ հղումը:
Սեղմեք Ստեղծել նոր մուտքի բանալի կոճակը՝ ձեր իսկորոշման բանալին ստեղծելու համար: Անուն տվեք ձեր բանալին նույնականացման համար:
Հաջորդ քայլի համար նշեք և՛ հանրային, և՛ մասնավոր բանալիները:
Ստեղծեք ~/.config/composer/auth.json
ֆայլը և բացեք այն խմբագրման համար:
$ nano ~/.config/composer/auth.json
Դրա մեջ տեղադրեք հետևյալ կոդը. Օգտվողի անվան համար օգտագործեք հանրային բանալին, իսկ գաղտնաբառի համար՝ անձնական բանալին:
{
"http-basic": {
"repo.magento.com": {
"username": "<public_key>",
"password": "<private_key>"
}
}
}
Պահպանեք ֆայլը՝ սեղմելով Ctrl + X և մուտքագրելով Y, երբ պահանջվում է:
Անցեք /var/www/magento
գրացուցակին:
$ cd /var/www/magento
Ստեղծեք Magento նախագիծը: Նշեք հրամանի վերջում ժամանակաշրջանը
: Այն վերաբերում է ընթացիկ գրացուցակին, որում գործարկվում է հրամանը:
$ composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition .
Դուք պետք է տեսնեք նմանատիպ արդյունք:
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)
...............................................
Adobe-ի կողմից տրամադրված Nginx կազմաձևման ֆայլի հետ կապված խնդիր կա: Գործարկեք հետևյալ հրամանը՝ այն շտկելու համար։
$ sed -i 's/php-fpm:9000/fastcgi_backend/g' /var/www/magento/nginx.conf.sample
Գործարկեք հետևյալ հրամանները՝ ֆայլի թույլտվությունները սահմանելու և Magento երկուական գործարկելի դարձնելու համար: Բացի այդ, Magento գրացուցակի սեփականատիրոջը սահմանեք Nginx օգտվողին, որպեսզի նա կարողանա մուտք գործել կայք:
$ 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
Քայլ 11 - Տեղադրեք Magento-ն
Նախքան տեղադրումը շարունակելը, մենք պետք է փոփոխենք տեղադրիչը, որպեսզի այն թույլ տա մեզ օգտագործել MariaDB 10.11.3, որը ներկայումս չի աջակցվում Magento-ի կողմից: Magento-ն մինչ այժմ աջակցում է MariaDB 10.2-10.6 տարբերակները:
Բացեք ֆայլը /var/www/magento/app/etc/di.xml
խմբագրման համար:
$ sudo nano /var/www/magento/app/etc/di.xml
Որոնեք հետևյալ տողը.
<item name="MariaDB-(10.2-10.6)" xsi:type="string">^10\.[2-6]\.</item>
Փոխարինեք այն հետևյալ կոդով.
<item name="MariaDB-(10.2-10.11)" xsi:type="string">^10\.([2-9]|10|11)\.</item>
Պահպանեք ֆայլը՝ սեղմելով Ctrl + X և մուտքագրելով Y, երբ պահանջվում է:
Համոզվեք, որ դուք գտնվում եք Magento գրացուցակում:
$ cd /var/www/magento
Գործարկեք հետևյալ հրամանը՝ 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
Գործընթացն ավարտվելուց հետո դուք կստանաք նմանատիպ արդյունք:
.......
[SUCCESS]: Magento installation complete.
[SUCCESS]: Magento Admin URI: /admin_11xb2x
Nothing to import.
Նշեք ադմինիստրատորի URI-ն, որը ձեզ ավելի ուշ անհրաժեշտ կլինի կառավարման վահանակ մուտք գործելու համար:
Ստեղծեք Magento cron աշխատատեղեր:
$ php bin/magento cron:install
Ստուգեք cron աշխատանքը:
$ crontab -l
Դուք պետք է տեսնեք հետևյալ արդյունքը.
#~ 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
Քայլ 12 - Կարգավորեք PHP-FPM
Բացեք ֆայլը /etc/php/8.2/fpm/pool.d/www.conf
:
$ sudo nano /etc/php/8.2/fpm/pool.d/www.conf
Մենք պետք է PHP պրոցեսների Unix օգտվողին/խմբին դնենք nginx: Գտեք user=www-data
և group=www-data
տողերը ֆայլում և փոխեք դրանք 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
...
Գտեք listen.owner=www-data
և listen.group=www-data
տողերը ֆայլում և փոխեք դրանք 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
Պահպանեք ֆայլը՝ սեղմելով Ctrl + X և մուտքագրելով Y, երբ պահանջվում է:
Բարձրացրեք PHP-FPM-ի և PHP-CLI-ի կատարման ժամանակը մինչև 180 վայրկյան:
$ 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
Բարձրացրեք PHP-FPM-ի հիշողության սահմանաչափը 128 ՄԲից 256 ՄԲ: Դուք կարող եք բարձրացնել սահմանը՝ կախված ձեր սերվերի չափից և պահանջներից:
$ sudo sed -i 's/memory_limit = 128M/memory_limit = 256M/' /etc/php/8.2/fpm/php.ini
Magento-ն լռելյայն սահմանում է մեդիա գրադարանի ֆայլի չափի սահմանաչափը 2 ՄԲ: Գործարկեք հետևյալ հրամանները՝ ֆայլի չափի սահմանաչափը մինչև 25 ՄԲ ավելացնելու համար:
$ 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
Միացրեք Zlib սեղմումը:
$ sudo sed -i 's/zlib.output_compression = Off/zlib.output_compression = On/g' /etc/php/8.2/fpm/php.ini
Վերագործարկեք PHP-FPM ծառայությունը:
$ sudo systemctl restart php8.2-fpm
Փոխեք PHP նիստերի գրացուցակի խումբը Nginx-ի:
$ sudo chgrp -R nginx /var/lib/php/sessions
Քայլ 13 - Կարգավորել Nginx-ը
Բացեք ֆայլը /etc/nginx/nginx.conf
խմբագրման համար:
$ sudo nano /etc/nginx/nginx.conf
Ավելացրեք հետևյալ տողը include /etc/nginx/conf.d/*.conf;
տողից առաջ:
server_names_hash_bucket_size 64;
Պահպանեք ֆայլը՝ սեղմելով Ctrl + X և մուտքագրելով Y, երբ պահանջվում է:
Ստեղծեք և բացեք ֆայլը /etc/nginx/conf.d/magento.conf
խմբագրման համար:
$ sudo nano /etc/nginx/conf.d/magento.conf
Դրա մեջ տեղադրեք հետևյալ կոդը.
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;
}
Պահպանեք ֆայլը՝ սեղմելով Ctrl + X և մուտքագրելով Y, երբ հուշում է ավարտելուց հետո:
Magento-ն ունի Nginx կազմաձևման ձևանմուշ՝ /var/www/magento/nginx.conf.sample
հասցեով, որը մենք ներառել ենք մեր կազմաձևում: $MAGE_ROOT
փոփոխականը մատնանշում է Magento վեբ արմատային գրացուցակը, որը մենք դրել ենք մեր ֆայլում և օգտագործվում է նմուշի կազմաձևման ֆայլում:
Ստուգեք 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
Վերագործարկեք Nginx ծառայությունը:
$ sudo systemctl restart nginx
Բացեք Magento կայքը https://magento.example.com
URL-ի միջոցով: Դուք պետք է տեսնեք հետևյալ էջը.
Եթե CSS-ը և JS-ը չեն բեռնվում ձեզ համար, ապա գործարկեք հետևյալ հրամանները.
$ cd /var/www/magento
$ php bin/magento setup:static-content:deploy -f
$ php bin/magento indexer:reindex
Քայլ 14 - Անջատել երկու գործոնով իսկությունը
Նախքան կառավարման վահանակ մուտք գործելը, մենք պետք է անջատենք երկու գործոնով նույնականացումը, որը միացված է լռելյայն: Magento-ն փորձում է նամակ ուղարկել sendmail
-ով` տեղադրման ընթացքում երկգործոն նույնականացումը միացնելու համար, բայց քանի որ մենք դա չենք կարգավորել, վահանակ մուտք գործելու միակ միջոցը նախ գործառույթն անջատելն է:
Եթե ձեր սերվերի վրա կարգավորել եք sendmail
նամակներ ուղարկելու համար, ապա կարող եք բաց թողնել այս քայլը: Երկու գործոնով իսկությունը անջատելու համար մենք պետք է անջատենք Magento-ի երկու մոդուլները՝ օգտագործելով հետևյալ հրամանները.
$ php /var/www/magento/bin/magento module:disable Magento_AdminAdobeImsTwoFactorAuth
$ php /var/www/magento/bin/magento module:disable Magento_TwoFactorAuth
Դասերը ստեղծելու համար գործարկեք հետևյալ հրամանը.
$ php /var/www/magento/bin/magento setup:di:compile
Մաքրեք նաև քեշը:
$ php /var/www/magento/bin/magento c:c
Քայլ 15 - Մուտք գործեք կառավարման պորտալ
Դուք պետք է բացեք ադմինիստրատիվ պորտալը՝ օգտագործելով Magento-ի տեղադրման սցենարը, որը ձեզ տվել է: Եթե ինչ-որ կերպ մոռացել եք այն նշել կամ կորցրել եք այն, կարող եք նորից վերցնել URI-ն՝ օգտագործելով հետևյալ հրամանը:
$ php /var/www/magento/bin/magento info:adminuri
Admin URI: /admin_11xb2x
Բացեք URL-ը https://magento.example.com/admin_11xb2x
ձեր բրաուզերում և կտեսնեք հետևյալ էկրանը:
Մուտքագրեք ձեր ադմինիստրատորի հավատարմագրերը, որոնք տրամադրվել են տեղադրման ընթացքում և սեղմեք Մուտք գործեք կոճակը՝ շարունակելու համար: Ձեզ կդիմավորեն հետևյալ էկրանը.
Դուք կստանաք թռուցիկ՝ Adobe-ին թույլտվություն խնդրելով հավաքել օգտագործման տվյալները: Շարունակելու համար սեղմեք Չթույլատրել կոճակը:
Հաջորդ քայլը SMTP-ն էլփոստի համար կարգավորելն է, որպեսզի կարողանանք նորից միացնել երկգործոն նույնականացումը: Այցելեք Խանութներ >> Կազմաձևում մենյու:
Ընդարձակեք Ընդլայնված ընտրացանկը ձախ կողմից և սեղմեք Համակարգեր տարբերակը՝ Էլփոստի կարգավորումների էջը բացելու համար:
Անջատեք Օգտագործել համակարգի արժեքը Տրանսպորտ, հյուրընկալող և նավահանգիստ ընտրանքների դիմաց: Սեղմեք Տրանսպորտի բացվող ընտրացանկը և այնտեղից ընտրեք SMTP: Մեր ձեռնարկի համար մենք օգտագործում ենք Amazon SES-ը որպես փոստարկղ:
Մուտքագրեք ձեր SMTP հոսթը՝ 587 որպես նավահանգիստ, օգտվողի անուն և գաղտնաբառ, սահմանեք Auth-ը LOGIN և սահմանեք SSL-ը TLS ուժեղ> տվյալ դաշտերում. Ավարտելուց հետո սեղմեք Պահպանել կազմաձևը կոճակը: Այժմ, երբ մենք կազմաձևել ենք էլփոստի կարգավորումները, հաջորդ քայլը խանութի էլփոստի նույնացուցիչների կազմաձևումն է, որպեսզի կարողանանք դրանք փորձարկել:
Ոլորեք վերև և ընդլայնեք Ընդհանուր ընտրացանկը նույն էջում և ընտրեք Պահպանել էլփոստի հասցեները տարբերակը:
Անջատեք «Ուղարկողի էլ.փոստի» կանխադրված դաշտերը և մուտքագրեք ձեր խանութի էլփոստի նույնացուցիչները: Ավարտելուց հետո սեղմեք Պահպանել կազմաձևը կոճակը: Նմանապես, բացեք Կոնտակտներ էկրանը և կատարեք նույն փոփոխությունները և կտտացրեք Պահպանել կազմաձևը կոճակը՝ այն ավարտելու համար:
Ադմինիստրատորի ընտրանքները փոխելը կարող է ազդել քեշի վրա, և դուք նախազգուշացում կստանաք: Գործարկեք հետևյալ հրամանը՝ քեշը ձեռքով մաքրելու համար:
$ php /var/www/magento/bin/magento c:c
Նամակները փորձարկելու համար այցելեք խանութի ցուցափեղկի էջը և բացեք Կապ մեզ հետ
էջը: Այն մուտք գործելու համար կարող եք ուղղակիորեն օգտագործել https://magento.example.com/contact/
URL-ը: Ուղարկեք փորձնական հաղորդագրություն և սեղմեք Ուղարկել կոճակը: Դուք պետք է ստանաք նմանատիպ նամակ:
Քայլ 16 - Միացնել և կարգավորել երկգործոն նույնականացումը
Այժմ, երբ մենք միացրել ենք SMTP փոստարկղը, ժամանակն է նորից միացնել երկգործոն նույնականացումը: Գործարկեք հետևյալ հրամանները՝ երկու գործոնով նույնականացումը միացնելու համար:
$ php /var/www/magento/bin/magento module:enable Magento_AdminAdobeImsTwoFactorAuth
$ php /var/www/magento/bin/magento module:enable Magento_TwoFactorAuth
Թարմացրեք մոդուլների կարգավորումները:
$ php /var/www/magento/bin/magento setup:upgrade
Դասերը ստեղծելու համար գործարկեք հետևյալ հրամանը.
$ php /var/www/magento/bin/magento setup:di:compile
Մաքրեք նաև քեշը:
$ php /var/www/magento/bin/magento c:c
Եթե չեք կարողանում մուտք գործել ադմինիստրատորի տարածք, գործարկեք նաև հետևյալ հրամանները.
Ստիպել տեղակայել ստատիկ բովանդակությունը:
$ php /var/www/magento/bin/magento setup:static-content:Deploy -f
Սահմանեք ֆայլի թույլտվությունները:
$ 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 .
Այցելեք Admin պորտալը և կստանաք հետևյալ էկրանը.
Մենք կօգտագործենք Google Authenticator մեթոդը: Դուք կարող եք օգտագործել ապարատային բանալի, եթե դա ունեք: Google Authenticator մեթոդն աշխատում է ցանկացած TOTP հավելվածի հետ, ներառյալ Authy, 1Password, Bitwarden, Microsoft Authenticator և այլն: Շարունակելու համար սեղմեք Դիմել կոճակը:
Հաջորդ էջում դուք կստանաք QR կոդը՝ ձեր 2FA հավելվածով սկանավորելու համար: Մուտքագրեք մանրամասները ձեր հավելվածում և պատճենեք ստեղծված կոդը Authenticator code դաշտում: Սեղմեք Հաստատել կոճակը՝ ադմինիստրատորի վահանակ անցնելու համար:
Եզրակացություն
Սա ավարտում է մեր ձեռնարկը Magento էլեկտրոնային առևտրի կայքի տեղադրման վերաբերյալ Debian 12 սերվերի վրա Nginx սերվերով և Elasticsearch-ով: Եթե ունեք հարցեր, տեղադրեք դրանք ստորև ներկայացված մեկնաբանություններում: