Cara Menginstal Magento di Ubuntu Linux dengan Nginx

Posting singkat ini menunjukkan langkah-langkah siswa dan pengguna baru untuk menginstal dan menggunakan Adobe Commerce (sebelumnya Magento) di Ubuntu Linux dengan server web HTTP Nginx. Posting ini juga akan memiliki tautan untuk menyiapkan sertifikat SSL Let’s Encrypt gratis untuk mengamankan situs web dan aplikasi Magento Kamu.

Magento adalah platform eCommerce gratis dan open source berdasarkan PHP dan MySQL yang digunakan oleh jutaan usaha kecil untuk menjual dan mengelola produk mereka secara online. Jika Kamu ingin membuat toko online, Magento mungkin merupakan cara termudah untuk melakukannya, terutama jika Kamu membutuhkan dukungan dari pengguna untuk mengelola dan memelihara toko tersebut.

Magento memungkinkan pengguna untuk membuat toko online lengkap, termasuk manajemen inventaris, katalog produk, pengiriman, pembuatan faktur, dan banyak lagi.

Tutorial ini didasarkan pada Ubuntu Linux. Kami akan menginstal server web Nginx, server database MariaDB, dan modul PHP. Kami juga akan menautkan ke pos lain yang akan menunjukkan cara mengamankan situs web Magento Kamu menggunakan sertifikat SSL gratis Let’s Encrypt.

Untuk lebih lanjut tentang Magento, silakan periksa beranda

Untuk memulai menginstal Magento di Ubuntu Linux, ikuti langkah-langkah di bawah ini:

Cara menginstal Nginx di Ubuntu Linux

Seperti disebutkan di atas, kita akan menggunakan server web Nginx untuk menjalankan Magento. Magento membutuhkan server web untuk berfungsi, dan Nginx adalah salah satu server web open source paling populer yang tersedia saat ini.

Untuk menginstal Nginx di Ubuntu, jalankan perintah di bawah ini:

sudo apt update
sudo apt install nginx

Setelah menginstal Nginx, perintah di bawah ini dapat digunakan untuk berhenti, Mulailah dan memungkinkan Layanan Nginx untuk selalu memulai setiap kali server Kamu memulai.

sudo systemctl stop nginx.service
sudo systemctl start nginx.service
sudo systemctl enable nginx.service

Untuk menguji apakah Nginx terinstal dan berfungsi, buka browser web Kamu dan telusuri ke alamat IP atau nama host server.

http://localhost

Jika Kamu melihat halaman di atas di browser Kamu, maka Nginx berfungsi seperti yang diharapkan.

Cara menginstal MariaDB di Ubuntu Linux

Server basis data diperlukan agar Magento berfungsi. Magento menyimpan kontennya dalam database, dan MariaDB mungkin adalah server database terbaik yang tersedia untuk menjalankan Magento.

MariaDB cepat, aman, dan server default untuk hampir semua server Linux. Untuk menginstal MariaDB, jalankan perintah di bawah ini:

sudo apt install mariadb-server
sudo apt install mariadb-client

Setelah menginstal MariaDB, perintah di bawah ini dapat digunakan untuk berhenti, Mulailah dan memungkinkan Layanan MariaDB untuk selalu memulai saat server melakukan booting.

sudo systemctl stop mariadb.service
sudo systemctl start mariadb.service
sudo systemctl enable mariadb.service

Selanjutnya, jalankan perintah di bawah ini untuk mengamankan server database dengan kata sandi root jika Kamu tidak diminta melakukannya selama instalasi.

sudo mysql_secure_installation

Saat diminta, gunakan panduan di bawah ini untuk menjawab:

If you've just installed MariaDB, and haven't set the root password yet, you should just press enter here.

Enter current password for root (enter for none): PRESS ENTER

Switch to unix_socket authentication [Y/n] n

Change the root password? [Y/n] n

Remove anonymous users? [Y/n] y

Disallow root login remotely? [Y/n] y

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

Reload privilege tables now? [Y/n] y

All done!

Untuk memverifikasi dan memvalidasi bahwa MariaDB telah diinstal dan berfungsi, login ke konsol database menggunakan perintah di bawah ini:

sudo mysql -u root -p

