Vodič

Kako ručno instalirati Magento 2 na Ubuntu 24

magento

Magento 2 je jedna od najpopularnijih open-source e-commerce platformi na svetu, poznata po svojoj fleksibilnosti i mogućnosti prilagođavanja. Veliki broj online prodavnica, od manjih brendova do velikih međunarodnih lanaca, koristi Magento zbog stabilnog sistema za upravljanje proizvodima, integracije sa različitim platnim metodama i podrške za više jezika i valuta.

Posebna prednost Magento 2 u odnosu na druge platforme je njegova skalabilnost. Drugim rečima, lako može da raste zajedno sa vašim poslovanjem, bez obzira da li prodajete deset ili deset hiljada proizvoda.

U ovom tekstu proći ćemo kroz proces ručne instalacije Magento 2 na Ubuntu 24.04 serveru, koristeći Linux komande.

Napomena: Ako koristite neku drugu distribuciju (npr. Almu), pojedini koraci i komande mogu se blago razlikovati.

Važno je da napomenemo i da na mCloud-u ne morate sve instalirati sami. Umesto toga možete zakupiti lamp ili lemp server.

1. Ažuriranje Linux paketa na VPS-u

Prvi korak pre instalacije je da ažurirate pakete na svom VPS-u. To ne samo da obezbeđuje kompatibilnost sa zahtevima koje Magento postavlja, već i poboljšava bezbednost i performanse servera.

Otvorite SSH klijent (npr. PuTTY) i povežite se sa serverom:

ssh username@ip_address

Ažurirajte listu paketa:

sudo apt update

Pokrenite nadogradnju paketa:

sudo apt upgrade -y

Uklonite nepotrebne pakete:

sudo apt autoremove

2. Instalacija i podešavanje Apache servera

Magento 2 koristi web server kao osnovu za rad. Na Ubuntu-u je najčešći izbor Apache. Ipak, prikazaćemo ovde i kako da instalirate Magento 2 na Nginx-u, što je nekad takođe preporučena opcija.

Ukoliko nemate ideju koji od ova dva servera bi više odgovarao vašem projektu, prelažemo da prvo pročitate naš tekst Apache ili Nginx – Šta je bolji izbor za vaš sledeći projekat.

Nakon instalacije, potrebno je omogućiti da se pokreće pri svakom startu sistema i podesiti virtuelni host. Ukoliko niste sigurni kako da kreirate virtuelani host u Apache-u, pripremili smo vam detaljan vodič pod nazivom Kako napraviti virtualni host na WebServeru: Apache.

Instalacija Apache-a:

sudo apt install apache2 -y

Omogućavanje automatskog pokretanja:

sudo systemctl enable apache2.service

Kreiranje konfiguracije za Magento:

sudo nano /etc/apache2/sites-available/magento2.conf

Unesite sledeće (zamenite nekidomen.rs vašim domenom):

<VirtualHost *:80>

    ServerAdmin webmaster@localhost

    DocumentRoot /var/www/html

    ErrorLog ${APACHE_LOG_DIR}/error.log

    CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

<VirtualHost *:80>

    ServerName mojdomen.co.rs

    DocumentRoot /var/www/html/magento2/pub

</VirtualHost>

Aktivirajte konfiguraciju i restartujte Apache:

sudo a2ensite magento2.conf

sudo systemctl restart apache2.service

Omogućite module koje Magento koristi:

sudo a2enmod rewrite

sudo a2enmod headers

sudo systemctl restart apache2.service

Magento 2 može da se instalira i koristi na Nginx-u i to je zapravo jedno od preporučenih rešenja, naročito kada vam je važna veća brzina i efikasnost servera u poređenju sa Apache-om. Magento tim zvanično podržava Nginx, a u njihovoj dokumentaciji postoje i kompletni konfiguracioni fajlovi za Nginx.

Ipak je važno da u tom slučaju imate u vidu da Nginx ne podržava PHP nativno, pa je neophodno da PHP radi preko FastCGI-a (najčešće PHP-FPM). U praksi to znači da Nginx prosleđuje PHP skripte PHP-FPM procesu, koji ih izvršava i vraća rezultat nazad Nginx-u.

Magento 2 distribucija sadrži primer konfiguracije za Nginx u fajlu:

<magento_root>/nginx.conf.sample

Ovaj fajl je potrebno prilagoditi i ubaciti u glavnu Nginx konfiguraciju (npr. u /etc/nginx/sites-available/your-site.conf), uz odgovarajuće izmene za domen, putanju do Magento direktorijuma i PHP socket.

Primer osnovne direktive za server blok:

server {
    listen 80;
    server_name example.com;
    set $MAGE_ROOT /var/www/html/magento2;
    include $MAGE_ROOT/nginx.conf.sample;
}

Magento-ova konfiguracija koristi rewrite pravila i keš direktive optimizovane za rad platforme, tako da nije preporučljivo praviti je od nule. Najbolje je koristiti postojeći nginx.conf.sample i adaptirati.

Ukoliko niste sigurni kako se prave server blokovi u Nginx-u, na našem blogu smo vam pripremili detaljan vodič pod nazivom Kako napraviti server-blok na WebServeru: Nginx.

3. Instalacija MariaDB i kreiranje baze

