Shopware adalah generasi berikutnya dari perangkat lunak e-commerce open source. Berdasarkan pada teknologi mutakhir seperti Symfony 3, Doctrine2 dan Zend Framework Shopware hadir sebagai platform yang sempurna untuk proyek e-commerce Anda berikutnya.

Tutorial ini akan memandu Anda melalui pemasangan Shopware Community Edition (CE) pada sistem CentOS 7 dengan menggunakan NGINX sebagai web server .

Persyaratan Shopware

Pastikan sistem Anda memenuhi persyaratan minimum berikut:

  • Sistem operasi berbasis Linux dengan server web NGINX atau Apache 2.x (dengan mod_rewrite).
  • PHP 5.6.4 atau lebih tinggi dengan ekstensi ctype, gd, curl, dom, hash, iconv, zip, json, mbstring, openssl, session, simplexml, xml, zlib, fileinfo, dan pdo/mysql. Di rekomendasikan PHP 7.1 atau lebih tinggi.
  • MySQL 5.5.0 atau lebih tinggi.
  • Kemampuan untuk melakukan cron jobs.
  • Minimal 4 GB ruang hard disk yang tersedia.
  • IonCube Loader versi 5.0.0 atau yang lebih baru (optional).

Prasyarat

Langkah awal

Siapkan zona waktu server, Pada contoh kali ini kita akan mengatur pada zona waktu menjadi Asia/Jakarta :

timedatectl list-timezones
sudo timedatectl set-timezone 'Asia/Jakarta'

Perbarui paket sistem operasi Anda (software). Ini adalah langkah pertama yang penting karena memastikan Anda memiliki pembaruan terbaru dan perbaikan keamanan untuk paket perangkat lunak default sistem operasi Anda:

sudo yum update -y

Instal beberapa paket penting yang diperlukan untuk administrasi dasar sistem operasi CentOS:

sudo yum install -y curl wget vim unzip socat epel-release

Langkah 1 – Install PHP dan PHP extensions

Setup Webtatic YUM repo:

sudo rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

Install PHP dan juga PHP extensions yang diperlukan Shopware:

sudo yum install -y php72w php72w-cli php72w-fpm php72w-common php72w-mysql php72w-curl php72w-json php72w-zip php72w-gd php72w-xml php72w-mbstring php72w-opcache

Untuk menampilkan modul PHP yang telah terkompilasi, anda dapat menjalankan :

php -m

ctype
curl
exif
fileinfo
. . .
. . .

periksa versi PHP :

php --version
# PHP 7.2.14 (cli) (built: Jan 12 2019 12:47:33) ( NTS )
# Copyright (c) 1997-2018 The PHP Group
# Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
#     with Zend OPcache v7.2.14, Copyright (c) 1999-2018, by Zend Technologies

Start dan aktifkan PHP-FPM service dengan perintah :

sudo systemctl start php-fpm.service
sudo systemctl enable php-fpm.service

Sekarang kita dapat melaju ke langkah berikutnya, yaitu instalasi IonCube Loader installation.

Langkah 2 – Install IonCube Loader (optional)

Download IonCube Loader:

cd /tmp && wget https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz

Extract loader:

tar xfz ioncube_loaders_lin_*.gz

Selanjutnya temukan direktori PHP extensions dari sistem dengan menggunakan perintah grep :

php -i | grep extension_dir
# extension_dir => /usr/lib64/php/modules => /usr/lib64/php/modules

Copy ionCube Loader ke direktori PHP extensions, Mohon untuk di perhatikan versi ioncube loader, jika Anda menggunakan php versi 7.3 maka gunakan ioncube_loader_lin_7.3.so :

sudo cp /tmp/ioncube/ioncube_loader_lin_7.2.so /usr/lib64/php/modules

Masukkan konfigurasi loader PHP ke php.ini:

sudo nano /etc/php.ini

kemudian tambahkan baris berikut yang akan memuat konfigurasi ionCube loader, tempatkan di bagian mana saja.

zend_extension = /usr/lib64/php/modules/ioncube_loader_lin_7.2.so

Save file dan restart PHP-FPM:

sudo systemctl restart php-fpm.service

Langkah 3 – Install MariaDB dan Buat Database

Install MariaDB database server:

sudo yum install -y mariadb-server

Check versi MariaDB :

mysql --version
# mysql  Ver 14.14 Distrib 5.7.26, for Linux (x86_64) using  EditLine wrapper

Start dan enable MariaDB service:

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

Secara default, MariaDB tidak diamankan. Jadi, Anda perlu mengamankannya dengan

sudo 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
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 MariaDB diamankan, masuk ke shell MariaDB dengan perintah berikut:

sudo mysql -u root -p

Masukkan kata sandi root Anda saat diminta. Kemudian, buat database dan user database untuk Shopware .

Dalam contoh berikut, kita akan membuat database dengan nama shopwaredb dan dengan nama user shopware_user, Anda bebas memberi nama sesuai dengan kehendak Anda.

mysql> CREATE DATABASE shopwaredb;
mysql> GRANT ALL ON shopwaredb.* TO 'shopware_user' IDENTIFIED BY '[email protected]$$w0rd_4nd4';
mysql> FLUSH PRIVILEGES;

keluar dari shell MariaDB dengan perintah berikut:

mysql> exit

Langkah 4 – Install Acme.sh client dan Let’s Encrypt (opsional)

Mengamankan blog/website Anda dengan HTTPS memang langkah opsional, tetapi HTTPS adalah praktik yang baik untuk mengamankan lalu lintas situs Anda.

Untuk mendapatkan sertifikat TLS dari Let’s Encrypt, kita akan menggunakan klien acme.sh. Acme.sh adalah perangkat lunak shell UNIX yang digunakan untuk mendapatkan sertifikat TLS dari Let’s Encrypt dengan tanpa dependensi.

Unduh dan instal acme.sh:

sudo su - root
git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh 
./acme.sh --install --accountemail [email protected]
source ~/.bashrc
cd ~

Periksa versi acme.sh:

acme.sh --version
# v2.8.1

Dapatkan sertifikat RSA dan ECC/ECDSA untuk domain/hostname Anda:

# RSA 2048
acme.sh --issue --standalone -d example.com --keylength 2048
# ECDSA
acme.sh --issue --standalone -d example.com --keylength ec-256

Jika ingin membuat sertifikat palsu untuk pengujian, Anda dapat menambahkan flag--stagingke perintah di atas.

Setelah menjalankan perintah di atas, certificates dan keys akan berada di:

  • untuk RSA di direktori : /home/username/example.com.
  • untuk ECC/ECDSA di direktori : /home/username/example.com_ecc.

Untuk list semua sertifikat, jalankan perintah :

acme.sh --list

Buat direktori untuk menyimpan sertifikat Anda. Kita akan menggunakan direktori /etc/letsencrypt

mkdir -p /etc/letsecnrypt/example.com
sudo mkdir -p /etc/letsencrypt/example.com_ecc

Install/copy sertifikat ke direktori /etc/letsencrypt.

# RSA
acme.sh --install-cert -d example.com --cert-file /etc/letsencrypt/example.com/cert.pem --key-file /etc/letsencrypt/example.com/private.key --fullchain-file /etc/letsencrypt/example.com/fullchain.pem --reloadcmd "sudo systemctl reload nginx.service"
# ECC/ECDSA
acme.sh --install-cert -d example.com --ecc --cert-file /etc/letsencrypt/example.com_ecc/cert.pem --key-file /etc/letsencrypt/example.com_ecc/private.key --fullchain-file /etc/letsencrypt/example.com_ecc/fullchain.pem --reloadcmd "sudo systemctl reload nginx.service"

Semua sertifikat akan diperpanjang secara otomatis setiap 60 hari.

Setelah mendapatkan sertifikat, keluar dari user root dan kembali ke user biasa dengan hak sudo :

exit

Step 5 – Install and configure NGINX

Download dan install NGINX

sudo yum install -y nginx

Periksa versi NGINX :

nginx -v

Start dan enable Nginx service:

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

Buat file Konfigurasi NGINX untuk Shopware.