Kamu harus secara otomatis masuk ke server basis data karena kami memulai permintaan masuk sebagai root. Hanya root yang bisa login tanpa password, dan hanya dari konsol server.

mariadb selamat datang

Jika Kamu melihat layar yang sama seperti yang ditunjukkan di atas, maka server berhasil diinstal.

Cara menginstal PHP-FPM di Ubuntu Linux

Seperti yang juga kami sebutkan di atas, kami menginstal PHP di Ubuntu karena Magento membutuhkannya. Paket PHP ditambahkan ke repositori Ubuntu. Versi repositori mungkin bukan yang terbaru. Jika Kamu perlu menginstal versi terbaru, Kamu harus menambahkan repositori PPA pihak ketiga.

Untuk repositori pihak ketiga dengan versi PHP terbaru, jalankan perintah di bawah ini.

sudo apt-get install software-properties-common
sudo add-apt-repository ppa:ondrej/php

Pada saat penulisan ini, PHP terbaru versi 8.0.

sudo apt update

Selanjutnya, jalankan perintah di bawah ini untuk menginstal PHP 8.0 dan modul terkait.

sudo apt install php8.0-fpm php8.0-common php8.0-mysql php8.0-gmp php8.0-curl php8.0-intl php8.0-mbstring php8.0-xmlrpc php8.0-gd php8.0-xml php8.0-cli php8.0-zip php8.0-soap php8.0-bcmath

Setelah PHP diinstal, perintah di bawah ini dapat digunakan untuk memulai, menghentikan, dan mengaktifkan layanan PHP-FPM untuk memulai secara otomatis saat server melakukan booting.

sudo systemctl stop php8.0-fpm
sudo systemctl start php8.0-fpm
sudo systemctl enable php8.0-fpm

Selanjutnya, Kamu ingin mengubah beberapa pengaturan konfigurasi PHP yang berfungsi baik dengan Magento. Jalankan perintah di bawah ini untuk membuka file konfigurasi default PHP.

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

Kemudian ubah pengaturan garis menjadi sesuatu garis garis di bawah ini. Simpan perubahan Kamu dan keluar.

file_uploads = On
allow_url_fopen = On
short_open_tag = On
memory_limit = 256M
cgi.fix_pathinfo = 0
upload_max_filesize = 100M
max_execution_time = 360
date.timezone = America/Chicago

Cara membuat database Magento di Ubuntu

Pada titik ini, kita siap untuk membuat database Magento. Seperti disebutkan di atas, Magento menggunakan database untuk menyimpan kontennya.

Untuk membuat database untuk Magento, jalankan perintah di bawah ini:

sudo mysql -u root -p

Kemudian buat database bernama magentodb

CREATE DATABASE magentodb;

Selanjutnya, buat pengguna database bernama magentodbuser dan atur kata sandi

CREATE USER 'magentodbuser'@'localhost' IDENTIFIED BY 'new_password_here';

Kemudian berikan pengguna akses penuh ke database.

GRANT ALL ON magentodb.* TO 'magentodbuser'@'localhost' WITH GRANT OPTION;

Terakhir, simpan perubahan Kamu dan keluar.

FLUSH PRIVILEGES;
EXIT;

Bagaimana cara mengunduh Magento 2

Kami siap mengunduh Magento dan mulai mengonfigurasinya. Pertama, jalankan perintah di bawah ini untuk mengunduh versi terbaru Magento dari repositorinya.

Untuk mendapatkan rilis terbaru Magento, Kamu mungkin ingin menggunakan repositori GitHub. Instal Komposer, Curl, dan dependensi lainnya untuk memulai

sudo apt install curl git
curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer

Setelah menginstal curl dan Composer di atas, ubah ke direktori root Nginx dan download paket Magento 2 dari GitHub.

