© 2026 Basis Pengetahuan Cloudkilat. Hak Cipta Dilindungi.

|
>
>
  1. Beranda
  2. Kilat VPS
  3. Instalasi dan Konfigurasi
  4. Cara Install Magento di Ubuntu dan Debian: Panduan Lengkap 2026

Cara Install Magento di Ubuntu dan Debian: Panduan Lengkap 2026

Cara install Magento di Ubuntu dan Debian menggunakan Nginx, PHP 8.4, MariaDB, dan OpenSearch. Panduan lengkap dari konfigurasi server hingga toko siap diakses.

Waktu baca: 25 menit • Lihat progres baca di bar atas
Oleh Nizen Iskandar
Dipublikasikan 04 Juni 2026
MagentoUbuntu ServerDebianE-CommercevpsOpenSearch

cara-install-magento-open-source-ubuntu-debian

Halo, Kawan Belajar! Mau bikin toko online skala serius dengan Magento, tapi bingung cara menginstalnya di VPS? Tenang, panduan ini akan tuntun kamu dari awal sampai Magento berhasil diinstal dan bisa diakses lewat browser.

Magento Open Source adalah platform e-commerce berbasis PHP yang digunakan oleh ribuan toko online di seluruh dunia. Gratis, open source, dan sangat powerful. Panduan ini mencakup cara install Magento di Ubuntu dan Debian — dua distribusi Linux paling populer untuk server production.

ℹ️ Versi yang Digunakan
Panduan ini ditulis berdasarkan Magento Open Source 2.4.9, dirilis pada 12 Mei 2026, dengan dukungan resmi hingga Mei 2029. Panduan ini kompatibel untuk Ubuntu 22.04 / 24.04 LTS dan Debian 12 (Bookworm). Jika kamu menggunakan versi OS atau Magento yang berbeda, beberapa langkah atau perintah mungkin perlu disesuaikan.

Prasyarat

Cek Spesifikasi Server Kamu Sekarang

Sebelum membaca lebih jauh, jalankan perintah ini di VPS kamu untuk mengetahui kondisi aktual server:

# Cek total RAM
free -h

# Cek jumlah CPU core
nproc

# Cek storage tersisa
df -h /

Catat hasilnya, lalu cocokkan dengan tabel di bawah ini.

Panduan Kelayakan Server

RAM CPU Storage Status Keterangan
2 GB 1-2 core bebas 🔴 Tidak layak Magento akan sering crash saat indexing, import, atau checkout. Jangan pakai untuk production.
4 GB 2 core 20 GB SSD 🟡 Minimum Bisa berjalan, tapi perlu konfigurasi ketat. Cocok untuk staging atau toko kecil dengan traffic rendah.
8 GB 4 core 40 GB SSD 🟢 Rekomendasi Sweet spot untuk toko production dengan traffic moderat dan beberapa ekstensi.
16 GB+ 8 core+ 80 GB+ SSD 🔵 Ideal Untuk toko dengan ratusan produk, banyak ekstensi, dan traffic tinggi.
🚨 Peringatan untuk Server 2 GB RAM
Magento tidak dirancang untuk server 2 GB RAM di lingkungan production. Saat indexing katalog, Magento bisa menghabiskan seluruh RAM yang tersedia lalu crash. Jika kamu hanya punya server 2 GB, gunakan ini hanya untuk belajar dan eksperimen, bukan untuk toko yang sudah live. Pertimbangkan upgrade ke paket Kilat VPS dengan RAM minimal 4 GB sebelum melanjutkan jika tujuanmu adalah production.
⚠️ Catatan untuk Server 4 GB RAM
Server 4 GB RAM bisa digunakan untuk production ringan, tapi kamu perlu mengikuti pengaturan PHP-FPM dan konfigurasi PHP yang lebih konservatif. Panduan ini akan menunjukkan nilai yang sesuai untuk setiap kategori spek di langkah-langkah berikutnya.

Persiapan Tambahan

Selain spek server, siapkan juga:

  • Akun Adobe Commerce Marketplace untuk mendapatkan authentication keys. Buat gratis di commercemarketplace.adobe.com. Panduan mendapatkan key-nya ada di bawah.
  • Domain yang akan digunakan sebagai alamat toko.

