Otu esi etinye Magento na Rocky Linux na AlmaLinux


Edere ya na PHP, Magento bụ ebe mepere emepe na-ewu ewu, yana ikpo okwu eCommerce dị iche iche na-enye azụmaahịa nwere ụgbọ ịzụ ahịa n'ịntanetị. Ọ na-eji usoro PHP dị iche iche dị ka Symfony na Laminas kwalite ọrụ ya na iji ya.

Magento na-enye gị njikwa njikwa nke onye nchịkwa na-enyere gị aka ịmepụta ụlọ ahịa dị n'ịntanetị, jikwaa katalọgụ ngwaahịa, nyochaa azụmahịa na akwụkwọ ọnụahịa, ma debe omume ịzụ ahịa nke ndị ahịa n'etiti ọtụtụ ọrụ ndị ọzọ.

Na-enweghị mmasị ọzọ, ka anyị malite ịwụnye Magento na Rocky Linux na AlmaLinux.

Iji wụnye Magento nke ọma, nke mbụ, ịkwesịrị itinye ngwugwu LAMP na:

  • Etu esi etinye Stack LAMP na Rocky Linux
  • Otu esi etinye Stack LAMP na AlmaLinux

Ọzọkwa, hụ na ị nwere aha ngalaba tozuru oke (FQDN) na-atụ aka na adreesị IP ọha nke sava ahụ. N'ime ntuziaka a, anyị ga-eji ngalaba linuxtechgeek.info.

N'ikpeazụ, hụ na ị nwere ohere SSH na onye ọrụ sudo ahaziri.

Kwụpụ 1: Wụnye modul PHP ndị ọzọ na ndabere ndị ọzọ

Anyị ga-amalite na ntinye nke modul php nke bụ ihe achọrọ maka ntinye nke Magento.

$ sudo dnf install php-mysqlnd php-xml php-cli php-soap php-pd php-opcache php-iconv php-bcmath php-gd o  php-intl php-mbstring php-json  php-zip unzip wget -y

Ozugbo arụnyere, gaba ma dezie faịlụ nhazi php.ini.

$ sudo vim /etc/php.ini

Gbaa mbọ hụ na ụkpụrụ enyere n'okpuru gosipụtara ihe ị nwere. N'ezie, tọọ ọnụ ahịa date.time zone gị ka ọ dabara na mpaghara oge gị.

memory_limit = 1024M
upload_max_filesize = 256M
zlib.output_compression = on
max_execution_time = 18000
date.timezone = Europe/London

Chekwaa mgbanwe wee pụọ.

Na-esote, ịkwesịrị ịwụnye mgbakwunye sodium sodium PHP - libsodium. Nke a bụ modul na-enye ọrụ ezoro ezo n'ụzọ dị mfe ma dị irè. Iji wụnye modul ahụ, anyị kwesịrị ịwụnye ebe nchekwa EPEL nke na-enye ngwugwu ndị ọzọ na ndabere iji kwado ntinye ya.

Iji tinye EPEL, mebie iwu:

$ sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm

Na-esote, wụnye ndabere agbakwunyere.

$ sudo dnf install php-cli libsodium php-pear php-devel libsodium-devel make

Site na ngwugwu niile na ịdabere na ya, wụnye modul libsodium PHP site na ịme iwu ndị a n'usoro ahụ.

$ sudo pecl channel-update pecl.php.net
$ sudo pecl install libsodium

Gaa na faịlụ php.ini.

$ sudo vim /etc/php.ini 

Tinye ahịrị na-esonụ.

extension=sodium.so

Chekwa ma pụọ.

Iji nyochaa ma ọ bụrụ na etinyere sodium sodium na-eme iwu a:

$ php -i | grep sodium

Nnukwu! Ugbu a gaa n'ihu na nzọụkwụ ọzọ.

Nzọụkwụ 2: Mepụta Database maka Magento

Nzọụkwụ ọzọ gụnyere ịmepụta nchekwa data na onye ọrụ nchekwa data maka Magento. Ya mere, banye na MariaDB nchekwa data nkesa:

$ sudo mysql -u root -p

Mepụta nchekwa data na onye ọrụ nchekwa data site n'ịgba ajụjụ SQL ndị a.