sudo nano /etc/nginx/conf.d/shopware.conf

tambahkan konfigurasi berikut

server {
    listen 80;
    listen 443 ssl;
    
    server_name example.com;
    root /var/www/shopware;
    ssl_certificate /etc/letsencrypt/example.com/fullchain.cer;
    ssl_certificate_key /etc/letsencrypt/example.com/example.com.key;
    ssl_certificate /etc/letsencrypt/example.com_ecc/fullchain.cer;
    ssl_certificate_key /etc/letsencrypt/example.com_ecc/example.com.key;
    index shopware.php index.php;

    location / {
        try_files $uri $uri/ /shopware.php$is_args$args;
    }

    location /recovery/install {
      index index.php;
      try_files $uri /recovery/install/index.php$is_args$args;
    }

    location ~ \.php$ {
        include fastcgi.conf;
        fastcgi_pass 127.0.0.1:9000;
    }
}

Periksa konfigurasi NGINX agar tidak ada syntax errors:

sudo nginx -t

Reload NGINX service:

sudo systemctl reload nginx.service

Langkah 6 – Install Shopware

Buat root direktori untuk Shopware,  direktori ini merupakan tempat di mana Shopware menyimpan semua data dan file dari CMS.

sudo mkdir -p /var/www/shopware

Ubah kepemilikan dari direktori /var/www/shopware menjadi  [username_anda]:

sudo chown -R username_anda:username_anda /var/www/shopware

Masuk ke direktori document root :

cd /var/www/shopware

Download dan unzip rilis terbaru Shopware via wget:

wget https://www.shopware.com/en/Download/redirect/version/sw6/file/install_6.1.5_1585830011.zip -O shopware.zip
unzip shopware.zip
rm shopware.zip

NOTE: Kunjungi halaman resmi shopware untuk melihat apakah ada versi baru yang telah terbit. Ganti URL jika ada versi baru yang tersedia.

Ubah kepemilikan direktori /var/www/shopware menjadi nginx.

sudo chown -R nginx:nginx /var/www/shopware

Jalankan perintah berikut dan atur user dan group ke nginx.

sudo vim /etc/php-fpm.d/www.conf
# user = nginx
# group = nginx

Buat direktori /var/lib/php/session dan ubah kepemilikannya menjadi pengguna nginx.

sudo mkdir -p /var/lib/php/session && sudo chown -R nginx:nginx /var/lib/php/session

langkah berikutnya kita akan meningkatkan maksimal memori dan maksimal upload serta mengatur php fopen. Buka file konfigurasi php.ini dengan perintah berikut :

sudo nano /etc/php.ini

cari pengaturan berikut dan ubah nilainya menjadi :

memory_limit = 256M
upload_max_filesize = 6M
allow_url_fopen = On

Setelah membuat perubahan pada file /etc/php.ini, reload php-fpm.service:

sudo systemctl reload php-fpm.service

Buka domain atau IP Anda di web browser dan ikuti panduan instalasi. Backend dari Shopware terletak di /backend contoh: http://example.com/backend.

Langkah 7 – Selesaikan Instalasi Shopware

Mulai dengan memilih bahasa dan klik Berikutnya:

Selanjutnya, pastikan Anda memenuhi semua persyaratan Shopware:

PAGE 2 - System requirements are met

Setujui TOS Shopware dan klik Next:

PAGE 3 - Accept license

Masukkan kredensial database dan klik Next:

PAGE 4 - Shopware database settings

Mulai instalasi untuk membuat tabel database:

PAGE 5 - Installing database tables

Setelah itu, Anda akan melihat pesan tentang impor database yang sukses:

PAGE 6 - Database initialization successful

Pilih lisensi dan klik Next:

Isi beberapa pengaturan dasar untuk menyelesaikan pengaturan dan klik Berikutnya:

PAGE 8 - Basic settings

Instalasi selesai.

PAGE 9 - Installation is complete

Untuk mengakses admin area tambahkan /backend ke URL Anda.

PAGE 10 - Shopware backend login

Anda telah berhasil menginstal Shopware. Nikmati toko online baru Anda!