Cara Mendapatkan Magento Authentication Keys

Authentication key adalah kredensial khusus untuk mengunduh Magento via Composer. Ini berbeda dari email dan password login akun Adobe kamu.

  1. Login, lalu buka langsung: commercemarketplace.adobe.com/customer/accessKeys
  2. Pastikan tab Magento 2 sudah aktif
  3. Klik tombol Create A New Access Key, beri nama bebas (contoh: kilat-vps)

tombol-create-access-key

Klik tombol Create A New Access Key untuk mulai membuat key baru.

pembuatan-access-key-magento

Isi nama key lalu klik OK.

  1. Key baru akan muncul di tabel. Salin keduanya dan simpan di tempat aman:

pembuatan-api-key-magento-berhasil

Public Key dan Private Key berhasil dibuat. Klik Copy di samping masing-masing key.

Kolom di tabel Fungsi saat instalasi
Public Key Diisi sebagai Username di prompt Composer
Private Key Diisi sebagai Password di prompt Composer
🚨 Jangan Ketik Manual
Public Key dan Private Key sangat panjang dan mudah salah. Gunakan tombol salin yang tersedia di halaman, lalu paste langsung ke terminal.

Langkah 1: Buat User Non-Root dengan Akses Sudo

🚨 Jangan Jalankan Seluruh Instalasi sebagai Root
Menjalankan semua perintah sebagai root adalah kebiasaan yang berbahaya di production. Tidak ada lapisan pengaman: satu perintah salah ketik bisa menghapus file sistem secara permanen tanpa konfirmasi. Buat user tersendiri dengan akses sudo sebagai gantinya. User ini bisa menjalankan perintah administratif saat dibutuhkan, tapi tidak beroperasi sebagai root sepanjang waktu.

Langkah ini dijalankan sebagai root karena ini satu-satunya saat kamu memang perlu akses root langsung. Setelah selesai, semua langkah berikutnya dijalankan sebagai user baru.

Khusus Debian: Install sudo terlebih dahulu

Debian tidak selalu menyertakan sudo secara bawaan. Pastikan sudah terinstall:

apt install -y sudo

Ubuntu sudah menyertakan sudo secara bawaan, jadi langkah ini bisa dilewati.

Buat user baru

Di panduan ini user dinamai magento, tapi kamu bisa gunakan nama apapun:

adduser magento

Kamu akan diminta mengisi password dan beberapa informasi identitas. Password wajib diisi, sisanya bisa dikosongkan dengan menekan Enter:

New password:           ← isi password kuat, tidak terlihat di layar
Retype new password:    ← ketik ulang
Full Name []:           ← Enter saja
Room Number []:         ← Enter saja
Work Phone []:          ← Enter saja
Home Phone []:          ← Enter saja
Other []:               ← Enter saja
Is the information correct? [Y/n]  ← ketik Y

Tambahkan user ke grup sudo

usermod -aG sudo magento

Verifikasi dan pindah ke user baru

su - magento
sudo whoami

Jika output perintah sudo whoami adalah root, user magento sudah punya akses sudo dengan benar.

💡 Untuk sesi SSH berikutnya
Mulai sekarang, login ke VPS langsung sebagai user magento, bukan root. Semua perintah di langkah-langkah berikutnya sudah menggunakan prefix sudo di mana diperlukan, jadi tidak ada yang perlu diubah.

Langkah 2: Update Sistem

Langkah pertama selalu sama: pastikan paket-paket di server kamu sudah dalam kondisi terbaru.

sudo apt update && sudo apt upgrade -y

Setelah selesai, install beberapa paket pendukung yang akan dibutuhkan sepanjang proses instalasi:

sudo apt install -y curl wget gnupg2 ca-certificates lsb-release apt-transport-https software-properties-common unzip

Langkah 3: Buka Port HTTP dan HTTPS

⚠️ Khusus Pengguna Kilat VPS
Secara bawaan, Kilat VPS memblokir semua port kecuali SSH (port 22) di level sistem operasi. Ini bukan pemblokiran dari sisi ISP, jadi kamu tidak perlu menghubungi pihak mana pun untuk membukanya. Cukup aktifkan port yang dibutuhkan langsung dari VPS kamu menggunakan UFW. Tanpa langkah ini, toko Magento kamu tidak akan bisa diakses dari browser meski Nginx sudah aktif.