CREATE DATABASE magento_db;
CREATE USER 'magento_user'@'localhost' IDENTIFIED BY 'password';

Na-esote, nye onye ọrụ nchekwa data ihe ùgwù na nchekwa data Magento.

GRANT ALL ON magento_db.* TO 'magento_user'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;

N'ikpeazụ, mee ka mgbanwe ahụ nwee ike ịmalite site na ibugharị tebụl onyinye.

FLUSH PRIVILEGES;
EXIT;

N'okpuru bụ nchịkọta nke ajụjụ SQL.

Kwụpụ 3: Wụnye ma hazie Elasticsearch na Linux

Nzọụkwụ ọzọ bụ ịwụnye Elasticsearch. Nke a bụ ihe nchọta na nyocha nkesa na-emepe emepe dabere na Apache Lucene. A na-eji ya chọọ, chekwaa na nyochaa nnukwu data ngwa ngwa na nke dabara adaba.

Edere Elasticsearch na Java, yana dịka ihe achọrọ, anyị kwesịrị ibu ụzọ tinye Java. Anyị ga-etinye OpenJDK 11 nke bụ ụdị OpenJDK kwụsiri ike kachasị ọhụrụ.

$ sudo dnf install openjdk-11-jdk -y

Ozugbo echichi nke OpenJDK zuru, nyochaa ụdị Java arụnyere.

$ java -version

Na-esote, bubata igodo Elasticsearch GPG.

$ sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

Ozugbo emechara, mepụta ebe nchekwa maka Elasticsearch.

$ sudo vim /etc/yum.repos.d/elasticsearch.repo

Tapawa ọdịnaya ndị a.

[elasticsearch-7.x]
name=Elasticsearch repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

Chekwaa mgbanwe ndị a wee pụọ na faịlụ nchekwa Elasticsearch.

Ugbu a jiri njikwa ngwugwu DNF ka ịwụnye elasticsearch.

$ sudo dnf install elasticsearch

Achọrọ ụfọdụ nhazi ọzọ maka Elasticsearch. Yabụ dezie faịlụ elasticsearch.yml.

$ sudo vim etc/elasticsearch/elasticsearch.yml

Ekwupụtaghị ahịrị ndị dị n'okpuru wee hụ na edobere ntuziaka onye ọrụ network na 127.0.0.1.

cluster.name: my-application
     node.name: node-1
     path.data: /var/lib/elasticsearch
     network.host: 127.0.0.1

Chekwaa mgbanwe ndị ahụ wee pụọ na faịlụ ahụ.

Ugbu a, mee ka ọrụ Elasticsearch malite na oge buut wee malite ọrụ site na iji iwu ndị a.

$ sudo systemctl enable elasticsearch
$ sudo systemctl start elasticsearch

Wee nyochaa ọnọdụ Elasticsearch na-agba ọsọ.

$ sudo systemctl status elasticsearch

Na mgbakwunye, ịnwere ike ịnwale Elasticsearch site na izipu arịrịọ GET site na iji iwu curl dị ka egosiri.

$ curl -X GET ‘localhost:9200’

Ị ga-enweta mmepụta na-esonụ na usoro JSON.

Nke a bụ nkwenye na arụnyere Elasticsearch nke ọma.

Kwụpụ 4: Budata na Wụnye Onye na-agụ egwu na Linux

Nzọụkwụ ọzọ bụ ịwụnye onye na-ede egwú bụ onye njikwa ngwugwu PHP. Ya mere, nke mbụ, budata faịlụ installer.

$ sudo curl -sS https://getcomposer.org/installer | php

Wee bugharịa faịlụ ahụ na /usr/local/bin/ path.

$ sudo mv composer.phar /usr/local/bin/composer

Iji kwado nrụnye, mebie iwu:

$ composer -V

Kwụpụ 5: Budata ma wụnye Magento na Linux

Nzọụkwụ na-esote bụ iji wget-line utility, budata faịlụ nrụnye dị ka ndị a.

$ wget https://github.com/magento/magento2/archive/refs/tags/2.4.2.zip

Ozugbo ebudatara, wepụ ọdịnaya dị na faịlụ Archive.

