Deploy Magento 2, platform e-dagang open-source, pada Instance ECS yang menjalankan Ubuntu dengan NGINX, MySQL, OpenSearch, dan Composer.
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
CatatanMagento 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
-
Dapatkan kunci privat Anda dari Adobe Commerce.

-
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.
-
Port 22 terbuka dalam aturan grup keamanan masuk. Lihat Tambahkan aturan grup keamanan.
-
Docker diinstal pada Instance ECS. Lihat Instal Docker.
-
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
-
Instal paket inti PHP dan ekstensinya.
-
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 -
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 -
Restart NGINX untuk menerapkan perubahan.
sudo systemctl restart nginx
-
-
Konfigurasikan php.ini.
-
Buka file php.ini.
sudo vim /etc/php/8.3/fpm/php.ini sudo vim /etc/php/8.3/cli/php.ini -
Perbarui pengaturan berikut, lalu simpan dan tutup file tersebut.
memory_limit = 2G max_execution_time = 1800 zlib.output_compression = On -
Restart PHP-FPM.
sudo systemctl restart php8.3-fpm
-
Langkah 2: Buat database Magento 2
-
Sambungkan ke MySQL.
mysql -u root -pMasukkan password root MySQL saat diminta.
-
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; -
Verifikasi database.
mysql -u magento -pCatatanJika monitor MySQL muncul, berarti database berhasil dibuat. Jika terjadi error, jalankan kembali pernyataan sebelumnya.
Langkah 3: Unduh dan instal OpenSearch
-
Sebelum menginstal OpenSearch dengan Docker, selesaikan tugas-tugas berikut:
-
Nonaktifkan memory paging dan swapping untuk meningkatkan performa.
sudo swapoff -a -
Tingkatkan batas memory map untuk OpenSearch.
-
Buka sysctl.conf.
sudo vi /etc/sysctl.conf -
Tambahkan
vm.max_map_count=262144. -
Verifikasi konfigurasi.
sudo sysctl -p cat /proc/sys/vm/max_map_count
-
-
-
Jalankan OpenSearch dalam kontainer Docker.
-
Ambil image OpenSearch.
sudo docker pull opensearchproject/opensearch: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:latestCatatanContoh ini menonaktifkan SSL pada layer HTTP dan Transport untuk pengujian dengan mengatur
plugins.security.disabledmenjaditrue. -
Kirim permintaan ke port 9200. Kredensial default adalah admin/admin.
sudo curl -k http://localhost:9200 -ku admin:adminOutput 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/" }
-
-
Daftar kontainer yang sedang berjalan dan salin ID kontainer OpenSearch.
sudo docker container ls -
Konfigurasikan NGINX sebagai proxy untuk OpenSearch.
-
Verifikasi bahwa /etc/nginx/nginx.conf berisi
include /etc/nginx/conf.d/*.conf;.vi /etc/nginx/nginx.conf
-
Buat konfigurasi proxy.
-
Buat file konfigurasi berikut.
sudo vim /etc/nginx/conf.d/magento_es_auth.confserver { listen 8080; location /_cluster/health { proxy_pass http://localhost:9200/_cluster/health; } } -
Restart NGINX.
sudo service nginx restart -
Periksa apakah proxy berfungsi:
sudo curl -u admin:admin -i http://localhost:8080/_cluster/health?prettyOutput yang diharapkan:

-
-
Langkah 4: Unduh dan instal Composer
-
Instal alat dekompresi.
Composer memerlukan
unzipataup7zipuntuk dekompresi.sudo apt-get install unzip sudo apt-get install p7zip-full -
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');" -
Pindahkan
composer.pharke direktori PATH agar dapat diakses secara global.sudo mv composer.phar /usr/local/bin/composer -
Verifikasi versi Composer.
composer --version
Langkah 5: Unduh dan instal Magento 2
-
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 -
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.

-
-
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 -
Instal Magento 2.
Instal Adobe Commerce dari command line. Pada contoh ini,
db-hostadalah localhost, dandb-name,db-user, dandb-passwordsemuanyamagento.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 -
Setelah instalasi, output serupa berikut akan ditampilkan.

URI Admin Magento adalah URL backend administrator, yang dapat diakses setelah NGINX dikonfigurasi. Contoh:
http://47.****.**.72/admin_46i****. -
Konfigurasikan forwarding NGINX.
-
Buat file konfigurasi Magento 2.
sudo vim /etc/nginx/conf.d/magento.conf -
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; } -
Verifikasi sintaksis NGINX.
nginx -t -
Restart NGINX.
sudo systemctl restart nginx
-
Kunjungi website Magento 2
-
Buka
http://<Alamat IP publik Instance ECS Anda>di browser untuk melihat halaman utama default.
-
Buka
http://<Alamat IP publik Instance ECS>/admin_46i****dan login dengan usernameadmindan passwordadmin***.

