Kako ručno instalirati Magento 2 na Ubuntu 24
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.
