全部产品
Search
文档中心

Elastic Compute Service:Bangun situs e-commerce Magento2 pada instance ECS

更新时间:Jul 06, 2025

Magento2 adalah platform e-commerce open source yang kuat dengan arsitektur fleksibel dan fitur kaya untuk mendukung pembuatan toko online kompleks. Magento2 mengoptimalkan performa, meningkatkan pengalaman pengguna, serta menyederhanakan operasi manajemen. Platform ini cocok untuk usaha kecil-menengah hingga perusahaan besar. Topik ini menjelaskan cara membangun situs e-commerce Magento2 pada instance Elastic Compute Service (ECS) yang menjalankan Ubuntu.

Catatan

Untuk informasi lebih lanjut tentang Magento2, kunjungi situs resmi Adobe Commerce.

Informasi latar belakang

Dalam topik ini, digunakan instance ECS dengan konfigurasi berikut:

  • Tipe instance: ecs.c7.large

  • Sistem operasi: Citra publik Ubuntu 20.04 64-bit

  • CPU: 2 vCPU

  • Memori: 4 GiB

    Catatan

    Untuk membangun server Magento2, memori dari tipe instance yang dipilih harus minimal 4 GiB.

Dalam topik ini, Anda harus menggunakan versi perangkat lunak berikut berdasarkan dependensi perangkat lunak yang dijelaskan di situs resmi Magento2:

  • Composer 2.7: Composer digunakan untuk menginstal dan mengelola pustaka kode Magento2 serta semua pustaka pihak ketiga yang diperlukan.

  • OpenSearch 2.12: OpenSearch menyediakan fitur pencarian produk, termasuk pencarian cepat, opsi penyaringan, dan pengurutan relevansi.

  • MySQL 8.0: MySQL digunakan untuk menyimpan semua data bisnis seperti informasi produk, pesanan, dan pelanggan.

  • PHP 8.3: PHP digunakan untuk mengeksekusi logika kode PHP dan berkomunikasi dengan database serta layanan lainnya untuk mendapatkan data.

  • NGINX 1.24: NGINX adalah server frontend yang memproses permintaan file statis dan bertindak sebagai reverse proxy untuk meneruskan permintaan konten dinamis ke layanan backend PHP.

Prasyarat

  1. Pasangan kunci akses diperoleh untuk Magento2 dari situs web Adobe Commerce. Gambar berikut menunjukkan contoh pasangan kunci akses. Untuk informasi tentang cara mendapatkan pasangan kunci akses untuk Magento2 dari situs web Adobe Commerce, kunjungi situs web Adobe Commerce.

    image

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

  3. Port 22 dibuka dalam aturan masuk grup keamanan tempat instance ECS termasuk. Untuk informasi tentang cara menambahkan aturan grup keamanan, lihat Tambahkan aturan grup keamanan.

  4. Docker diinstal pada instance ECS. Untuk informasi tentang cara menginstal Docker, lihat Instal Docker.

  5. Stack LNMP (Linux, NGINX, MySQL, dan PHP) telah diterapkan. Untuk informasi tentang cara menerapkan stack LNMP, lihat bagian Terapkan stack LNMP dari topik "Terapkan stack LNMP".

    Catatan
    • Stack LNMP menggunakan versi perangkat lunak berikut: NGINX 1.24, MySQL 8.0, dan PHP 8.3.

    • Periksa dan ubah nomor versi dalam langkah-langkah berikut.

Prosedur

Langkah 1: Instal dependensi PHP

  1. Instal paket inti PHP dan ekstensi spesifik.

    1. Instal paket inti PHP, yang mencakup beberapa ekstensi.

      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 spesifik yang memerlukan instalasi terpisah.

      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. Mulai ulang server web agar perubahan berlaku.

      sudo systemctl restart nginx
  2. Konfigurasikan file php.ini.

    1. Buka file php.ini di editor Vim.

      sudo vim /etc/php/8.3/fpm/php.ini
      sudo vim /etc/php/8.3/cli/php.ini
    2. Ubah konten berikut di file php.ini. Lalu, simpan dan tutup file tersebut.

      memory_limit = 2G
      max_execution_time = 1800
      zlib.output_compression = On
    3. Mulai ulang layanan PHP FastCGI Process Manager (PHP-FPM).

      sudo systemctl restart php8.3-fpm

