Magento adalah toko open source (perangkat lunak e-niaga) dan sistem manajemen konten untuk situs web e-niaga berdasarkan PHP Zend Framework. Magento menerapkan konvensi Pemrograman Berorientasi Objek dan arsitektur MVC (Model-View-Controller) dan menggunakan MySQL/MariaDB sebagai database. Perangkat lunak yang dikembangkan telah dimulai pada tahun 2008 oleh Varien Inc. Dalam beberapa tahun terakhir, Magento telah menjadi platform tepercaya untuk perangkat lunak e-niaga yang mendukung bisnis online di seluruh dunia.
Dalam tutorial ini, saya akan memandu Anda melalui instalasi Magento 2.1. Kami akan menginstal Magento 2.1 dengan Nginx dan Php7.0-fpm dan MySQL sebagai database. Untuk tujuan ini, saya akan menggunakan server CentOS 7 dengan SELinux diaktifkan.
Langkah 1 - Instal Nginx
Pada langkah ini, kita akan menginstal Nginx dari repositori epel. Epel tidak tersedia secara default, jadi kita perlu menginstal epel-repository sebelum menginstal Nginx.
Instal epel-repository dengan perintah yum ini.
yum -y install epel-release
Sekarang kita dapat menginstal Nginx dari epel-repository.
yum -y install nginx
Setelah instalasi selesai, mulai Nginx dan tambahkan untuk memulai pada saat boot.
systemctl start nginx
systemctl aktifkan nginx
Nginx dimulai pada port 80, Anda dapat memeriksanya dengan perintah netstat di bawah.
netstat -plntu
Jika Anda melihat hasil 'command not found', Anda dapat menginstal net-tools seperti ini.
yum -y install net-tools
Langkah 2 - Instal dan Konfigurasi PHP-FPM
Dalam tutorial ini, kita akan menggunakan PHP-FPM 7 untuk instalasi Magento. Saya akan menggunakan paket PHP 7 dari repositori Webtatic.
Unduh dan tambahkan repositori webtatic baru ke sistem.
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
Sekarang jalankan perintah di bawah ini untuk menginstal PHP-FPM7 dengan semua paket dan ekstensi yang diperlukan untuk instalasi Magento.
yum -y install php70w-fpm php70w-mcrypt php70w-curl php70w-cli php70w-mysql php70w-gd php70w-xsl php70w-json php70w-intl php70w-pear php70w-devel php70w-mbstringKetika instalasi PHP-FPM7 selesai, kita perlu mengkonfigurasinya. Kami akan mengkonfigurasi file php.ini dan file 'www.conf' konfigurasi php-fpm.
Edit php.ini dengan vim.
vim /etc/php.iniBatalkan komentar pada baris cgi.fix_pathinfo 762 dan ubah nilainya menjadi 0.
cgi.fix_pathinfo=0Konfigurasikan batas memori, waktu eksekusi maksimal dan aktifkan kompresi output zlib, pastikan Anda mengatur nilai seperti yang ditunjukkan di bawah ini.
memory_limit =512M
max_execution_time =1800
zlib.output_compression =AktifBatalkan komentar direktori jalur sesi dan ubah direktori seperti di bawah ini.
session.save_path ="/var/lib/php/session"Simpan dan keluar.
Selanjutnya, edit file konfigurasi php-fpm www.conf dengan perintah vim.
vim /etc/php-fpm.d/www.confPHP-FPM7 akan berjalan di bawah pengguna dan grup 'nginx', ubah nilainya menjadi 'nginx' untuk baris pengguna dan grup.
pengguna =nginx
grup =nginxKami akan menjalankan php-fpm di bawah file soket, bukan port server. Ubah nilai baris pendengar ke jalur file soket.
listen =/var/run/php/php-fpm.sockFile soket harus dimiliki oleh pengguna dan grup 'nginx', batalkan komentar pada baris yang mendengarkan dan ubah nilainya seperti yang ditunjukkan di bawah ini.
listen.owner =nginx
listen.group =nginx
listen.mode =0660Terakhir, batalkan komentar pada baris lingkungan PHP-FPM 366-370.
env[HOSTNAME] =$HOSTNAME
env[PATH] =/usr/local/bin:/usr/bin:/bin
env[TMP] =/tmp
env[ TMPDIR] =/tmp
env[TEMP] =/tmpSimpan dan keluar.
Selanjutnya, buat direktori baru untuk jalur sesi dan lokasi file sock php. Kemudian ubah pemiliknya menjadi pengguna dan grup 'nginx'.
Buat direktori baru untuk jalur sesi.
mkdir -p /var/lib/php/session/
chown -R nginx:nginx /var/lib/php/session/Buat direktori baru untuk lokasi file socket php-fpm.
mkdir -p /run/php/
chown -R nginx:nginx /run/php/Konfigurasi PHP-FPM7 selesai, jalankan daemon sekarang dan aktifkan untuk memulai saat boot dengan perintah systemctl di bawah ini.
systemctl start php-fpm
systemctl aktifkan php-fpmJika tidak ada kesalahan, Anda dapat menggunakan perintah di bawah ini untuk memeriksa apakah php-fpm berjalan di bawah file soket.
netstat -pl | grep php-fpm.sock
Langkah 3 - Instal Server MySQL 5.7
Magento 2.1 membutuhkan versi MySQL saat ini, Anda dapat menggunakan MySQL 5.6 atau 5.7 untuk instalasi. Dalam tutorial ini, kita akan menggunakan MySQL 5.7 yang dapat diinstal dari repositori resmi MySQL. Jadi kita perlu menambahkan repositori MySQL baru terlebih dahulu.
Unduh dan tambahkan repositori MySQL baru untuk instalasi MySQL 5.7.
yum localinstall https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpmSekarang instal MySQL 5.7 dari repositori MySQL dengan perintah yum di bawah ini.
yum install mysql-community-serverKetika instalasi selesai, mulai mysql dan tambahkan untuk memulai saat boot.
systemctl start mysqld
systemctl aktifkan mysqldMySQL 5.7 telah diinstal dengan kata sandi root default, disimpan dalam file mysqld.log. Gunakan perintah grep untuk melihat kata sandi default untuk MySQL 5.7. Jalankan perintah di bawah ini.
grep 'sementara' /var/log/mysqld.log
Sekarang Anda melihat kata sandi root MySQL saat ini, Anda harus mengubah kata sandi default.
Hubungkan ke shell mysql dengan root pengguna dan kata sandi default.
mysql -u root -p
TYPE DEFAULT PASSWORDUbah kata sandi root default dengan kueri di bawah ini. Saya akan menggunakan sandi baru '[email protected]' di sini. Silakan pilih kata sandi yang aman.
ALTER USER 'root'@'localhost' DIIDENTIFIKASI DENGAN '[email protected]';
hak flush;
Kata sandi root MySQL default telah diubah. Selanjutnya kita perlu membuat user baru dan database baru untuk instalasi Magento.
Kami akan membuat database baru bernama 'magentodb' dan pengguna baru 'magentouser' dengan sandi '[email protected]'. Kemudian berikan semua hak istimewa database kepada pengguna baru. Jalankan kueri mysql di bawah.
buat database magentodb;
buat pengguna [dilindungi email] yang diidentifikasi dengan '[dilindungi email]';
berikan semua hak istimewa di magentodb.* kepada [dilindungi email] yang diidentifikasi dengan '[dilindungi email]';
hak flush;
Instalasi dan konfigurasi MySQL 5.7 selesai dan database untuk instalasi Magento telah dibuat.
Langkah 4 Instal dan Konfigurasi Magento
Pada langkah ini, kita akan mulai menginstal dan mengkonfigurasi Magento. Untuk direktori root web, kita akan menggunakan direktori '/var/www/magento2'. Kami membutuhkan komposer PHP untuk instalasi paket Magento.
Instal Komposer PHP
Kami akan menggunakan Komposer untuk instalasi ketergantungan paket PHP. Instal composer dengan perintah curl di bawah ini.
curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/bin --filename=composerKetika instalasi selesai, Anda dapat memeriksa versi komposer seperti yang ditunjukkan di bawah ini.
komposer -v
Komposer PHP telah diinstal.
Unduh dan Ekstrak Magento
Buka direktori '/var/www' dan unduh kode Magento dengan perintah wget.
cd /var/www/
wget https://github.com/magento/magento2/archive/2.1.zipInstal unzip dengan yum.
yum -y install unzipEkstrak kode Magento dan ganti nama direktori menjadi direktori 'magento2'.
unzip 2.1.zip
mv magento2-2.1 magento2Instal Ketergantungan PHP
Buka direktori magento2 dan instal semua dependensi Magento dengan perintah composer.
cd magento2
instal komposer -v
Tunggu hingga penginstalan Ketergantungan PHP selesai.
Mengonfigurasi Host Virtual Magento
Buka direktori Nginx dan buat file konfigurasi virtual host baru bernama 'magento.conf' di direktori 'conf.d'.
cd /etc/nginx/
vim conf.d/magento.confTempel konfigurasi host virtual di bawah ini.
upstream fastcgi_backend {
server unix:/run/php/php-fpm.sock;
}
server {
mendengarkan 80;
server_name magento.hakase-labs.com;
set $MAGE_ROOT /var/www/magento2;
set $MAGE_MODE developer;
include /var/www/magento2/nginx. conf.sample;
}Simpan dan keluar.
Sekarang uji konfigurasi. Jika tidak ada kesalahan, mulai ulang layanan Nginx.
nginx -t
systemctl restart nginx
Instal Magento 2.1
Buka direktori magento2 untuk menginstal Magento pada baris perintah.
cd /var/www/magento2Jalankan perintah di bawah ini, pastikan Anda memiliki konfigurasi yang benar. Nilai-nilai yang perlu diubah oleh Anda dijelaskan di bawah ini.
pengaturan bin/magento:install --backend-frontname="adminlogin" \
--key="biY8vdWx4w8KV5Q59380Fejy36l6ssUb" \
--db-host="localhost" \
- -db-name="magentodb" \
--db-user="magentouser" \
--db-password="[email protected]" \
--language="en_US " \
--currency="USD" \
--timezone="America/New_York" \
--use-rewrites=1 \
--use-secure=0 \
--base-url="http://magento.hakase-labs.com" \
--base-url-secure="https://magento.hakase-labs.com " \
--admin-user=adminuser \
[email protected] \
[email protected] \
--admin-firstname=admin \
-- admin-lastname=user \
--cleanup-databaseUbah nilai untuk:
- --backend-frontname:Halaman login admin Magento "adminlogin"
- --key:buat kunci Anda sendiri
- --db-host:Host basis data localhost
- --db-name:nama basis data 'magentodb'
- --db-user:pengguna basis data 'magentouser'
- --db-password:sandi database '[email protected]'
- --base-url:URL Magento
- --admin-user:Pengguna admin Anda
- --admin-password:Kata sandi admin Magento Anda
- --admin-email:Alamat email Anda
Ketika Anda tidak memiliki kesalahan dalam perintah, Anda akan melihat hasilnya di bawah ini.
Magento 2.1 diinstal. Jalankan perintah di bawah ini untuk mengubah izin direktori etc dan mengubah pemilik direktori magento2 menjadi pengguna 'nginx'.
chmod 700 /var/www/magento2/app/etc
chown -R nginx:nginx /var/www/magento2Konfigurasi Magento Cron
Cronjob ini diperlukan untuk pengindeks Magento. Buat cronjob baru sebagai pengguna 'nginx' (karena magento berjalan di bawah pengguna dan grup nginx).
crontab -u nginx -eTempelkan konfigurasi di bawah ini.
* * * * * /usr/bin/php /var/www/magento2/bin/magento cron:run | grep -v "Jalankan pekerjaan sesuai jadwal">> /var/www/magento2/var/log/magento.cron.log
* * * * * /usr/bin/php /var/www/magento2/update /cron.php> > /var/www/magento2/var/log/update.cron.log
* * * * * /usr/bin/php /var/www/magento2/bin/magento setup:cron :run>> /var/www/magento2/var/log/setup.cron.logSimpan dan keluar.
Langkah 5 - Konfigurasi SELinux dan Firewalld
Dalam tutorial ini, kita akan membiarkan SELinux dalam mode 'Enforcing'. Jalankan perintah di bawah ini untuk memeriksa status SELinux.
status
SELinux dalam mode 'Menegakkan'.
Instal alat manajemen SELinux 'policycoreutils-python' dengan perintah yum di bawah ini.
yum -y install policycoreutils-pythonBuka direktori '/var/www/'.
cd /var/www/Jalankan perintah di bawah ini untuk mengubah konteks keamanan untuk file dan direktori Magento.
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/magento2(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/magento2/app/etc(/.* )?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/magento2/var(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/magento2/pub /media(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/magento2/pub/static(/.*)?'
restorecon -Rv '/var/www /magento2/'Konfigurasi SELinux selesai. Sekarang kita perlu mengkonfigurasi firewalld.
Instal paket firewalld jika Anda belum memilikinya di server Anda.
yum -y install firewalldMulai firewall dan tambahkan firewalld untuk memulai saat boot.
systemctl start firewalld
systemctl aktifkan firewalldBuka port untuk HTTP dan HTTPS agar kami dapat mengakses URL Magento dari browser web.
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reloadLihat port terbuka untuk layanan dengan perintah di bawah ini.
firewall-cmd --list-all
HTTP dan HTTPS siap untuk koneksi.
Langkah 6 - Pengujian
Buka browser web Anda lalu telusuri URL Magento. Milik saya adalah:
magento.hakase-labs.com
Dan Anda akan melihat beranda Magento default.
Selanjutnya, login ke dashboard admin dengan membuka URL adminlogin.
magento.hakase-labs.com/adminlogin
Masuk dengan pengguna dan kata sandi admin Anda.
Dasbor admin Magento.
Magento 2.1 telah berhasil diinstal dengan Nginx, PHP-FPM7 dan MySQL 5.7 di server CentOS 7.
Cent OS