Magento adalah salah satu platform e-niaga sumber terbuka paling populer yang memungkinkan Anda menyiapkan situs web e-niaga dan toko online dalam hitungan menit. Itu ditulis dalam PHP, berdasarkan Zend Framework dan menggunakan model database Entity Attribute Value (EAV) untuk menyimpan data. Muncul dengan antarmuka yang sederhana dan ramah pengguna yang memungkinkan Anda untuk menyesuaikan toko online Anda dan menjual produk dan layanan Anda dengan mudah.
Dalam tutorial ini, kami akan menunjukkan cara menginstal platform eCommerce Magento di CentOS 8 dengan Let's Encrypt SSL gratis.
Persyaratan
- Server yang menjalankan CentOS 8 dengan RAM 2 GB.
- Nama domain valid yang ditunjukkan dengan IP server Anda.
- Kata sandi root dikonfigurasi di server.
Instal Server LEMP
Pertama, instal server web Nginx, server database MariaDB, PHP, dan library PHP lain yang diperlukan dengan menjalankan perintah berikut:
dnf install nginx mariadb-server php php-cli php-mysqlnd php-opcache php-xml php-gd php-soap php-bcmath php-intl php-mbstring php-json php-iconv php-fpm php-zip unzip git -y
Setelah semua paket diinstal, mulai layanan Nginx, MariaDB dan PHP-FPM dan aktifkan untuk memulai setelah sistem reboot dengan perintah berikut:
systemctl start nginx
systemctl start mariadb
systemctl start php-fpm
systemctl enable nginx
systemctl enable mariadb
systemctl enable php-fpm
Selanjutnya, Anda perlu mengedit file php.ini dan mengubah beberapa pengaturan:
nano /etc/php.ini
Ubah baris berikut:
memory_limit =512M upload_max_filesize = 200M zlib.output_compression = On max_execution_time = 300 date.timezone = Asia/Kolkata
Simpan dan tutup file setelah Anda selesai.
Konfigurasi Basis Data
Secara default, MariaDB tidak diamankan sehingga Anda harus mengamankannya terlebih dahulu. Jalankan skrip berikut untuk mengamankan MariaDB:
mysql_secure_installation
Jawab semua pertanyaan seperti yang ditunjukkan di bawah ini:
Enter current password for root (enter for none): Set root password? [Y/n] Y New password: Re-enter new password: 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
Setelah selesai, masuk ke shell MariaDB dengan perintah berikut:
mysql -u root -p
Berikan kata sandi root Anda saat diminta kemudian buat database dan pengguna untuk Magento seperti yang ditunjukkan di bawah ini:
MariaDB [(none)]> CREATE DATABASE magentodb;
MariaDB [(none)]> GRANT ALL ON magentodb.* TO [email protected] IDENTIFIED BY 'password';
Selanjutnya, flush hak istimewa dan keluar dari shell MariaDB dengan perintah berikut:
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit;
Konfigurasi PHP-FPM untuk Magento
Selanjutnya, Anda perlu mengonfigurasi kumpulan PHP-FPM untuk instans Magento Anda. Anda dapat mengonfigurasinya dengan membuat file berikut:
nano /etc/php-fpm.d/magento.conf
Tambahkan baris berikut:
[magento] user = nginx group = nginx listen.owner = nginx listen.group = nginx listen = /run/php-fpm/magento.sock pm = ondemand pm.max_children = 50 pm.process_idle_timeout = 10s pm.max_requests = 500 chdir = /
Simpan dan tutup file kemudian restart layanan PHP-FPM untuk menerapkan perubahan:
systemctl restart php-fpm
Unduh Magento
Pertama, unduh versi terbaru Magento dari repositori Git menggunakan perintah berikut:
cd /var/www/html
wget https://github.com/magento/magento2/archive/2.3.zip
Setelah diunduh, unzip file yang diunduh seperti gambar di bawah ini:
unzip 2.3.zip
Selanjutnya pindahkan direktori hasil ekstrak ke magento2 seperti gambar di bawah ini:
mv magento2-2.3 magento2
Selanjutnya, Anda perlu menginstal Composer untuk menginstal dependensi PHP untuk Magento.
Anda dapat menginstal Komposer dengan perintah berikut:
curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
Selanjutnya, ubah direktori ke magento2 dan instal semua dependensi Magento dengan perintah berikut:
cd /var/www/html/magento2
composer update
composer install
Selanjutnya, Anda perlu membuat crontab Magento untuk menjadwalkan tugas. Anda dapat membuatnya dengan perintah berikut:
./bin/magento cron:install
Anda dapat memverifikasi crontab menggunakan perintah berikut:
crontab -l
Anda akan mendapatkan output berikut:
#~ MAGENTO START f73db5f5dcf223372d4c9fab56bef0c1730eece898fad5cbee0c313b46b0dd1f * * * * * /usr/bin/php /var/www/html/magento2/bin/magento cron:run 2>&1 | grep -v "Ran jobs by schedule" >> /var/www/html/magento2/var/log/magento.cron.log * * * * * /usr/bin/php /var/www/html/magento2/update/cron.php >> /var/www/html/magento2/var/log/update.cron.log * * * * * /usr/bin/php /var/www/html/magento2/bin/magento setup:cron:run >> /var/www/html/magento2/var/log/setup.cron.log #~ MAGENTO END f73db5f5dcf223372d4c9fab56bef0c1730eece898fad5cbee0c313b46b0dd1f
Selanjutnya, berikan izin yang tepat ke direktori magento2:
chown -R nginx:nginx /var/www/html/magento2
chmod -R 755 /var/www/html/magento2
Konfigurasi Nginx untuk Magento
Selanjutnya, Anda perlu membuat file host virtual Nginx untuk Magento. Anda dapat membuatnya dengan perintah berikut:
nano /etc/nginx/conf.d/magento.conf
Tambahkan baris berikut:
upstream fastcgi_backend { server unix:/run/php-fpm/magento.sock; } server { listen 80; server_name magento.linuxbuz.com; set $MAGE_ROOT /var/www/html/magento2; set $MAGE_MODE developer; access_log /var/log/nginx/magento-access.log; error_log /var/log/nginx/magento-error.log; include /var/www/html/magento2/nginx.conf.sample; }
Simpan dan tutup file setelah Anda selesai. Kemudian, restart layanan Nginx dan PHP-FPM untuk menerapkan perubahan:
systemctl restart php-fpm
systemctl restart nginx
Konfigurasi SELinux dan Firewall
Secara default, SELinux diaktifkan di CentOS 8. Jadi, Anda perlu mengonfigurasi SELinux agar Magento berfungsi dengan benar.
Anda dapat mengkonfigurasi SELinux dengan perintah berikut:
semanage permissive -a httpd_t
Selanjutnya, Anda perlu membuat aturan firewall untuk mengizinkan layanan HTTP dan HTTPS dari jaringan eksternal. Anda dapat mengizinkannya dengan perintah berikut:
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload
Amankan Magento dengan Let's Encrypt SSL
Magento sekarang diinstal dan dikonfigurasi. Saatnya mengamankannya dengan Let's Encrypt SSL gratis.
Untuk melakukannya, Anda perlu mengunduh klien certbot di server Anda. Anda dapat mengunduh dan mengatur izin yang benar dengan menjalankan perintah berikut:
wget https://dl.eff.org/certbot-auto
mv certbot-auto /usr/local/bin/certbot-auto
chown root /usr/local/bin/certbot-auto
chmod 0755 /usr/local/bin/certbot-auto
Sekarang, jalankan perintah berikut untuk mendapatkan dan menginstal sertifikat SSL untuk situs web Magento Anda.
certbot-auto --nginx -d magento.linuxbuz.com
Perintah di atas pertama-tama instal semua dependensi yang diperlukan seperti yang ditunjukkan di bawah ini:
Installed: gcc-8.2.1-3.5.el8.x86_64 mod_ssl-1:2.4.37-12.module_el8.0.0+185+5908b0db.x86_64 python3-virtualenv-15.1.0-18.module_el8.0.0+33+0a10c0e1.noarch python36-devel-3.6.8-2.module_el8.0.0+33+0a10c0e1.x86_64 redhat-rpm-config-116-1.el8.0.1.noarch augeas-libs-1.10.1-8.el8.x86_64 libffi-devel-3.1-18.el8.x86_64 openssl-devel-1:1.1.1-8.el8.x86_64 annobin-8.64-1.el8.x86_64 cpp-8.2.1-3.5.el8.x86_64 dwz-0.12-9.el8.x86_64 efi-srpm-macros-3-2.el8.noarch ghc-srpm-macros-1.4.2-7.el8.noarch go-srpm-macros-2-16.el8.noarch isl-0.16.1-6.el8.x86_64 libmpc-1.0.2-9.el8.x86_64 ocaml-srpm-macros-5-4.el8.noarch openblas-srpm-macros-2-2.el8.noarch perl-srpm-macros-1-25.el8.noarch platform-python-devel-3.6.8-2.el8_0.0.1.x86_64 python-rpm-macros-3-37.el8.noarch python-srpm-macros-3-37.el8.noarch python3-rpm-generators-5-4.el8.noarch python3-rpm-macros-3-37.el8.noarch qt5-srpm-macros-5.11.1-2.el8.noarch rust-srpm-macros-5-2.el8.noarch glibc-devel-2.28-42.el8.1.x86_64 glibc-headers-2.28-42.el8.1.x86_64 kernel-headers-4.18.0-80.11.2.el8_0.x86_64 keyutils-libs-devel-1.5.10-6.el8.x86_64 krb5-devel-1.16.1-22.el8.x86_64 libcom_err-devel-1.44.3-2.el8.x86_64 libkadm5-1.16.1-22.el8.x86_64 libselinux-devel-2.8-6.el8.x86_64 libsepol-devel-2.8-2.el8.x86_64 libverto-devel-0.3.0-5.el8.x86_64 libxcrypt-devel-4.1.1-4.el8.x86_64 pcre2-devel-10.32-1.el8.x86_64 pcre2-utf16-10.32-1.el8.x86_64 pcre2-utf32-10.32-1.el8.x86_64 zlib-devel-1.2.11-10.el8.x86_64 Complete! Creating virtual environment... Installing Python packages... Installation succeeded.
Setelah semua dependensi terinstal, Anda akan diminta untuk memberikan alamat email Anda dan menyetujui persyaratan layanan seperti yang ditunjukkan di bawah ini:
Saving debug log to /var/log/letsencrypt/letsencrypt.log Plugins selected: Authenticator nginx, Installer nginx Enter email address (used for urgent renewal and security notices) (Enter 'c' to cancel): [email protected] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Please read the Terms of Service at https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must agree in order to register with the ACME server at https://acme-v02.api.letsencrypt.org/directory - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (A)gree/(C)ancel: A Saving debug log to /var/log/letsencrypt/letsencrypt.log Plugins selected: Authenticator nginx, Installer nginx Obtaining a new certificate Performing the following challenges: http-01 challenge for magento.linuxbuz.com Waiting for verification... Cleaning up challenges Deploying Certificate to VirtualHost /etc/nginx/conf.d/magento.conf
Selanjutnya, Anda harus memilih apakah akan mengarahkan ulang lalu lintas HTTP ke HTTPS seperti yang ditunjukkan di bawah ini:
Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1: No redirect - Make no further changes to the webserver configuration. 2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for new sites, or if you're confident your site works on HTTPS. You can undo this change by editing your web server's configuration. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2
Ketik 2 dan tekan Enter untuk menginstal sertifikat SSL Let's Encrypt untuk domain Anda seperti yang ditunjukkan di bawah ini:
Redirecting all traffic on port 80 to ssl in /etc/nginx/conf.d/magento.conf - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Congratulations! You have successfully enabled https://magento.linuxbuz.com You should test your configuration at: https://www.ssllabs.com/ssltest/analyze.html?d=magento.linuxbuz.com - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/magento.linuxbuz.com/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/magento.linuxbuz.com/privkey.pem Your cert will expire on 2020-03-23. To obtain a new or tweaked version of this certificate in the future, simply run certbot-auto again with the "certonly" option. To non-interactively renew *all* of your certificates, run "certbot-auto renew" - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF: https://eff.org/donate-le
Akses Magento
Magento sekarang diinstal dan dikonfigurasi. Saatnya mengakses wizard penginstalan Magento.
Buka browser web Anda dan ketik URL https://magento.linuxbuz.com. Anda akan diarahkan ke halaman Selamat Datang Magento:
Klik Setuju dan Siapkan Magento tombol. Anda akan melihat wizard pemeriksaan kesiapan Magento:
Sekarang, klik Berikutnya tombol. Anda akan melihat halaman berikut:
Berikan detail basis data Anda dan klik Berikutnya tombol. Anda akan melihat halaman berikut:
Sekarang, berikan toko Magento dan URL admin Anda, dan klik Berikutnya tombol. Anda akan melihat halaman berikut:
Pilih zona waktu, mata uang, bahasa yang Anda inginkan dan klik Berikutnya tombol. Anda akan melihat halaman berikut:
Sekarang, berikan nama pengguna, kata sandi admin Magento Anda dan klik tombol Berikutnya tombol. Anda akan melihat halaman berikut:
Sekarang, klik tombol Instal Sekarang tombol untuk memulai instalasi Magento. Setelah instalasi selesai dengan sukses. Anda akan melihat halaman berikut:
Sekarang, klik Alamat Toko Anda tombol. Anda akan melihat toko Magento Anda di halaman berikut:
Untuk mengakses antarmuka Admin Magento, ketik URL https://magento.linuxbuz.com/admin_1teqss di browser web Anda. Anda akan diarahkan ke halaman Login Magento:
Berikan nama pengguna, kata sandi admin Magento Anda, dan klik Tanda di tombol. Anda akan melihat antarmuka admin Magento Anda di halaman berikut:
Itu saja untuk saat ini. Magento Anda sekarang diamankan dengan Let's Encrypt SSL gratis.