Saat diminta, masukkan Kamu kunci otentikasi. Milikmu kunci publik adalah nama pengguna Kamu; milikmu kunci pribadi adalah kata sandi Kamu …. ( https://marketplace.magento.com

Kunci Ubuntu Magento

Kamu harus mendaftar akun untuk membuat kunci di atas.

Kemudian jalankan perintah di bawah ini untuk mengizinkan www-data pengguna untuk memiliki direktori Magento.

Jalankan perintah di bawah ini untuk membuat proyek baru bernama magento.

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

Salin dan tempel kunci otentikasi. (Milikmu kunci publik adalah nama pengguna Kamu; milikmu kunci pribadi adalah kata sandi Kamu)

Output:
Authentication required (repo.magento.com):
Username: 234f2343435d190983j0ew8u3220
Password: 
Do you want to store credentials for repo.magento.com in /opt/magento/.config/composer/auth.json ? [Yn] Y

Setelah mengunduh paket Magento, jalankan perintah di bawah ini untuk menginstal Magento dengan opsi berikut:

cd /var/www/magento
sudo bin/magento setup:install --base-url-secure=https://example.com/ --db-host=localhost --db-name=magentodb --db-user=magentodbuser --db-password=db_user_password_here --dbadmin-firstname=Admin --admin-lastname=User [email protected] --admin-user=admin --admin-password=admin123 --language=en_US --currency=USD --timezone=America/Chicago --use-rewrites=1
  • Perangkat lunak Magento diinstal di direktori root di localhost. Admin adalah admin; oleh karena itu: URL etalase Kamu adalah https://contoh.com
  • Server database berada di localhost yang sama dengan server web….
  • Nama databasenya adalah magentodan magentouser dan kata sandinya adalah db_user_password_di sini
  • Menggunakan server menulis ulang
  • Administrator Magento memiliki properti berikut:
    • Nama depan dan belakang adalah: Pengguna Admin
    • Nama pengguna adalah: admin
  • dan passwordnya adalah admin123
  • Alamat email adalah: [email protected]
  • Bahasa defaultnya adalah: (Bahasa Inggris AS)
  • Mata uang default adalah: Dolar Amerika
  • Zona waktu default adalah: AS Tengah (Amerika/Chicago)

Setelah itu, jalankan perintah di bawah ini untuk mengatur izin yang benar agar Magento 2 berfungsi.

sudo chown -R www-data:www-data /var/www/magento/
sudo chmod -R 755 /var/www/magento/

Cara mengonfigurasi Nginx untuk Magento

Kami telah mengunduh konten Magento ke folder baru yang kami sebut Magento. Sekarang, mari konfigurasikan Nginx untuk membuat blok server baru untuk digunakan dengan situs web Magento kita. Kamu dapat membuat blok server sebanyak-banyaknya dengan Nginx.

Untuk melakukannya, jalankan perintah di bawah ini untuk membuat file konfigurasi baru bernama magento.conf dalam /etc/nginx/sites-available/ direktori untuk meng-host blok server Magento kami.

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

Dalam file, salin dan tempel konten di bawah ini ke dalam file dan simpan.

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

server {
    listen 80;
    listen [::]:80;
    root /var/www/magento;
    index  index.php index.html index.htm;
    server_name  example.com www.example.com;

    client_max_body_size 100M;
    autoindex off;

    set $MAGE_ROOT /var/www/magento;
    set $MAGE_MODE production;

    access_log /var/log/nginx/example.com-access.log;
    error_log /var/log/nginx/example.com-error.log;

    include /var/www/magento/nginx.conf.sample;


}

Simpan file dan keluar.

Setelah menyimpan file di atas, jalankan perintah di bawah ini untuk mengaktifkan file baru yang berisi blok server Magento kita. Mulai ulang Nginx setelah itu.

sudo ln -s /etc/nginx/sites-available/magento.conf /etc/nginx/sites-enabled/
sudo systemctl restart nginx.service

Pada tahap ini, Magento sudah siap dan dapat diluncurkan dengan masuk ke IP server atau nama host.

http://localhost

Namun, kami ingin memastikan server kami dilindungi dengan sertifikat SSL gratis Let’s Encrypt. Jadi, lanjutkan di bawah untuk mempelajari cara membuat sertifikat SSL Let’s Encrypt untuk situs web.

Cara mengatur Let’s Encrypt untuk Magento

Kami telah menulis postingan yang bagus tentang cara membuat dan mengelola Let’s Encrypt SSL certificates untuk server web Nginx. Kamu dapat menggunakan pos itu, untuk menerapkannya di sini untuk situs web Magento Kamu.

Untuk membaca postingan tentang cara membuat Let’s Encrypt SSL certificates untuk situs web, klik tautan di bawah ini:

Cara Setup Let’s Encrypt di Ubuntu Linux dengan Nginx – Website untuk Pelajar

Jika Kamu berhasil membuat sertifikat Let’s Encrypt SSL, Kamu harus membuka kembali blok server untuk situs web Magento kami dengan menjalankan perintah di bawah ini.

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

Konfigurasi blok server Magento yang baru akan terlihat mirip dengan baris di bawah ini. Catat garis-garis yang disorot.

  • Blok server pertama mendengarkan pada port 80. Ini berisi pengalihan 301 untuk mengarahkan HTTP ke HTTPS.
  • Blok server kedua mendengarkan pada port 443. Ini berisi pengalihan 301 untuk mengarahkan ulang www ke domain non-www.
upstream fastcgi_backend {
server unix:/var/run/php/php8.0-fpm.sock;
}

server {
    listen 80;
    listen [::]:80;
    root /var/www/magento;
    index  index.php index.html index.htm;
    server_name  example.com www.example.com;

    include snippets/well-known.conf;

    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    root /var/www/magento;
    index  index.php index.html index.htm;
    server_name www.example.com;
   
    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;

    ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;

    add_header Strict-Transport-Security "max-age=31536000;  includeSubDomains";
    
    include snippets/well-known.conf;

    return 301 https://example.com$request_uri;
}

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    root /var/www/magento;
    index  index.php index.html index.htm;
    server_name example.com;

    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;

    ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;

    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:50m;
    ssl_session_timeout 1d;
    ssl_session_tickets off;

    ssl_stapling on;
    ssl_stapling_verify on;
    resolver 8.8.8.8 8.8.4.4 valid=300s;
    resolver_timeout 30s;

    ssl_dhparam /etc/ssl/certs/dhparam.pem;

    add_header Strict-Transport-Security "max-age=31536000;  includeSubDomains";
    add_header X-Frame-Options SAMEORIGIN;
    add_header X-Content-Type-Options nosniff;
    
    include snippets/well-known.conf;

    client_max_body_size 100M;
    autoindex off;
    
    set $MAGE_ROOT /var/www/magento;
    set $MAGE_MODE production;

    access_log /var/log/nginx/example.com-access.log;
    error_log /var/log/nginx/example.com-error.log;

    include /var/www/magento/nginx.conf.sample;
}

