All Products
Search
Document Center

Elastic Compute Service:Membangun website e-dagang Magento 2 pada instans Ubuntu

Last Updated:May 16, 2026

Deploy Magento 2, platform e-dagang open-source, pada Instance ECS yang menjalankan Ubuntu dengan NGINX, MySQL, OpenSearch, dan Composer.

Catatan

Lihat situs resmi Adobe Commerce untuk informasi selengkapnya mengenai Magento 2.

Latar Belakang

Topik ini menggunakan Instance ECS dengan konfigurasi berikut:

  • Tipe instans: ecs.c7.large

  • Sistem operasi: gambar publik Ubuntu 22.04 64-bit

  • CPU: 2 vCPU

  • Memori: 4 GiB

    Catatan

    Magento 2 memerlukan setidaknya 4 GiB memori.

Versi perangkat lunak berikut diperlukan sesuai dokumentasi resmi Magento 2:

  • Composer 2.7: Mengelola codebase Magento 2 dan dependensi pihak ketiga.

  • OpenSearch 2.12: Menyediakan pencarian produk, termasuk penyaringan dan pengurutan relevansi.

  • MySQL 8.0: Menyimpan data bisnis seperti produk, pesanan, dan catatan pelanggan.

  • PHP 8.3: Menjalankan logika aplikasi dan berkomunikasi dengan database serta layanan lainnya.

  • NGINX 1.24: Melayani file statis dan melakukan reverse-proxy permintaan dinamis ke PHP-FPM.

Prasyarat

  1. Dapatkan kunci privat Anda dari Adobe Commerce.

    image

  2. Alamat IP publik secara otomatis ditetapkan ke Instance ECS. Atau, alamat IP elastis (EIP) dikaitkan dengan Instance ECS. Untuk instruksi cara mengaktifkan bandwidth publik, lihat Aktifkan bandwidth publik.

  3. Port 22 terbuka dalam aturan grup keamanan masuk. Lihat Tambahkan aturan grup keamanan.

  4. Docker diinstal pada Instance ECS. Lihat Instal Docker.

  5. Stack LNMP (Linux, NGINX, MySQL, dan PHP) telah di-deploy. Lihat Deploy stack LNMP.

    Catatan
    • Versi yang diperlukan: NGINX 1.24, MySQL 8.0, dan PHP 8.3.

    • Sesuaikan nomor versi pada langkah-langkah berikut.

Prosedur

Langkah 1: Instal ekstensi PHP

  1. Instal paket inti PHP dan ekstensinya.

    1. Instal paket inti PHP beserta ekstensi bawaannya.

      sudo apt-get install php8.3-cli php8.3-common php8.3-fpm php8.3-mysql php8.3-zip php8.3-gd php8.3-curl php8.3-intl php8.3-mbstring php8.3-soap php8.3-xml php8.3-bcmath php8.3-sqlite3 php8.3-opcache
    2. Instal ekstensi tambahan.

      sudo apt-get install php8.3-bcmath php8.3-curl php8.3-gd php8.3-intl php8.3-mbstring php8.3-soap php8.3-xml php8.3-zip php8.3-sqlite3
    3. Restart NGINX untuk menerapkan perubahan.

      sudo systemctl restart nginx  
  2. Konfigurasikan php.ini.

    1. Buka file php.ini.

      sudo vim /etc/php/8.3/fpm/php.ini
      sudo vim /etc/php/8.3/cli/php.ini
    2. Perbarui pengaturan berikut, lalu simpan dan tutup file tersebut.

      memory_limit = 2G
      max_execution_time = 1800
      zlib.output_compression = On
    3. Restart PHP-FPM.

      sudo systemctl restart php8.3-fpm

Langkah 2: Buat database Magento 2

  1. Sambungkan ke MySQL.

    mysql -u root -p

    Masukkan password root MySQL saat diminta.

  2. Buat dan konfigurasikan database. Pada contoh ini, nama database dan username keduanya magento.

    CREATE DATABASE magento;
    CREATE USER 'magento'@'localhost' IDENTIFIED BY 'magento';
    GRANT ALL PRIVILEGES ON magento.* TO 'magento'@'localhost';
    FLUSH PRIVILEGES;
    EXIT;
  3. Verifikasi database.

    mysql -u magento -p
    Catatan

    Jika monitor MySQL muncul, berarti database berhasil dibuat. Jika terjadi error, jalankan kembali pernyataan sebelumnya.

