Kā instalēt OpenCart uz CentOS 7: NGINX vai Apache, PHP, MariaDB un droša sākotnējā konfigurācija

Kā instalēt OpenCart uz CentOS 7

OpenCart ir populāra e-komercijas platforma, kas ļauj izveidot interneta veikalu ar salīdzinoši nelielu infrastruktūras un uzturēšanas sarežģītību. Tā ir piemērota gan maziem katalogiem, gan praktiskiem uzņēmuma veikaliem, kuriem vajag produktu pārvaldību, pasūtījumu apstrādi, moduļus, maksājumu risinājumus un administrācijas paneli. Uzstādot OpenCart uz CentOS 7, svarīgākais nav tikai panākt, lai instalācija “atveras pārlūkā”, bet arī izveidot stabilu, drošu un saprotamu vidi turpmākai uzturēšanai.

Praksē OpenCart uzstādīšana nozīmē trīs galveno slāņu sagatavošanu: web serveri, PHP vidi un datubāzi. Pēc tam tiek lejupielādēti OpenCart faili, izveidota datubāze, konfigurētas piekļuves tiesības un pabeigta instalācija pārlūkā. Šādu vidi visbiežāk izvieto uz virtuālā servera, jo tas dod pilnu kontroli pār PHP, datubāzi un web servera iestatījumiem. Ja veikals ir apjomīgāks vai paredzēta lielāka slodze, loģiska izvēle var būt serveru īre. Savukārt veikalam ar publisku domēnu un drošu HTTPS piekļuvi ļoti svarīgi ir arī SSL sertifikāti.

Pirms sākat, ir vērts saprast vienu būtisku lietu: CentOS 7 ir vecāka operētājsistēma, un dažām jaunākām PHP vai OpenCart kombinācijām var būt savietojamības nianses. Tāpēc ieteicams jau sākumā pārbaudīt, kuru OpenCart versiju plānojat izmantot un kādas PHP prasības tai ir. Ja šis posms tiek izlaists, vēlāk var rasties kļūdas ar moduļiem, instalācijas ekrānu vai administrācijas paneli, lai gan pati problēma patiesībā ir nepareiza programmatūras kombinācija.

1) Sistēmas sagatavošana un nepieciešamās pakotnes

Sāciet ar CentOS 7 atjaunināšanu un bāzes rīku uzstādīšanu. Tas palīdz nodrošināt, ka sistēma ir tīra, žurnāli ir korekti, un turpmākais darbs notiek paredzamā vidē. OpenCart prasīs web serveri, datubāzi un PHP paplašinājumus, tāpēc jau sākumā ieteicams uzstādīt arī wget, unzip un nano vai citu ērtu redaktoru.

sudo yum update -y
sudo yum install -y wget curl unzip nano

OpenCart parasti darbojas gan ar Apache, gan ar NGINX. Abas pieejas ir korektas, bet izvēle jāveic apzināti, jo konfigurācijas faili būs atšķirīgi. Daudzos CentOS 7 piemēros tiek izmantots Apache, jo tas ir vienkārši saprotams un .htaccess mehānismi ir pazīstami daudziem lietotājiem. Tajā pašā laikā NGINX bieži ir laba izvēle veiktspējas un vienkāršas reversās konfigurācijas dēļ.

2) MariaDB un datubāzes izveide

OpenCart glabā produktus, klientu informāciju, pasūtījumus un konfigurāciju datubāzē, tāpēc nākamais solis ir MariaDB vai MySQL uzstādīšana. CentOS 7 vidē MariaDB bieži ir vienkāršākā un stabilākā izvēle. Pēc instalācijas jāpalaiž serviss, jāieslēdz automātiska startēšanās un jāizveido atsevišķa datubāze ar atsevišķu lietotāju tieši OpenCart vajadzībām.

sudo yum install -y mariadb-server mariadb
sudo systemctl enable --now mariadb
sudo mysql_secure_installation

Pēc sākotnējās datubāzes drošības konfigurācijas pieslēdzieties MariaDB un izveidojiet datubāzi un lietotāju. Nav ieteicams OpenCart izmantot ar root lietotāju. Atsevišķs lietotājs ar savām tiesībām ir gan drošāk, gan pārskatāmāk administrēšanā.

mysql -u root -p
CREATE DATABASE opencartdb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'opencartuser'@'localhost' IDENTIFIED BY 'StrongPasswordHere';
GRANT ALL PRIVILEGES ON opencartdb.* TO 'opencartuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;

Vēlāk instalācijas laikā šie dati būs nepieciešami OpenCart vednī. Tāpēc ir vērts tos pierakstīt drošā vietā jau tagad, nevis atcerēties no galvas pēc vairākām konfigurācijas izmaiņām.

3) PHP un web servera uzstādīšana

OpenCart darbībai nepieciešams PHP ar vairākām paplašinājumu pakotnēm. Parasti vajadzīgi php, php-mysqlnd, php-gd, php-mbstring, php-xml, php-cli, php-opcache, php-curl un php-zip. Ja izmantojat Apache, jāuzstāda arī httpd. Ja izvēlaties NGINX, attiecīgi jāuzstāda nginx un php-fpm.

sudo yum install -y httpd php php-mysqlnd php-gd php-mbstring php-xml php-cli php-opcache php-curl php-zip
sudo systemctl enable --now httpd

Ja instalējat NGINX, pieeja būs līdzīga, tikai ar citu servisu un server block konfigurāciju. Tutorial nolūkiem šeit izmantosim Apache modeli, jo tas visbiežāk sakrīt ar OpenCart noklusējuma rewrite loģiku. Pēc PHP uzstādīšanas ir vērts pārbaudīt versiju un to, vai serviss vispār strādā.