Install dan aktifkan UFW (Uncomplicated Firewall). Jika ini pertama kalinya kamu menggunakan firewall di VPS, baca panduan konfigurasi UFW di VPS untuk pemahaman yang lebih lengkap:

sudo apt install -y ufw

Pastikan SSH tetap diizinkan agar kamu tidak terkunci dari server sendiri:

sudo ufw allow ssh

Buka port untuk akses web:

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

Aktifkan UFW:

sudo ufw enable

Verifikasi status UFW setelah diaktifkan:

sudo ufw status

ufw-status-magento

Gambar 1: Output ufw status yang menampilkan port 22, 80, dan 443 dalam status ALLOW.

Output yang benar akan menampilkan ketiga port (22, 80, dan 443) dengan status ALLOW.


Langkah 4: Install Nginx

Magento berjalan lebih optimal di Nginx dibanding Apache, terutama untuk menangani traffic tinggi. Install Nginx dengan perintah berikut:

sudo apt install -y nginx

Aktifkan Nginx agar otomatis berjalan saat server restart:

sudo systemctl enable --now nginx

Verifikasi Nginx sudah aktif:

sudo systemctl status nginx

Langkah 5: Install PHP 8.4

Magento 2.4.9 mendukung PHP 8.3, 8.4, dan 8.5. PHP 8.4 adalah versi yang direkomendasikan untuk instalasi baru di production.

Repositori bawaan Ubuntu dan Debian biasanya tidak menyertakan PHP 8.4 secara langsung. Cara menambahkan repositorinya sedikit berbeda tergantung OS yang kamu pakai.

ℹ️ Perbedaan Ubuntu vs Debian
Ubuntu menggunakan Launchpad PPA milik Ondrej Surý, sedangkan Debian menggunakan repositori APT langsung dari packages.sury.org. Hasilnya sama, caranya sedikit berbeda. Ikuti sub-langkah yang sesuai dengan OS kamu, lalu lanjutkan ke perintah instalasi yang sama di bawahnya.

Untuk Ubuntu (22.04 / 24.04)

Tambahkan PPA Ondrej Surý:

sudo add-apt-repository ppa:ondrej/php -y
sudo apt update

Untuk Debian 12 (Bookworm)

Import GPG key dan tambahkan repositori secara manual:

curl -sSLo /tmp/debsuryorg-archive-keyring.deb https://packages.sury.org/debsuryorg-archive-keyring.deb
sudo dpkg -i /tmp/debsuryorg-archive-keyring.deb
echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/php.list
sudo apt update

Install PHP 8.4 dan Ekstensi yang Diperlukan (Ubuntu dan Debian)

Setelah repositori ditambahkan, jalankan perintah berikut untuk menginstall PHP beserta semua ekstensi yang diwajibkan Magento:

sudo apt install -y php8.4-fpm php8.4-common php8.4-cli \
  php8.4-bcmath php8.4-curl \
  php8.4-gd php8.4-intl php8.4-mbstring \
  php8.4-mysql php8.4-xml \
  php8.4-soap php8.4-xsl php8.4-zip
💡 Catatan Package PHP 8.4
Di PHP 8.4, beberapa ekstensi sudah digabung ke dalam package induk: ctype, iconv, pdo, dan sockets sudah masuk ke php8.4-common, sedangkan dom, simplexml, xmlreader, dan xmlwriter bundled ke php8.4-xml. OpenSSL dikompilasi langsung ke binary PHP, jadi tidak ada package php8.4-openssl yang perlu diinstall terpisah.

Sesuaikan konfigurasi PHP untuk kebutuhan Magento. Buka file konfigurasi PHP-FPM:

sudo nano /etc/php/8.4/fpm/php.ini

Sesuaikan konfigurasi PHP untuk kebutuhan Magento. Ada dua file yang perlu diubah dengan nilai yang berbeda.

File 1: PHP-FPM (dipakai untuk request web dari browser)

sudo nano /etc/php/8.4/fpm/php.ini

File 2: PHP CLI (dipakai saat menjalankan perintah bin/magento di terminal)

sudo nano /etc/php/8.4/cli/php.ini