$ unzip 2.4.2.zip

Mgbe ahụ, bugharịa ndekọ ahụ emebi emebi na ndekọ mgbọrọgwụ akwụkwọ wee nyegharịa ya magento2 maka ịdị mfe.

$ sudo mv magento2-* /var/www/html/magento2

Mgbe ahụ gaa na ndekọ ndekọ magento

$ cd /var/www/html/magento2

Ma jiri onye na-ede egwú wụnye ihe ndabere PHP niile.

$ sudo /usr/local/bin/composer install

IHE: Ị ga-enwerịrị mperi mgbe ị na-eji sudo na-eme ihe nkiri. Nke a bụ naanị ịdọ aka ná ntị ebe ọ bụ na onye na-ede egwú na-agba ọsọ dị ka mgbọrọgwụ nwere ike ịdị ize ndụ dabere n'ihe arụnyere. Yabụ naanị gaa n'ihu ma gbaa ya n'agbanyeghị.

Ozugbo etinyere ndabere niile, tọọ ikike ndị a maka ndekọ ndekọ magento2.

$ sudo chown -R apache:apache /var/www/html/magento2
$ sudo chmod 755 /var/www/html/magento2

Ka nọ na ndekọ ndekọ magento2, kpọọ ikikere ndị a ọzọ.

$ 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 
$ sudo chown -R apache:apache .
$ sudo chmod u+x bin/magento

Emechaala anyị site n'itinye ikike ugbu a. Ka anyị gaa n'ihu ma hazie Apache maka Magento.

Kwụpụ 6: Mepụta Apache Virtual Host maka Magento

Ọzọ, anyị ga-ahazi faịlụ nnabata Apache maka nrụnye Magento.

$ sudo vim /etc/httpd/conf.d/magento.conf

Tapawa faịlụ nhazi a.

<VirtualHost *:80>
ServerAdmin [email 
ServerName example.com
DocumentRoot /var/www/html/magento2/
DirectoryIndex index.php

<Directory /var/www/html/magento2/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>

ErrorLog /var/log/httpd/magento_error.log
CustomLog /var/log/httpd/magento_access.log combined
</VirtualHost>

Chekwaa mgbanwe ndị ahụ wee pụọ na faịlụ ahụ.

Mgbe ahụ malitegharịa ihe nkesa HTTP Apache

$ sudo systemctl restart httpd

Kwụpụ 7: Wụnye Magento wee tọọ ọrụ Magento Cron

Iji wụnye Magento, gbaa iwu na-esonụ nke na-ahazi onye ọrụ ọhụrụ, onye ọrụ nchịkwa na ọtụtụ mgbanwe ndị ọzọ dị egwu.

sudo -u apache bin/magento setup:install --admin-firstname="james" --admin-lastname="kiarie" --admin-email="[email " --admin-user="admin" --admin-password="[email " --db-name="magento_db" --db-host="localhost" --db-user="magento_user" --db-password="[email @321" --language=en_US --currency=USD --timezone=Europe/London  --cleanup-database --base-url=http://"linuxtechgeek.info"

Na njedebe, ị ga-enweta mmepụta na-esonụ na-enye ụzọ nchịkwa nchịkwa.

Tupu ịnweta Magento site na ihe nchọgharị ahụ, hazie amụma SELinux dị ka egosiri.

$ sudo restorecon -R /var/www/magento
$ sudo setsebool -P httpd_unified 1

Mgbe ahụ, mepee ihe nchọgharị ahụ wee pịnye URL zuru ezu dịka egosiri.

http://linuxtechgeek.info/admin_yquaor

A ga-atụgharị gị gaa na ibe nbanye na-esote. Jiri nzere nchịkwa banye na mbụ wee pịa 'Banye'.

Nke a na-eduga gị na dashboard Magento.

Site ebe a, ị nwere ike ịga n'ihu ịmepụta ụlọ ahịa dị n'ịntanetị, jikwaa ọnụ ahịa ihe, akwụkwọ ọnụahịa ma debe ọrụ ndị ahịa n'etiti ọtụtụ ọrụ ndị ọzọ. Anyị etinyela Magento nke ọma na Rocky Linux na AlmaLinux.