Langkah 2: Buat basis data Magento2

  1. Hubungkan ke MySQL.

    mysql -u root -p

    Ketika diminta untuk memasukkan kata sandi, masukkan kata sandi pengguna root MySQL.

  2. Eksekusi pernyataan MySQL berikut secara berurutan untuk membuat dan mengonfigurasi basis data. Dalam contoh ini, basis data bernama magento dibuat, dan nama pengguna yang digunakan untuk masuk ke basis data adalah magento.

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

    mysql -u magento -p
    Catatan

    Jika monitor MySQL ditampilkan, basis data telah dibuat. Jika kesalahan ditampilkan, eksekusi pernyataan MySQL sebelumnya lagi.

Langkah 3: Unduh dan instal OpenSearch

  1. Sebelum menggunakan Docker untuk menginstal OpenSearch, lakukan operasi berikut:

    1. Nonaktifkan paging memori dan swapping pada instance ECS untuk meningkatkan performa.

      sudo swapoff -a
    2. Tingkatkan jumlah pemetaan memori yang tersedia untuk OpenSearch.

      1. Modifikasi file sysctl.conf.

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

      3. Periksa apakah konfigurasi telah ditambahkan.

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

        image

  2. Jalankan OpenSearch dalam wadah Docker.

    1. Tarik gambar OpenSearch.

      sudo docker pull opensearchproject/opensearch:2
    2. Terapkan OpenSearch dalam wadah untuk memeriksa apakah Docker berjalan sesuai harapan.

      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

      Dalam contoh ini, parameter plugins.security.disabled disetel ke true, yang menonaktifkan SSL untuk HTTP dan lapisan transportasi. Ubah nilai parameter berdasarkan skenario bisnis Anda.

    3. Kirim permintaan ke port 9200. Nama pengguna dan kata sandi default adalah admin.

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

      Keluaran perintah berikut dikembalikan:

      {
        "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. Tampilkan semua kontainer yang sedang berjalan dan salin ID kontainer dari node OpenSearch yang Anda uji.

    sudo docker container ls
  2. Konfigurasikan NGINX untuk mesin pencari.

    1. Pastikan file /etc/nginx/nginx.conf global berisi konfigurasi include /etc/nginx/conf.d/*.conf;. Ini memungkinkan NGINX memuat semua file konfigurasi .conf di direktori /etc/nginx/conf.d/.

      vi /etc/nginx/nginx.conf

      image

    2. Konfigurasikan NGINX sebagai proxy.

      1. Gunakan editor Vim untuk membuat file yang berisi konten 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. Mulai ulang NGINX.

        sudo service nginx restart
      3. Jalankan perintah berikut untuk memeriksa apakah proxy berjalan sesuai harapan:

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

        Keluaran perintah berikut akan ditampilkan.

        image

Langkah 4: Unduh dan instal Composer

  1. Instal alat dekompresi.

    Untuk mengekstrak file dari paket instalasi Composer, Anda harus menginstal alat dekompresi unzip atau p7zip. Jalankan salah satu perintah berikut untuk menginstal alat dekompresi:

    sudo apt-get install unzip
    sudo apt-get install p7zip-full
  2. Jalankan perintah berikut untuk menginstal 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 file composer.phar ke direktori yang ditentukan dalam perintah berikut dan ubah nama file menjadi composer. Ini memungkinkan Anda memulai Composer dari direktori mana pun.

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

    composer -version

Langkah 5: Unduh dan instal Magento2

  1. Buat proyek editor menggunakan pasangan kunci akses yang Anda peroleh untuk Magento2 dari situs web Adobe Commerce. Tetapkan nama proyek menjadi magento.

    cd /var/www/html/
    sudo composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition magento
  2. Ketika diminta untuk memasukkan kata sandi, masukkan kunci autentikasi identitas Anda.

    Catatan
    • Kunci autentikasi identitas adalah kunci privat dari pasangan kunci akses yang Anda peroleh di bagian Prasyarat.

    • Mengunduh paket perangkat lunak Magento2 memerlukan waktu 5 hingga 10 menit untuk selesai.

    image

  3. Konfigurasikan izin baca dan tulis.

    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 Magento2.

    Anda harus menginstal Magento2 menggunakan CLI. Dalam contoh ini, parameter db-host disetel ke localhost, dan parameter db-name, db-user, dan db-password disetel ke magento.

    sudo bin/magento setup:install \
      --base-url=http://196.****.*.1/ \ # Alamat IP publik instance ECS.
      --db-host=localhost \ # Alamat basis data.
      --db-name=magento \  # Nama basis data.
      --db-user=magento \ # Nama pengguna yang digunakan untuk masuk ke basis data.
      --db-password=magento \ # Kata sandi yang digunakan untuk masuk ke basis data.
      --admin-firstname=admin \ # Nama administrator backend.
      --admin-lastname=admin \ 
      --admin-email=cy****sper@email.com \ # Alamat email administrator.
      --admin-user=admin \ # Nama pengguna akun logon backend.
      --admin-password=admin*** \ # Kata sandi akun logon backend.
      --language=en_US \ # Bahasa situs web.
      --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 selesai, konten yang ditunjukkan pada gambar berikut ditampilkan.

    image

    Parameter Magento Admin URI menunjukkan Uniform Resource Identifier (URI) yang dapat Anda akses sebagai administrator. Setelah konfigurasi NGINX selesai, Anda dapat mengakses URL yang berisi URI sebagai administrator. Contoh: http://47.****.**.72/admin_46i****.

  6. Konfigurasikan NGINX untuk penerusan.

    1. Buat file bernama magento.conf yang didedikasikan untuk Magento2.

      sudo vim /etc/nginx/conf.d/magento.conf
    2. Salin dan tempel kode berikut ke file, simpan file, lalu keluar dari editor Vim.

      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. Periksa apakah sintaksis benar.

      nginx -t
    4. Mulai ulang NGINX.

      sudo systemctl restart nginx

Kunjungi situs web Magento2

  1. Di komputer lokal Anda, masukkan http://<Alamat IP publik instance ECS> di bilah alamat browser. Halaman beranda default berikut muncul.

    image

  2. Di komputer lokal Anda, masukkan http://<Alamat IP publik instance ECS>/admin_46i**** di bilah alamat browser. Di halaman logon yang muncul, masukkan nama pengguna akun logon backend yang Anda tentukan saat menginstal Magento2, yaitu admin. Masukkan kata sandi akun logon backend yang Anda tentukan saat menginstal Magento2, yaitu admin***.

    image

FAQ

Tanya 1: Apa yang harus saya lakukan jika tidak bisa mengunduh paket perangkat lunak Magento2?

Untuk menyelesaikan masalah ini, perbarui repositori gambar.

image

  1. Periksa repositori gambar yang disertakan dengan Composer.

    composer config -l -g

    image

  2. Ubah repositori gambar global.

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

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

Jika Anda ingin membangun situs web tetapi belum memiliki nama domain sendiri, belilah nama domain. Setelah membeli nama domain, jika situs web diterapkan pada instance ECS di daratan Tiongkok, ajukan pendaftaran ICP (Internet Content Provider) untuk nama domain dan arahkan nama domain ke alamat IP publik instance ECS. Lakukan langkah-langkah berikut:

  • Beli nama domain.

    Tentukan nama domain unik untuk situs web Anda. Dengan cara ini, pengguna dapat menggunakan nama domain yang mudah diingat untuk mengunjungi situs web Anda, bukan alamat IP yang kompleks.

    Kami merekomendasikan pembelian nama domain melalui Alibaba Cloud. Untuk informasi lebih lanjut, lihat Daftarkan nama domain di Alibaba Cloud.

  • Ajukan pendaftaran ICP untuk nama domain.

    Ajukan pendaftaran ICP untuk nama domain yang terkait dengan situs web yang diterapkan pada instance ECS di daratan Tiongkok. Situs web hanya dapat memberikan layanan setelah nomor pendaftaran ICP diperoleh.

  • Arahkan nama domain.

    Gunakan Alibaba Cloud DNS untuk mengarahkan nama domain ke alamat IP instance ECS tempat situs web diterapkan. Dengan cara ini, pengguna dapat mengunjungi situs web Anda menggunakan nama domain. Untuk informasi lebih lanjut, lihat Mulai.

Referensi