Cari dan ubah nilai berikut di masing-masing file, sesuai spek server kamu:

⚠️ Dua file, dua pengaturan berbeda
Nilai max_execution_time hanya perlu diubah di php-fpm/php.ini. Untuk php-cli/php.ini, direktif ini tidak berlaku sama sekali karena PHP CLI secara built-in mengabaikannya, berapapun nilainya. Proses CLI seperti bin/magento setup:install dan indexer:reindex selalu berjalan tanpa batas waktu secara otomatis, tanpa perlu konfigurasi tambahan.

Untuk server 4 GB RAM (minimum production):

Direktif php-fpm/php.ini php-cli/php.ini
memory_limit 512M 756M
max_execution_time 600 (tidak perlu diubah)
zlib.output_compression On Off

Untuk server 8 GB RAM (rekomendasi):

Direktif php-fpm/php.ini php-cli/php.ini
memory_limit 756M 2G
max_execution_time 600 (tidak perlu diubah)
zlib.output_compression On Off

Untuk server 16 GB RAM ke atas:

Direktif php-fpm/php.ini php-cli/php.ini
memory_limit 2G 4G
max_execution_time 600 (tidak perlu diubah)
zlib.output_compression On Off
💡 Penjelasan tiap nilai
memory_limit: Batas RAM per proses PHP. Terlalu kecil menyebabkan error "Allowed memory size exhausted" saat indexing atau checkout. Nilai di php-cli sengaja lebih besar karena operasi seperti install dan import produk bisa sangat boros memori.

max_execution_time: Berapa detik maksimal satu proses PHP-FPM (web) boleh berjalan. Nilai 600 (10 menit) sudah lebih dari cukup untuk request web, termasuk checkout paling kompleks sekalipun. Untuk PHP CLI, direktif ini diabaikan sepenuhnya oleh PHP, jadi tidak perlu diubah. Proses panjang seperti setup:install dan indexer:reindex otomatis berjalan tanpa batas waktu di CLI.

zlib.output_compression: Mengaktifkan kompresi output di level PHP. Dimatikan di CLI karena tidak relevan untuk proses terminal.

Konfigurasi PHP-FPM Worker

Selain php.ini, kamu perlu menyesuaikan jumlah worker PHP-FPM sesuai RAM server. Worker adalah proses yang menangani request masuk secara paralel. Terlalu banyak worker di server kecil bisa menghabiskan RAM dan justru membuat server tidak responsif.

sudo nano /etc/php/8.4/fpm/pool.d/www.conf

Cari bagian pm dan sesuaikan dengan spek server kamu:

Untuk server 4 GB RAM:

pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3

Untuk server 8 GB RAM:

pm = dynamic
pm.max_children = 10
pm.start_servers = 4
pm.min_spare_servers = 2
pm.max_spare_servers = 6

Untuk server 16 GB RAM ke atas:

pm = dynamic
pm.max_children = 20
pm.start_servers = 6
pm.min_spare_servers = 4
pm.max_spare_servers = 10

Simpan file, lalu restart PHP-FPM:

sudo systemctl restart php8.4-fpm

Langkah 6: Install MariaDB 11.4

Magento 2.4.9 mendukung MySQL 8.4 dan MariaDB 11.4. Panduan ini menggunakan MariaDB 11.4 karena sepenuhnya kompatibel dengan Magento, berlisensi GPL murni, dan instalasinya lebih mulus tanpa kendala GPG key yang kadang muncul pada repo Oracle MySQL.

ℹ️ MySQL vs MariaDB: mana yang lebih baik untuk Magento?
Untuk kebutuhan Magento standar, perbedaan performa antara MySQL 8.4 dan MariaDB 11.4 tidak akan terasa. Keduanya didukung resmi oleh Adobe. MariaDB merupakan fork komunitas dari MySQL asli dan berkembang secara independen dari Oracle. Jika kamu memilih MySQL karena alasan tertentu, panduan instalasi berbeda dan pastikan menggunakan versi 8.4 LTS.

Tambahkan repositori resmi MariaDB untuk memastikan versi 11.4 yang terinstall (bukan versi lama dari repo bawaan Ubuntu/Debian):

curl -LsS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | \
  sudo bash -s -- --mariadb-server-version="mariadb-11.4"
sudo apt update