php -v
sudo systemctl status httpd

Ja izmantojat SELinux un tas ir ieslēgts enforcing režīmā, atcerieties, ka tas var ietekmēt failu piekļuvi vai datubāzes savienojumus. Daudzi lietotāji kļūdaini uzskata, ka “OpenCart nestrādā”, lai gan patiesībā nepareizi ir SELinux vai failu konteksti. Ja vidē nav pieredzes ar SELinux, vismaz jāapzinās, ka šis slānis var būt diagnostikas daļa.

4) OpenCart failu izvietošana un tiesības

Nākamais solis ir lejupielādēt OpenCart un izvietot to web direktorijā, piemēram, /var/www/html/opencart. Pēc izpakošanas ir svarīgi sakārtot failu struktūru, pārsaukt konfigurācijas paraugfailus un noteikt pareizas īpašumtiesības, lai web serveris varētu izveidot kešu, ielādēt attēlus un pabeigt instalāciju.

cd /tmp
wget https://github.com/opencart/opencart/releases/download/VERSION/opencart-VERSION.zip
unzip opencart-VERSION.zip
sudo mkdir -p /var/www/html/opencart
sudo cp -r upload/* /var/www/html/opencart/

OpenCart instalācijai nepieciešams pārsaukt config-dist.php uz config.php gan saknes direktorijā, gan admin mapē. Ja šis solis tiek aizmirsts, instalācijas vednis var neiziet korekti. Pēc tam jāpiešķir apache lietotājam pieeja failiem.

cd /var/www/html/opencart
sudo mv config-dist.php config.php
cd /var/www/html/opencart/admin
sudo mv config-dist.php config.php

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

Dažos gadījumos noteiktām mapēm, piemēram, system/storage vai image/cache, var būt vajadzīgas rakstīšanas tiesības. Šo soli nevajag darīt pārāk agresīvi ar 777 atļaujām visai direktorijai. Drošāk ir piešķirt precīzas tiesības tikai tur, kur tās tiešām vajadzīgas.

5) Apache virtual host un pārlūka instalācija

Ja izmantojat atsevišķu domēnu vai apakšdomēnu, ieteicams uzreiz izveidot virtual host konfigurāciju. Tas ļauj skaidri nošķirt OpenCart veikalu no citām vietnēm un vēlāk vienkāršāk pieslēgt SSL sertifikātu. Virtual host konfigurācijā jānorāda DocumentRoot uz /var/www/html/opencart un jāatļauj .htaccess darbība, jo OpenCart bieži izmanto pārrakstīšanas noteikumus.

sudo nano /etc/httpd/conf.d/opencart.conf

    ServerName shop.example.com
    DocumentRoot /var/www/html/opencart

    
        AllowOverride All
        Require all granted
    

    ErrorLog /var/log/httpd/opencart_error.log
    CustomLog /var/log/httpd/opencart_access.log combined

Pēc konfigurācijas saglabāšanas pārlādējiet Apache. Ja izmantojat ugunsmūri, atveriet HTTP un vēlāk HTTPS portus. Tad pārlūkā atveriet savu domēnu vai servera IP un izpildiet OpenCart instalācijas vedni. Tajā būs jānorāda datubāzes nosaukums, lietotājs, parole un administrācijas konta dati.

sudo systemctl restart httpd
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload

Pēc instalācijas OpenCart parasti lūdz izdzēst install direktoriju. Šis solis ir obligāts drošības nolūkos. Ja tas netiek izdarīts, veikals paliek nevajadzīgi atvērts instalācijas riskam vai brīdinājumiem administrācijas panelī.

sudo rm -rf /var/www/html/opencart/install

Drošība, HTTPS un uzturēšana pēc uzstādīšanas

Pēc veiksmīgas OpenCart uzstādīšanas nevajadzētu apstāties pie “veikals atveras”. Reālai lietošanai obligāti jāieslēdz HTTPS, jāpārbauda administrācijas URL, jāizmanto spēcīga parole un jāatjaunina platforma un moduļi. SSL sertifikāts interneta veikalam nav izvēles lieta — tas ir pamata drošības slānis klientu datiem, pirkumu darbplūsmai un pārlūka uzticamībai.

No veiktspējas viedokļa svarīgi ir ne tikai PHP, bet arī datubāzes optimizācija, kešs, attēlu izmēri un moduļu kvalitāte. Daudzi OpenCart veikali kļūst lēni nevis pašas platformas dēļ, bet tāpēc, ka uz tiem ir uzlikti desmitiem nekontrolētu moduļu vai augšupielādēti nesamazināti attēli. Tāpēc stabila uzstādīšana nozīmē arī disciplinētu turpmāko uzturēšanu.

Regulāras rezerves kopijas ir īpaši svarīgas. Interneta veikals satur ne tikai produktu aprakstus, bet arī klientu datus, pasūtījumu vēsturi, konfigurācijas un attēlus. Vienkāršākā pieeja ir veidot gan failu arhīvu, gan datubāzes dump. Abi kopā ir nepieciešami pilnvērtīgai atjaunošanai.

mysqldump -u opencartuser -p opencartdb > /tmp/opencartdb.sql
tar -czf /tmp/opencart-files.tar.gz /var/www/html/opencart

Ja veikals ir publiski pieejams un tiek aktīvi izmantots, dokumentējiet izmantoto OpenCart versiju, PHP versiju, datubāzes iestatījumus, domēna konfigurāciju un backup procedūru. Tas ievērojami atvieglo migrāciju, atjauninājumus un problēmu novēršanu. Labs OpenCart serveris nav tikai veiksmīga pirmā instalācija, bet vide, kuru iespējams saprotami uzturēt un droši attīstīt arī pēc vairākiem mēnešiem vai gadiem.