Za rad Magenta potrebna je baza podataka. Koristićemo MariaDB, koja je često bolji izbor od MySQL-a po pitanju performansi.

Instalacija MariaDB:

sudo apt install mariadb-server mariadb-client -y

Pokretanje i omogućavanje servisa:

sudo systemctl restart mariadb.service

sudo systemctl enable mariadb.service

Sigurnosna konfiguracija:

sudo mysql_secure_installation

Prilikom podešavanja, najbolje je odabrati sledeće opcije: postaviti root lozinku, ukloniti anonimne korisnike, onemogućiti udaljeni root pristup, obrisati test bazu i osvežiti privilegije.

Zatim kreirajte bazu i korisnika:

CREATE DATABASE magento_db;

CREATE USER magento_user@localhost IDENTIFIED BY 'your_password';

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

FLUSH PRIVILEGES;

EXIT;

4. Instalacija PHP-a i potrebnih ekstenzija

Magento 2 radi na PHP-u i zahteva određene ekstenzije.

Instalacija:

sudo apt install php8.1 libapache2-mod-php8.1 php8.1-common php8.1-gmp php8.1-curl php8.1-soap php8.1-bcmath php8.1-intl php8.1-mbstring php8.1-xmlrpc php8.1-mysql php8.1-gd php8.1-xml php8.1-cli php8.1-zip -y

Zatim podesite php.ini:

sudo nano /etc/php/8.1/apache2/php.ini

Preporučene vrednosti:

file_uploads = On

allow_url_fopen = On

short_open_tag = On

memory_limit = 512M

upload_max_filesize = 128M

max_execution_time = 3600

Restartujte Apache:

sudo systemctl restart apache2.service

5. Instalacija Elasticsearch-a

Magento 2 koristi Elasticsearch kao pretraživač proizvoda i alat za upravljanje katalozima.

Dodajte repozitorijum i instalirajte Elasticsearch:

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elasticsearch-keyring.gpg

echo "deb [signed-by=/usr/share/keyrings/elasticsearch-keyring.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-8.x.list

sudo apt update

sudo apt install elasticsearch

Pokrenite servis:

sudo systemctl start elasticsearch.service

sudo systemctl enable elasticsearch.service

Isključite nepotrebne sigurnosne opcije u konfiguraciji:

sudo nano /etc/elasticsearch/elasticsearch.yml

Pronađite i podesite:

xpack.security.enabled: false

Proverite da li Elasticsearch radi:

curl -X GET "localhost:9200/"

6. Instalacija Composer-a

Composer je neophodan za instalaciju i upravljanje Magento paketima.

Instalacija:

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

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

composer --version

7. Pokretanje Magento instalacije

Preuzmite Magento pomoću Composer-a:

composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition /var/www/html/magento2

Unesite svoje Adobe Commerce pristupne ključeve kada se zatraži.

Zatim podesite dozvole:

sudo chown -R www-data:www-data /var/www/html/magento2/

sudo chmod -R 755 /var/www/html/magento2/

Pokrenite instalacioni skript:

php bin/magento setup:install \

  --base-url=http://mojdomen.co.rs \

  --db-host=localhost \

  --db-name=magento_db \

  --db-user=magento_user \

  --db-password=your_password \

  --admin-firstname=Admin \

  --admin-lastname=User \

  --admin-email=admin@mojdomen.co.rs \

  --admin-user=adminuser \

  --admin-password=admin123 \

  --language=en_US \

  --currency=USD \

  --timezone=America/New_York \

  --use-rewrites=1

Ako je sve prošlo kako treba, admin panel će biti dostupan na:

http://mojdomen.co.rs/admin

Naravno, zamenite mojdomen.co.rs svojim domenom.

Rešavanje problema – 404 greška na admin strani

Čest problem posle instalacije je da admin URL vraća 404 grešku. Evo nekoliko koraka da to rešite:

Proverite dozvole:

chmod -R 777 var pub generated

Ponovo kreirajte .htaccess fajlove u root i pub folderu sa sadržajem:

RewriteEngine on

RewriteCond %{REQUEST_URI} !^/pub/

RewriteCond %{REQUEST_URI} !^/setup/

RewriteCond %{REQUEST_URI} !^/update/

RewriteCond %{REQUEST_URI} !^/dev/

RewriteRule .* /pub/$0 [L]

DirectoryIndex index.php

Podesite Apache da dozvoli Override:

<Directory /var/www/>

    Options Indexes FollowSymLinks

    AllowOverride All

    Require all granted

</Directory>

Restartujte Apache:

sudo systemctl restart apache2

Očistite keš i ponovo generišite statički sadržaj:

php bin/magento cache:clean

php bin/magento setup:static-content:deploy

Zaključak

Ovde smo prošli kompletan proces instalacije Magento 2 na Ubuntu 24.04 serveru, korak po korak, uključujući podešavanje baze, PHP-a, Apache-a, Elasticsearch-a i Composer-a. Nakon završene instalacije, vaš Magento sajt je spreman za dalje podešavanje, prilagođavanje dizajna i dodavanje proizvoda.

Ukoliko ste pratili naše jednostavno uputstvo, sada imate stabilnu osnovu da dalje razvijate i skalirate svoju eCommerce prodavnicu.

Tagovi:

Ostavi komentar

Vaša adresa neće biti objavljena