Langkah 3: Unduh dan instal OpenSearch

  1. Sebelum menginstal OpenSearch dengan Docker, selesaikan tugas-tugas berikut:

    1. Nonaktifkan memory paging dan swapping untuk meningkatkan performa.

      sudo swapoff -a
    2. Tingkatkan batas memory map untuk OpenSearch.

      1. Buka sysctl.conf.

        sudo vi /etc/sysctl.conf
      2. Tambahkan vm.max_map_count=262144.

      3. Verifikasi konfigurasi.

        sudo sysctl -p
        cat /proc/sys/vm/max_map_count

        image

  2. Jalankan OpenSearch dalam kontainer Docker.

    1. Ambil image OpenSearch.

      sudo docker pull opensearchproject/opensearch:2
    2. Deploy OpenSearch dalam kontainer untuk memverifikasi Docker berfungsi dengan baik.

      sudo docker run -d \
       -p 9200:9200 \
       -p 9600:9600 \
       -e "discovery.type=single-node" \
       -e "OPENSEARCH_INITIAL_ADMIN_PASSWORD=admin" \
       -e "plugins.security.disabled=true" \
       opensearchproject/opensearch:latest
      Catatan

      Contoh ini menonaktifkan SSL pada layer HTTP dan Transport untuk pengujian dengan mengatur plugins.security.disabled menjadi true.

    3. Kirim permintaan ke port 9200. Kredensial default adalah admin/admin.

      sudo curl -k http://localhost:9200 -ku admin:admin

      Output yang diharapkan:

      {
        "name" : "a937e018****",
        "cluster_name" : "docker-cluster",
        "cluster_uuid" : "GLAjAG6bTeWE****_d-CLw",
        "version" : {
          "distribution" : "opensearch",
          "number" : <version>,
          "build_type" : <build-type>,
          "build_hash" : <build-hash>,
          "build_date" : <build-date>,
          "build_snapshot" : false,
          "lucene_version" : <lucene-version>,
          "minimum_wire_compatibility_version" : "7.10.0",
          "minimum_index_compatibility_version" : "7.0.0"
        },
        "tagline" : "The OpenSearch Project: https://opensearch.org/"
      }
  1. Daftar kontainer yang sedang berjalan dan salin ID kontainer OpenSearch.

    sudo docker container ls
  2. Konfigurasikan NGINX sebagai proxy untuk OpenSearch.

    1. Verifikasi bahwa /etc/nginx/nginx.conf berisi include /etc/nginx/conf.d/*.conf;.

      vi /etc/nginx/nginx.conf

      image

    2. Buat konfigurasi proxy.

      1. Buat file konfigurasi berikut.

        sudo vim /etc/nginx/conf.d/magento_es_auth.conf
        server {
           listen 8080;
           location /_cluster/health {
              proxy_pass http://localhost:9200/_cluster/health;
           }
        }
      2. Restart NGINX.

        sudo service nginx restart
      3. Periksa apakah proxy berfungsi:

        sudo curl -u admin:admin -i http://localhost:8080/_cluster/health?pretty

        Output yang diharapkan:

        image

Langkah 4: Unduh dan instal Composer

  1. Instal alat dekompresi.

    Composer memerlukan unzip atau p7zip untuk dekompresi.

    sudo apt-get install unzip
    sudo apt-get install p7zip-full
  2. Instal Composer:

    php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
    php -r "if (hash_file('sha384', 'composer-setup.php') === 'dac665fdc30fdd8ec78b38b9800061b4150413ff2e3b6f88543c636f7cd84f6db9189d43a81e5503cda447da73c7e5b6') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
    php composer-setup.php
    php -r "unlink('composer-setup.php');"
  3. Pindahkan composer.phar ke direktori PATH agar dapat diakses secara global.

    sudo mv composer.phar /usr/local/bin/composer
  4. Verifikasi versi Composer.

    composer --version

Langkah 5: Unduh dan instal Magento 2

  1. Buat proyek Composer dengan pasangan kunci akses yang diperoleh dari Adobe Commerce. Nama proyek adalah magento.

    cd /var/www/html/
    sudo composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition magento
  2. Masukkan kunci autentikasi Anda saat diminta.

    Catatan
    • Kunci autentikasi adalah kunci privat yang diperoleh pada bagian Prasyarat.

    • Proses unduhan dapat memakan waktu 5 hingga 10 menit.

    image

  3. Atur izin file.

    cd /var/www/html/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 {} +
    chown -R :www-data .
    chmod u+x bin/magento
  4. Instal Magento 2.

    Instal Adobe Commerce dari command line. Pada contoh ini, db-host adalah localhost, dan db-name, db-user, dan db-password semuanya magento.

    sudo bin/magento setup:install \
      --base-url=http://196.****.*.1/ \ # Alamat IP publik Instance ECS
      --db-host=localhost \ # Host database
      --db-name=magento \  # Nama database
      --db-user=magento \ # Username database
      --db-password=magento \ # Password database
      --admin-firstname=admin \ # Nama depan administrator backend
      --admin-lastname=admin \ 
      --admin-email=cy****sper@email.com \ # Alamat email administrator
      --admin-user=admin \ # Username login backend
      --admin-password=admin*** \ # Password login backend
      --language=en_US \ # Bahasa website
      --currency=USD \
      --timezone=America/Chicago \
      --use-rewrites=1 \
      --search-engine=opensearch \ 
      --opensearch-host=localhost \
      --opensearch-port=9200 \
      --opensearch-enable-auth=1 \
      --opensearch-username=admin \
      --opensearch-password=admin \
      --opensearch-index-prefix=magento2
  5. Setelah instalasi, output serupa berikut akan ditampilkan.

    image

    URI Admin Magento adalah URL backend administrator, yang dapat diakses setelah NGINX dikonfigurasi. Contoh: http://47.****.**.72/admin_46i****.

  6. Konfigurasikan forwarding NGINX.

    1. Buat file konfigurasi Magento 2.

      sudo vim /etc/nginx/conf.d/magento.conf
    2. Tambahkan konten berikut, lalu simpan dan keluar.

      upstream fastcgi_backend {
        server  unix:/run/php/php8.3-fpm.sock;
      }
      server {
        listen 80;
        server_name ip;
        set $MAGE_ROOT /var/www/html/magento;
        include /var/www/html/magento/nginx.conf.sample;
      }
      
    3. Verifikasi sintaksis NGINX.

      nginx -t
    4. Restart NGINX.

      sudo systemctl restart nginx

Kunjungi website Magento 2

  1. Buka http://<Alamat IP publik Instance ECS Anda> di browser untuk melihat halaman utama default.

    image

  2. Buka http://<Alamat IP publik Instance ECS>/admin_46i**** dan login dengan username admin dan password admin***.

    image

FAQ

Pertanyaan 1: Apa yang harus saya lakukan jika tidak dapat mengunduh paket perangkat lunak Magento 2?

Perbarui repository image untuk mengatasi masalah ini.

image

  1. Lihat repository image saat ini.

    composer config -l -g

    image

  2. Beralih ke mirror Alibaba Cloud.

    sudo composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/

Pertanyaan 2: Operasi apa saja yang dapat saya lakukan pada nama domain?

Untuk menggunakan domain kustom pada website Anda, beli nama domain. Jika Instance ECS Anda berada di Tiongkok daratan, ajukan Pendaftaran ICP. Kemudian arahkan nama domain ke alamat IP publik instance tersebut.

  • Beli nama domain.

    Nama domain memberikan alamat yang mudah diingat bagi pengguna dibandingkan alamat IP.

    Anda dapat mendaftarkan nama domain di Alibaba Cloud.

  • Ajukan Pendaftaran ICP untuk nama domain tersebut.

    Pendaftaran ICP wajib untuk setiap nama domain yang diarahkan ke server di wilayah Tiongkok daratan. Website tidak dapat diakses publik hingga mendapatkan nomor Pendaftaran ICP.

  • Lakukan resolusi nama domain.

    Arahkan nama domain ke alamat IP Instance ECS menggunakan DNS Alibaba Cloud agar pengguna dapat mengakses website Anda melalui nama domain. Lihat Memulai.

Referensi