Kebutuhan e-commerce di dunia ini cukup banyak. Namun untungnya, banyak pula framework atau CMS yang mampu menyediakan fitur untuk membuat e-commerce. Salah satunya adalah Magento, salah satu CMS e-commerce ini adalah open-source platform yang menawarkan CMS versi gratis, yaitu Magento Open Source (sebelumnya adalah Magento Community). Pelajari cara instal Magento 2 di CentOS 7 berikut ini.
Tentang Magento
Magento adalah open-source e-commerce yang dikembangkan oleh Varien, Inc. Platform e-commerce yang ditulis menggunakan bahasa pemrograman PHP ini dirilis pada 31 Maret 2008, versi yang terbaru adalah 2.3.2.
Requirements
- OS: CentOS, Ubuntu, Debian, atau Red Hat Entreprise Linux (RHEL).
- RAM: 2GB.
Instalasi Magento di Linux CentOS 7
Setelah memenuhi requirements yang dibutuhkan, ikuti langkah berikut ini untuk mulai melakukan instal Magento 2 di CentOS 7.
Step 1 – Instal Nginx
Instal Epel Repository dan Nginx
$ yum install epel-release -y $ yum install nginx -y
Start dan enable Nginx untuk start on-boot
$ systemctl start nginx $ systemctl enable nginx
Instal net-tools dan cek port Nginx-nya
$ yum install net-tools -y $ netstat -plntu
Jika sudah seperti di atas, maka port 80 sudah running.
Step 2 – Instal dan Configure PHP-FPM
Tambahkan Repository WebStatic
$ rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm $ yum install php70w-fpm php70w-mcrypt php70w-curl php70w-cli php70w-mysql php70w-gd php70w-xsl php70w-json php70w-intl php70w-pear php70w-devel php70w-mbstring php70w-zip php70w-soap -y
Di sini kami menggunakan PHP versi 7 untuk instal Magento 2.
Edit php.ini
$ nano /etc/php.ini
Hilangkan comment cgi.fix_pathinfo di line 762 dan ubah value-nya ke 0
Cgi.fix_pathinfo = 0
Ubah value memory limit, max execution time dan enable zlib compression-nya
memory_limit = 512M max_execution_time = 1800 zlib.output_compression = On
Hilangkan comment dan ubah session path-nya
;session.save_path = "/tmp" menjadi session.save_path = "/var/lib/php/session"
Edit PHP-FPM file
$ nano /etc/php-fpm.d/www.conf
Ubah value-nya menjadi nginx karena web server yang digunakan adalah Nginx
user = nginx group = nginx
Ubah listen php-fpm dan hilangkan comment listen owner, group, serta mode
listen = /var/run/php/php-fpm.sock listen.owner = nginx listen.group = nginx listen.mode = 0660
Hilangkan comment environment pada line 366-370
env[HOSTNAME] = $HOSTNAME env[PATH] = /usr/local/bin:/usr/bin:/bin env[TMP] = /tmp env[TMPDIR] = /tmp env[TEMP] = /tmp
Buat Directory Session Path
$ mkdir -p /var/lib/php/session/ $ chown -R nginx:nginx /var/lib/php/session/
Buat Directory Socket PHP-FPM
$ mkdir -p /run/php/ $ chown -R nginx:nginx /run/php/
Start PHP-FPM dan enable PHP-FPM untuk start on-boot
$ systemctl start php-fpm $ systemctl enable php-fpm
Kemudian cek PHP-FPM yang running pada socket file
$ netstat -pl | grep php-fpm.sock
Jika sudah seperti di atas artinya services php-fpm sudah berjalan.
Step 3 – Instal MySQL
Agar hasil instal Magento bisa digunakan, kamu memerlukan MySQL, di artikel ini MySQL yang digunakan adalah versi 5.7.
Unduh dan tambahkan Repository MySQL 5.7
$ yum localinstall https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
Instal MySQL
$ yum install mysql-community-server
Start dan enable MySQL untuk start on-boot
$ systemctl start mysqld $ systemctl enable mysqld
Instalasi ini menggunakan default password MySQL, untuk mengetahuinya kamu bisa menjalankan perintah di bawah ini.
$ grep 'temporary' /var/log/mysqld.log
Ubah default password MySQL
$ mysql -u root -p
Masukkan password default yang sudah dilihat dari perintah di atas.
Ubah password-nya
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY ‘[email protected]#’'; mysql> FLUSH PRIVILEGES;
Buat Database
mysql> CREATE DATABASE magentodb;
Buat user database dan password
mysql> CREATE USER [email protected] IDENTIFIED BY '[email protected]';
Grant Permission Privileges
mysql> GRANT ALL PRIVILEGES ON magentodb.* to [email protected] IDENTIFIED BY '[email protected]'; mysql> FLUSH PRIVILEGES;
Proses instalasi MySQL, konfigurasi, dan membuat database pengguna serta password sudah selesai.
Baca Juga: Optimasi Database MySQL Menggunakan MySQLTuner
Step 4 – Instal dan Konfigurasi Magento
Langkah selanjutnya adalah melakukan instal sekaligus konfigurasi Magento 2 di CentOS 7 dengan cara berikut:
Instal PHP Composer
Kami menggunakan cURL untuk instalasi PHP Composer dan PHP Composer digunakan untuk instal PHP Dependencies.
$ curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/bin --filename=composer
Cek versi Composer
$ composer -v
Unduh dan extract Magento
Ke directory /var/www/ dan unduh file Magento di directory tersebut.
$ cd /var/www/ $ wget https://github.com/magento/magento2/archive/2.1.zip
Instal Unzip
$ yum install unzip -y
Unzip file dan rename
$ unzip 2.1.zip $ mv magento2-2.1 magento2
Instal PHP Dependencies
Ke directory Magento 2 dan lakukan composer install.
$ cd magento2 $ composer install -v
Konfigurasi Magento Virtual Host
$ cd /etc/nginx/ $ nano conf.d/magento.conf
Copy dan paste script berikut ke dalam magento.conf
upstream fastcgi_backend { server unix:/run/php/php-fpm.sock; } server { listen 80; listen [::]:80; index index.php index.html index.htm; server_name magento.dewiweb.net www.magento.dewiweb.net; set $MAGE_ROOT /var/www/magento2; set $MAGE_MODE developer; include /var/www/magento2/nginx.conf.sample; }
Kemudian tes konfigurasi Nginx-nya dan restart service Nginx.
$ nginx -t $ systemctl restart nginx
Setup Magento 2
Ke directory Magento 2
$ cd /var/www/magento2/
Jalankan perintah berikut:
$ bin/magento setup:install --backend-frontname="adminlogin" \ --key="255aa6cb80421093126011ec201dbe83" \ --db-host="localhost" \ --db-name="magentodb" \ --db-user="magentouser" \ --db-password="[email protected]" \ --language="en_US" \ --currency="IDR" \ --timezone="Asia/Jakarta" \ --use-rewrites=1 \ --use-secure=0 \ --base-url="http://magento.dewiweb.net" \ --base-url-secure="https://magento.dewiweb.net" \ --admin-user=adminadminuser \ [email protected] \ [email protected] \ --admin-firstname=admin \ --admin-lastname=user \ --cleanup-database
Kamu perlu ubah value-nya:
--backend-frontname: Magento admin login page "adminlogin" --key: generate key kamu --db-host: Database host localhost --db-name: database name 'magentodb' --db-user: database user 'magentouser' --db-password: database password '[email protected]' --base-url: Magento URL --admin-user: admin user kamu --admin-password: password admin kamu --admin-email: email kamu
Generate Key
- Login ke halaman akun pelanggan Magento
- My Product -> Access Keys
- Create new access keys -> masukkan namanya, contoh: dewaweb
- Salin public key yang akan digunakan pada value “key” saat setup Magento.
Tampilan di atas artinya setup berhasil.
Ubah permission dan owner directory Magento
$ chmod 700 /var/www/magento2/app/etc $ chown -R nginx:nginx /var/www/magento2
Configure Magento Crontab
$ crontab -u nginx -e
Masukkan perintah di bawah ini pada file crontab.
* * * * * /usr/bin/php /var/www/magento2/bin/magento cron:run | grep -v "Ran jobs by schedule" >> /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.log
Ubah Security Context pada directory Magento
$ cd /var/www/ $ 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/'
Step 5 – Instal Firewall
$ cd /usr/src $ wget https://download.configserver.com/csf.tgz $ tar -xzf csf.tgz $ cd csf $ sh install.sh
Pada konfigurasi CSF ubah “make TESTING=’1’ menjadi 0”.
$ nano /etc/csf/csf.conf
Kemudian restart CSF agar dapat me-reload konfigurasi yang ter-update.
$ csf -r
Setelah itu, coba akses website Magento kamu.
Jika diikuti dengan benar, seharusnya tampilan layar saat ini sama seperti di atas, yaitu hasil instal Magento 2 di CentOS 7 yang sudah berhasil.
Baca Juga: Cara Instalasi VirtualBox di CentOS 7
Simpulan
Requirement yang dibutuhkan Magento 2 memang cukup berat, oleh karenanya lebih baik jika kamu menggunakan VPS sendiri. Cara lainnya, kamu bisa menggunakan layanan cloud hosting yang mencukupi untuk dapat menggunakan Magento ini. Di Dewaweb, jika ingin menginstal Magento kamu memerlukan minimal paket Guardian karena sudah memiliki resource yang cukup.
Demikian artikel tentang cara instal Magento 2 ini, jangan sungkan untuk meninggalkan ide-ide topik yang ingin kamu baca di blog Dewaweb. Semoga artikel ini membantu!