Install MariaDB:

sudo apt install -y mariadb-server

Aktifkan MariaDB agar berjalan otomatis saat server restart:

sudo systemctl enable --now mariadb

Verifikasi versi yang terinstall:

mariadb --version

Pastikan output menampilkan versi 11.4.x.

Jalankan skrip keamanan untuk mengamankan instalasi:

sudo mariadb-secure-installation

Skrip ini akan mengajukan beberapa pertanyaan secara interaktif. Berikut panduan tiap prompt-nya:

Prompt 1: Password root saat ini

Enter current password for root (enter for none):

Tekan Enter saja. Instalasi baru belum punya password root.

Prompt 2: Unix socket authentication

Switch to unix_socket authentication [Y/n]

Ketik n, lalu Enter. Unix socket authentication membuat login hanya bisa dilakukan dari user root sistem operasi tanpa password. Lebih baik pakai password eksplisit agar kredensial lebih jelas dan konsisten.

Prompt 3: Set password root

Change the root password? [Y/n]

Ketik Y, lalu Enter. Masukkan password kuat untuk akun root MariaDB dan konfirmasi. Simpan password ini di password manager karena dibutuhkan untuk login manual ke MariaDB sebagai root.

Prompt 4: Hapus user anonim

Remove anonymous users? [Y/n]

Ketik Y, lalu Enter. User anonim memungkinkan siapa saja login tanpa password, tidak dibutuhkan dan harus dihapus.

Prompt 5: Larang login root dari jaringan

Disallow root login remotely? [Y/n]

Ketik Y, lalu Enter. Root MariaDB tidak boleh diakses dari luar server. Magento akan menggunakan user tersendiri, bukan root.

Prompt 6: Hapus database test

Remove test database and access to it? [Y/n]

Ketik Y, lalu Enter. Database test bawaan instalasi tidak dibutuhkan.

Prompt 7: Reload privilege table

Reload privilege tables now? [Y/n]

Ketik Y, lalu Enter. Ini menerapkan semua perubahan yang baru saja dibuat. Jika semua berhasil, akan muncul pesan All done!.

Buat Database dan User untuk Magento

Login ke MariaDB. Gunakan perintah mariadb (bukan mysql):

sudo mariadb -u root

Jalankan perintah berikut di dalam prompt MariaDB. Ganti PasswordKuat123! dengan password yang lebih aman:

CREATE DATABASE magento CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'magento'@'localhost' IDENTIFIED BY 'PasswordKuat123!';
GRANT ALL PRIVILEGES ON magento.* TO 'magento'@'localhost';
FLUSH PRIVILEGES;
EXIT;

Langkah 7: Install OpenSearch 3.x

Magento 2.4 tidak punya fitur pencarian bawaan berbasis database. OpenSearch adalah search engine yang wajib diinstall agar katalog produk bisa dicari oleh pengunjung toko.

Tambahkan repositori OpenSearch:

sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://artifacts.opensearch.org/publickeys/opensearch-release.pgp | \
  sudo gpg --dearmor --batch --yes -o /etc/apt/keyrings/opensearch-release-keyring

echo "deb [signed-by=/etc/apt/keyrings/opensearch-release-keyring] \
https://artifacts.opensearch.org/releases/bundle/opensearch/3.x/apt stable main" | \
  sudo tee /etc/apt/sources.list.d/opensearch-3.x.list

sudo apt update

Install OpenSearch. Ganti PasswordOpenSearch123! dengan password admin yang kuat (minimal 16 karakter, kombinasi huruf besar, kecil, angka, dan simbol):

sudo env OPENSEARCH_INITIAL_ADMIN_PASSWORD='PasswordOpenSearch123!' \
  apt install -y opensearch
⚠️ Catat Password Admin OpenSearch
Password yang kamu set di sini akan digunakan saat menghubungkan Magento ke OpenSearch di langkah instalasi nanti. Simpan baik-baik di password manager kamu.

Aktifkan dan jalankan OpenSearch:

sudo systemctl enable --now opensearch

Tunggu sekitar 60 detik untuk proses inisialisasi pertama, lalu nonaktifkan TLS di layer HTTP. OpenSearch 3.x mengaktifkan HTTPS secara default, tapi karena layanan ini hanya bisa diakses dari localhost, HTTP tanpa enkripsi sudah cukup aman dan diperlukan agar Magento bisa konek:

sudo nano /etc/opensearch/opensearch.yml

Cari baris berikut dan ubah nilainya dari true menjadi false:

plugins.security.ssl.http.enabled: false

Simpan, lalu restart OpenSearch untuk menerapkan perubahan:

sudo systemctl restart opensearch

Tunggu lagi sekitar 60 detik, lalu verifikasi OpenSearch sudah bisa diakses via HTTP:

curl -u admin:'PasswordOpenSearch123!' http://localhost:9200

opensearch-verify-output

Gambar 2: Output verifikasi OpenSearch yang menampilkan informasi versi dan nama cluster.

Jika muncul respons JSON dengan informasi versi OpenSearch, konfigurasi berhasil.

ℹ️ Kenapa HTTP, bukan HTTPS?
OpenSearch 3.x mengaktifkan HTTPS secara default, tapi Magento installer tidak mendukung parameter SSL untuk koneksi OpenSearch via CLI. Karena OpenSearch hanya mendengarkan di localhost dan tidak bisa diakses dari jaringan luar, menonaktifkan TLS di layer HTTP tetap aman. Autentikasi username dan password masih aktif.

Langkah 8: Install Composer

Composer adalah dependency manager PHP yang digunakan sebagai metode instalasi resmi Magento.

curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer

Verifikasi Composer berhasil diinstall:

composer --version

Pastikan versi yang muncul adalah Composer 2.x.


Langkah 9: Download Magento Open Source

Buat direktori untuk Magento dan atur kepemilikannya ke user www-data (user yang dijalankan Nginx):

sudo mkdir -p /var/www/magento
sudo chown -R $USER:www-data /var/www/magento

Pindah ke direktori tersebut dan download Magento menggunakan Composer:

cd /var/www/magento
composer create-project \
  --repository-url=https://repo.magento.com/ \
  magento/project-community-edition=2.4.9 \
  .

Composer akan meminta authentication key. Ini bukan email dan password akun Adobe kamu, melainkan key khusus yang sudah kamu buat di langkah Prasyarat:

Username: ← paste Public Key
Password: ← paste Private Key (tidak terlihat di layar saat diketik, ini normal)

Setelah berhasil, Composer akan bertanya apakah credential ingin disimpan:

Do you want to store credentials for repo.magento.com in /home/magento/.composer/auth.json ? [Yn]

Ketik Y agar kamu tidak perlu memasukkan key lagi saat install ekstensi atau update Magento di kemudian hari.

pengisian-publik-dan-private-key

Public Key diisi sebagai Username, Private Key sebagai Password. Composer langsung mulai mengunduh setelah autentikasi berhasil.

ℹ️ Proses download memakan waktu
Composer akan mengunduh ratusan paket dependensi Magento. Proses ini biasanya memakan waktu 5–20 menit tergantung kecepatan koneksi server. Biarkan berjalan sampai selesai dan jangan tutup terminal.

Langkah 10: Set Permission File

Setelah download selesai, atur permission dan kepemilikan file agar user sistem magento dan web server www-data sama-sama bisa membaca dan menulis ke direktori yang dibutuhkan:

cd /var/www/magento
sudo chown -R magento:www-data /var/www/magento
find var generated vendor pub/static pub/media app/etc -type f -exec chmod g+w {} +
find var generated vendor pub/static pub/media app/etc -type d -exec chmod g+ws {} +
chmod u+x bin/magento

Verifikasi kepemilikan direktori kritis sudah benar:

ls -la /var/www/magento | grep -E "generated|var|pub|vendor"

Output yang benar menampilkan magento www-data sebagai owner dan group di semua direktori tersebut.

ℹ️ Kenapa langkah ini penting?
Direktori generated/, var/, dan pub/ adalah direktori yang paling sering ditulis oleh Magento saat runtime: untuk cache, file generated code, static assets, dan log. Jika kepemilikannya salah, perintah bin/magento cache:flush akan gagal dengan error "Permission denied" dan toko tidak bisa berjalan normal.

Langkah 11: Konfigurasi Nginx untuk Magento

Magento sudah menyertakan file konfigurasi Nginx contoh (nginx.conf.sample) di direktori instalasinya. Buat file server block untuk situs Magento:

sudo nano /etc/nginx/sites-available/magento

Isi dengan konfigurasi berikut. Ganti domain-kamu.com dengan domain atau IP VPS kamu:

upstream fastcgi_backend {
    server unix:/run/php/php8.4-fpm.sock;
}

server {
    listen 80;
    server_name domain-kamu.com;
    set $MAGE_ROOT /var/www/magento;
    include /var/www/magento/nginx.conf.sample;
}
ℹ️ Kenapa path include harus absolut?
Direktif include diproses saat Nginx startup, sebelum variabel apapun tersedia. Jika ditulis include $MAGE_ROOT/nginx.conf.sample, Nginx akan membaca path-nya secara literal dan gagal. Baris set $MAGE_ROOT tetap diperlukan karena file nginx.conf.sample di dalamnya masih menggunakan variabel tersebut.

Aktifkan konfigurasi dan nonaktifkan situs default Nginx:

sudo ln -s /etc/nginx/sites-available/magento /etc/nginx/sites-enabled/
sudo rm -f /etc/nginx/sites-enabled/default

Uji konfigurasi Nginx:

sudo nginx -t

Jika hasilnya syntax is ok dan test is successful, muat ulang Nginx:

sudo systemctl reload nginx

Langkah 12: Install Magento via CLI

🚨 Gunakan Email yang Benar-Benar Aktif
Parameter --admin-email harus diisi dengan alamat email yang benar-benar kamu miliki dan bisa menerima pesan. Magento 2.4.x mengaktifkan Two-Factor Authentication (2FA) secara default, dan saat pertama kali login ke admin panel, Magento akan mengirimkan email berisi tautan setup 2FA ke alamat ini. Jika emailnya palsu atau salah, email tidak akan terkirim dan kamu tidak akan bisa masuk ke halaman admin sama sekali.

Sekarang saatnya menjalankan proses instalasi Magento yang sesungguhnya. Jalankan perintah berikut. Sesuaikan semua nilai yang ditandai dengan kurung kotak:

cd /var/www/magento
bin/magento setup:install \
  --base-url=http://domain-kamu.com/ \
  --db-host=localhost \
  --db-name=magento \
  --db-user=magento \
  --db-password='PasswordKuat123!' \
  --admin-firstname=Admin \
  --admin-lastname=User \
  --admin-email=admin@domain-kamu.com \
  --admin-user=admin \
  --admin-password='AdminPassword@2026' \
  --language=id_ID \
  --currency=IDR \
  --timezone=Asia/Jakarta \
  --use-rewrites=1 \
  --search-engine=opensearch \
  --opensearch-host=localhost \
  --opensearch-port=9200 \
  --opensearch-index-prefix=magento2 \
  --opensearch-enable-auth=1 \
  --opensearch-username=admin \
  --opensearch-password='PasswordOpenSearch123!'
🚨 Simpan URI Admin Panel
Setelah instalasi selesai, Magento akan menampilkan URI unik untuk halaman admin, contoh: http://domain-kamu.com/admin_xyz123. Catat URI ini segera karena ini satu-satunya cara mengakses halaman admin. Jika lupa, kamu bisa melihatnya kembali dengan perintah bin/magento info:adminuri.

Proses instalasi memakan waktu sekitar 5-15 menit.

magento-setup-install-progress

Output sukses instalasi Magento di terminal. Catat URI admin yang muncul di baris terakhir.


Langkah 13: Konfigurasi Cron Job

Magento sangat bergantung pada cron job untuk berbagai proses otomatis: indexing, pengiriman email, update harga, dan lainnya. Tanpa ini, banyak fitur yang tidak akan berjalan normal.

cd /var/www/magento
bin/magento cron:install

Verifikasi cron berhasil ditambahkan:

crontab -l

Kamu akan melihat dua entri cron yang ditambahkan otomatis oleh Magento.


Langkah 14: Aktifkan Mode Production dan Generate Static Files

Untuk performa optimal, ubah Magento ke production mode:

cd /var/www/magento
bin/magento deploy:mode:set production
💡 Catatan tentang Mode
Mode developer cocok untuk saat kamu sedang mengembangkan atau debug toko. Mode production direkomendasikan untuk toko yang sudah live karena menonaktifkan error reporting ke browser dan mengoptimalkan performa. Gunakan bin/magento deploy:mode:set developer saat perlu debugging.

