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

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.
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.
Docker diinstal pada instance ECS. Untuk informasi tentang cara menginstal Docker, lihat Instal Docker.
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".
CatatanStack 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
Instal paket inti PHP dan ekstensi spesifik.
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-opcacheInstal 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-sqlite3Mulai ulang server web agar perubahan berlaku.
sudo systemctl restart nginx
Konfigurasikan file php.ini.
Buka file php.ini di editor Vim.
sudo vim /etc/php/8.3/fpm/php.ini sudo vim /etc/php/8.3/cli/php.iniUbah konten berikut di file php.ini. Lalu, simpan dan tutup file tersebut.
memory_limit = 2G max_execution_time = 1800 zlib.output_compression = OnMulai ulang layanan PHP FastCGI Process Manager (PHP-FPM).
sudo systemctl restart php8.3-fpm
Langkah 2: Buat basis data Magento2
Hubungkan ke MySQL.
mysql -u root -pKetika diminta untuk memasukkan kata sandi, masukkan kata sandi pengguna root MySQL.
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;Verifikasi basis data.
mysql -u magento -pCatatanJika monitor MySQL ditampilkan, basis data telah dibuat. Jika kesalahan ditampilkan, eksekusi pernyataan MySQL sebelumnya lagi.
Langkah 3: Unduh dan instal OpenSearch
Sebelum menggunakan Docker untuk menginstal OpenSearch, lakukan operasi berikut:
Nonaktifkan paging memori dan swapping pada instance ECS untuk meningkatkan performa.
sudo swapoff -aTingkatkan jumlah pemetaan memori yang tersedia untuk OpenSearch.
Modifikasi file sysctl.conf.
sudo vi /etc/sysctl.confTambahkan konfigurasi
vm.max_map_count=262144.Periksa apakah konfigurasi telah ditambahkan.
sudo sysctl -p cat /proc/sys/vm/max_map_count
Jalankan OpenSearch dalam wadah Docker.
Tarik gambar OpenSearch.
sudo docker pull opensearchproject/opensearch:2Terapkan 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:latestCatatanDalam contoh ini, parameter
plugins.security.disableddisetel ketrue, yang menonaktifkan SSL untuk HTTP dan lapisan transportasi. Ubah nilai parameter berdasarkan skenario bisnis Anda.Kirim permintaan ke port 9200. Nama pengguna dan kata sandi default adalah admin.
sudo curl -k http://localhost:9200 -ku admin:adminKeluaran 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/" }
Tampilkan semua kontainer yang sedang berjalan dan salin ID kontainer dari node OpenSearch yang Anda uji.
sudo docker container lsKonfigurasikan NGINX untuk mesin pencari.
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
Konfigurasikan NGINX sebagai proxy.
Gunakan editor Vim untuk membuat file yang berisi konten berikut.
sudo vim /etc/nginx/conf.d/magento_es_auth.confserver { listen 8080; location /_cluster/health { proxy_pass http://localhost:9200/_cluster/health; } }Mulai ulang NGINX.
sudo service nginx restartJalankan perintah berikut untuk memeriksa apakah proxy berjalan sesuai harapan:
sudo curl -u admin:admin -i http://localhost:8080/_cluster/health?prettyKeluaran perintah berikut akan ditampilkan.

Langkah 4: Unduh dan instal Composer
Instal alat dekompresi.
Untuk mengekstrak file dari paket instalasi Composer, Anda harus menginstal alat dekompresi
unzipataup7zip. Jalankan salah satu perintah berikut untuk menginstal alat dekompresi:sudo apt-get install unzip sudo apt-get install p7zip-fullJalankan 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');"Pindahkan file
composer.pharke 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/composerLihat versi Composer.
composer -version
Langkah 5: Unduh dan instal Magento2
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 magentoKetika diminta untuk memasukkan kata sandi, masukkan kunci autentikasi identitas Anda.
CatatanKunci 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.

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/magentoInstal Magento2.
Anda harus menginstal Magento2 menggunakan CLI. Dalam contoh ini, parameter
db-hostdisetel ke localhost, dan parameterdb-name,db-user, dandb-passworddisetel kemagento.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 \Setelah instalasi selesai, konten yang ditunjukkan pada gambar berikut ditampilkan.

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****.Konfigurasikan NGINX untuk penerusan.
Buat file bernama magento.conf yang didedikasikan untuk Magento2.
sudo vim /etc/nginx/conf.d/magento.confSalin 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; }Periksa apakah sintaksis benar.
nginx -tMulai ulang NGINX.
sudo systemctl restart nginx
Kunjungi situs web Magento2
Di komputer lokal Anda, masukkan
http://<Alamat IP publik instance ECS>di bilah alamat browser. Halaman beranda default berikut muncul.
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, yaituadmin. Masukkan kata sandi akun logon backend yang Anda tentukan saat menginstal Magento2, yaituadmin***.