Simpan file di atas, lalu restart Nginx dan PHP menggunakan perintah di bawah ini.

sudo systemctl reload nginx
sudo systemctl reload php8.0-fpm

Terakhir, jika semuanya berjalan sesuai rencana, Kamu seharusnya dapat memulai wizard penyiapan Magento dengan menelusuri nama host server atau alamat IP melalui HTTPS.

https://example.com/

Selanjutnya, buka browser Kamu dan telusuri ke nama domain server. Kamu akan melihat beranda Magento.

magento di windows wsl ubuntu

Kamu sekarang dapat masuk sebagai administrator dan mulai menyesuaikan dan membangun toko Kamu.

Bagaimana cara meningkatkan Magento 2

Pertama hentikan server web.

sudo systemctl stop nginx

Di masa mendatang ketika Kamu ingin meningkatkan ke versi baru yang dirilis, cukup jalankan perintah di bawah ini untuk memutakhirkan…

cd /var/www/magento
sudo bin/magento maintenance:enable
sudo composer require magento/product-community-edition 2.2.5 --no-update
sudo composer update
sudo php bin/magento setup:upgrade
sudo php bin/magento setup:di:compile
sudo php bin/magento indexer:reindex
sudo php bin/magento maintenance:disable

Kamu mungkin harus menjalankan ulang untuk memperbarui izin direktori Nginx.

Kesimpulan:

Posting ini menunjukkan kepada Kamu cara menginstal Magento 2 di Ubuntu Linux dengan tautan ke pengaturan Let’s Encrypt. Jika Kamu menemukan kesalahan di atas, atau memiliki sesuatu untuk ditambahkan, silakan gunakan formulir komentar di bawah ini.

Rate this post