Langkah 15: Verifikasi Instalasi

Buka browser dan akses http://domain-kamu.com. Jika tampil halaman utama Magento (meski masih kosong tanpa produk), instalasi berhasil.

Akses halaman admin dengan URI yang tadi dicatat:

http://domain-kamu.com/admin_[kode-unikmu]

akses-halaman-admin-magento

Halaman login admin Magento. Gunakan username dan password yang diset saat setup:install.

Login dengan username dan password admin yang kamu set di Langkah 12. Jika berhasil, kamu akan masuk ke dashboard admin Magento.

tampilan-dasbor-admin-magento

Dashboard admin Magento berhasil diakses. Toko siap dikonfigurasi.

Kembali ke browser dan akses URL utama toko kamu untuk memastikan tampilan depan juga berjalan normal.

tampilan-depan-magento-store

Tampilan depan toko Magento dengan tema Luma bawaan. Instalasi berhasil.


Troubleshooting

Toko tidak bisa diakses dari browser (connection refused / timeout)

Kemungkinan besar port 80 belum terbuka. Jalankan ulang:

sudo ufw allow 80/tcp
sudo ufw reload
sudo ufw status

Pastikan port 80 muncul dengan status ALLOW.

Error "catalog search" atau produk tidak muncul di pencarian

OpenSearch mungkin belum selesai startup atau koneksinya gagal. Cek status:

sudo systemctl status opensearch
curl -u admin:'PasswordOpenSearch123!' http://localhost:9200

Jika OpenSearch belum aktif, jalankan:

sudo systemctl start opensearch

Lalu jalankan ulang indexing Magento:

cd /var/www/magento
bin/magento indexer:reindex

Error 502 Bad Gateway

Nginx tidak bisa berkomunikasi dengan PHP-FPM. Pastikan PHP-FPM aktif dan socket-nya sesuai:

sudo systemctl status php8.4-fpm
sudo systemctl restart php8.4-fpm

Admin panel menampilkan "Failed to send the message" saat pertama login

Ini adalah masalah Two-Factor Authentication (2FA). Magento 2.4.x mengaktifkan 2FA secara default dan mengirim email berisi tautan setup ke alamat admin saat pertama kali login. Jika email yang diisi saat setup:install palsu atau tidak aktif, pengiriman gagal dan kamu tidak bisa masuk ke admin sama sekali.

Nonaktifkan 2FA sementara via CLI. Perlu menonaktifkan dua modul sekaligus karena ada dependensi antar keduanya:

cd /var/www/magento
bin/magento module:disable Magento_AdminAdobeImsTwoFactorAuth Magento_TwoFactorAuth
bin/magento cache:flush

cara-menonaktifkan-2fa-pada-admin-magento

Output sukses penonaktifan dua modul 2FA. Cache cleared successfully menandakan proses berhasil.

Setelah berhasil masuk ke admin panel, segera perbarui email admin ke alamat yang valid di Stores → Configuration → Advanced → Admin → Administrator → Email. Lalu aktifkan kembali 2FA:

bin/magento module:enable Magento_TwoFactorAuth Magento_AdminAdobeImsTwoFactorAuth
bin/magento cache:flush

Kesimpulan

Selamat, Kawan Belajar! Magento Open Source versi 2.4.9 kamu sekarang sudah berhasil diinstal!

Langkah selanjutnya yang bisa kamu eksplorasi:

  • Setup SSL: Setup SSL dengan Let's Encrypt untuk mengamankan toko dengan HTTPS menggunakan Certbot
  • Konfigurasi Varnish: Tingkatkan performa dengan full-page cache
  • Install tema: Ganti tampilan default Luma dengan tema yang lebih modern
  • Import produk: Mulai isi katalog toko kamu via admin panel atau CSV import

Jika ada kendala selama proses instalasi, tim CloudKilat siap membantu. Selamat membangun toko online kamu!

Butuh bantuan lebih lanjut?

Jangan ragu untuk menghubungi tim support kami jika Anda memiliki pertanyaan atau masalah terkait layanan CloudKilat.

Hubungi Kami