PrestaShopi adalah platform e-commerce gratis dan open-source. Ini didasarkan pada PHP dan MySQL dan dapat diperluas dengan plugin dan tema gratis dan premium.
Dengan fitur seperti antarmuka administratif yang intuitif, beberapa gateway pembayaran, multibahasa, analitik, dan pelaporan, PrestaShop adalah platform pilihan bagi banyak pedagang online.
Dalam tutorial ini, kami akan menunjukkan cara menginstal PrestaShop di server Ubuntu 18.04. Kami akan menggunakan Nginx sebagai server web, PHP 7.2 terbaru dan MySQL/MariaDB sebagai server database.
Prasyarat #
Pastikan Anda telah memenuhi prasyarat berikut sebelum melanjutkan tutorial ini:
- Memiliki nama domain yang menunjuk ke IP server publik Anda. Kami akan menggunakan
example.com
. - Nginx diinstal pada server Ubuntu Anda dengan mengikuti petunjuk berikut.
- Sertifikat SSL dipasang untuk domain Anda guna mengenkripsi informasi pengguna. Anda dapat memasang sertifikat SSL Let's Encrypt gratis dengan mengikuti petunjuk berikut.
Perbarui paket sistem ke versi terbaru dan instal utilitas unzip:
sudo apt update && sudo apt upgrade
sudo apt install unzip
Membuat Database MySQL #
PrestaShop menyimpan informasinya dalam database MySQL.
Jika MySQL atau MariaDBis terinstal di server Anda, Anda dapat melewati langkah ini. Jika tidak, instal paket server MySQL 5.7 dari repositori default Ubuntu dengan mengetik:
sudo apt install mysql-server mysql-client
Untuk instalasi MySQL baru, disarankan untuk menjalankan mysql_secure_installation
perintah untuk meningkatkan keamanan server MySQL Anda. Untuk membuat database, masuk ke shell mysql:
sudo mysql
Dari dalam shell MySQL, jalankan pernyataan SQL berikut untuk membuat database baru dengan nama prestashop
:
CREATE DATABASE prestashop;
Selanjutnya, buat akun pengguna MySQL dengan nama prestashop
dan berikan izin yang diperlukan kepada pengguna dengan menjalankan perintah berikut:
GRANT ALL ON prestashop.* TO 'prestashop'@'localhost' IDENTIFIED BY 'change-with-strong-password';
Jangan lupa ganti change-with-strong-password
dengan kata sandi yang kuat. Setelah selesai, keluar dari konsol MySQL dengan mengetik:
EXIT;
Instalasi dan Konfigurasi PHP #
PHP 7.2 adalah versi PHP default di Ubuntu 18.04, dan didukung sepenuhnya serta direkomendasikan untuk PrestaShop.
Jalankan perintah berikut untuk menginstal PHP dan semua modul PHP yang diperlukan:
sudo apt install php7.2-common php7.2-cli php7.2-fpm php7.2-opcache php7.2-gd php7.2-mysql php7.2-curl php7.2-intl php7.2-xsl php7.2-mbstring php7.2-zip php7.2-bcmath php7.2-soap
Setelah proses instalasi selesai, layanan PHP-FPM akan otomatis dimulai. Anda dapat memverifikasinya dengan mengetik:
sudo systemctl status php7.2-fpm
Outputnya akan terlihat seperti ini:
* php7.2-fpm.service - The PHP 7.2 FastCGI Process Manager
Loaded: loaded (/lib/systemd/system/php7.2-fpm.service; enabled; vendor preset: enabled)
Active: active (running) since Sun 2019-03-24 11:53:33 PDT; 14s ago
Docs: man:php-fpm7.2(8)
Main PID: 15853 (php-fpm7.2)
Status: "Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req/sec"
Jalankan sed
berikut ini perintah untuk mengatur opsi PHP yang direkomendasikan:
sudo sed -i "s/memory_limit = .*/memory_limit = 1024M/" /etc/php/7.2/fpm/php.ini
sudo sed -i "s/upload_max_filesize = .*/upload_max_filesize = 256M/" /etc/php/7.2/fpm/php.ini
sudo sed -i "s/zlib.output_compression = .*/zlib.output_compression = on/" /etc/php/7.2/fpm/php.ini
sudo sed -i "s/max_execution_time = .*/max_execution_time = 18000/" /etc/php/7.2/fpm/php.ini
sudo sed -i "s/;date.timezone.*/date.timezone = UTC/" /etc/php/7.2/fpm/php.ini
sudo sed -i "s/;opcache.save_comments.*/opcache.save_comments = 1/" /etc/php/7.2/fpm/php.ini
Mengunduh PrestaShop #
Pada saat artikel ini ditulis, versi stabil terbaru dari PrestaShop adalah versi 1.7.6.2
.
Unduh versi terbaru PrestaShop dari Halaman Unduhan PrestaShop menggunakan perintah wget berikut:
cd /tmp
wget https://download.prestashop.com/download/releases/prestashop_1.7.6.2.zip
Ketika unduhan selesai, buat direktori yang akan menampung file PrestaShop kami:
sudo mkdir -p /var/www/html/example.com
Selanjutnya, ekstrak arsip PrestaShop:
unzip prestashop_*.zip
Arsip ini berisi file zip lain "prestashop.zip", yang berisi semua file PrestaShop. Ekstrak file ke direktori root dokumen domain:
sudo unzip prestashop.zip -d /var/www/html/example.com
Tetapkan izin yang benar sehingga server web dapat memiliki akses penuh ke file dan direktori situs menggunakan chown
berikut perintah:
sudo chown -R www-data: /var/www/html
Mengonfigurasi Nginx #
Sekarang, Anda seharusnya sudah menginstal Nginx dengan sertifikat SSL di server Ubuntu Anda. Jika tidak, periksa prasyarat untuk tutorial ini.
Buka editor teks Anda dan buat file berikut:
sudo nano /etc/nginx/sites-available/example.com
/etc/nginx/sites-available/example.comserver {
listen 80;
listen 443 ssl http2;
server_name example.com www.example.com;
root /var/www/html/example.com;
index index.php;
# SSL parameters
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;
include snippets/ssl.conf;
include snippets/letsencrypt.conf;
# Cloudflare / Max CDN fix
location ~* \.(eot|otf|ttf|woff(?:2)?)$ {
add_header Access-Control-Allow-Origin *;
}
# Do not save logs for these
location = /favicon.ico {
auth_basic off;
allow all;
log_not_found off;
access_log off;
}
location = /robots.txt {
auth_basic off;
allow all;
log_not_found off;
access_log off;
}
# Images
rewrite ^/([0-9])(-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+.jpg$ /img/p/$1/$1$2$3.jpg last;
rewrite ^/([0-9])([0-9])(-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+.jpg$ /img/p/$1/$2/$1$2$3$4.jpg last;
rewrite ^/([0-9])([0-9])([0-9])(-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+.jpg$ /img/p/$1/$2/$3/$1$2$3$4$5.jpg last;
rewrite ^/([0-9])([0-9])([0-9])([0-9])(-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+.jpg$ /img/p/$1/$2/$3/$4/$1$2$3$4$5$6.jpg last;
rewrite ^/([0-9])([0-9])([0-9])([0-9])([0-9])(-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+.jpg$ /img/p/$1/$2/$3/$4/$5/$1$2$3$4$5$6$7.jpg last;
rewrite ^/([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+.jpg$ /img/p/$1/$2/$3/$4/$5/$6/$1$2$3$4$5$6$7$8.jpg last;
rewrite ^/([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+.jpg$ /img/p/$1/$2/$3/$4/$5/$6/$7/$1$2$3$4$5$6$7$8$9.jpg last;
rewrite ^/([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+.jpg$ /img/p/$1/$2/$3/$4/$5/$6/$7/$8/$1$2$3$4$5$6$7$8$9$10.jpg last;
rewrite ^/c/([0-9]+)(-[.*_a-zA-Z0-9-]*)(-[0-9]+)?/.+.jpg$ /img/c/$1$2$3.jpg last;
rewrite ^/c/([a-zA-Z_-]+)(-[0-9]+)?/.+.jpg$ /img/c/$1$2.jpg last;
# AlphaImageLoader for IE and fancybox
rewrite ^images_ie/?([^/]+)\.(jpe?g|png|gif)$ js/jquery/plugins/fancybox/images/$1.$2 last;
# Web service API
rewrite ^/api/?(.*)$ /webservice/dispatcher.php?url=$1 last;
# Installation sandbox
rewrite ^(/install(?:-dev)?/sandbox)/(.*) /$1/test.php last;
#Change this block to your admin folder
location /admin_CHANGE_ME {
if (!-e $request_filename) {
rewrite ^/.*$ /admin_CHANGE_ME/index.php last;
}
}
# File security
# .htaccess .DS_Store .htpasswd etc
location ~ /\. {
deny all;
}
# Source code directories
location ~ ^/(app|bin|cache|classes|config|controllers|docs|localization|override|src|tests|tools|translations|travis-scripts|vendor|var)/ {
deny all;
}
# Prevent exposing other sensitive files
location ~ \.(yml|log|tpl|twig|sass)$ {
deny all;
}
# Prevent injection of php files
location /upload {
location ~ \.php$ {
deny all;
}
}
location /img {
location ~ \.php$ {
deny all;
}
}
# PHP FPM part
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.2-fpm.sock;
}
}
Jangan lupa untuk mengganti example.com dengan domain PrestaShop Anda, dan “admin_CHANGE_ME” dengan direktori admin Anda. Anda dapat menemukan nama direktori dengan membuat daftar isi direktori root Prestashop:
sudo ls -l /var/www/html/example.com | grep admin
Pastikan juga Anda menggunakan jalur yang benar ke file sertifikat SSL. Cuplikan yang digunakan dalam konfigurasi ini dibuat dalam panduan ini.
Sebelum memulai ulang layanan Nginx, periksa konfigurasi untuk kesalahan sintaks:
sudo nginx -t
Outputnya akan terlihat seperti ini:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Terakhir, restart layanan Nginx dengan mengetik:
sudo systemctl restart nginx
Menginstal PrestaShop #
Sekarang PrestaShop telah diunduh dan konfigurasi server selesai, Anda dapat menyelesaikan penginstalan melalui antarmuka web.
Buka browser Anda, ketik domain Anda, dan layar seperti berikut akan muncul:
Pilih bahasa yang ingin Anda gunakan dan klik tombol “Berikutnya”.
Pada layar berikutnya, Anda akan disajikan dengan perjanjian lisensi PrestaShop. Baca lisensi dan pilih "Saya setuju dengan syarat dan ketentuan di atas." untuk melanjutkan:
Selanjutnya, Anda akan melihat halaman informasi berikut:
Pastikan semua persyaratan pra-pemasangan terpenuhi, dan sistem Anda kompatibel dengan PrestaShop.
Di layar berikutnya, Anda harus memasukkan detail toko Anda. Alamat email adalah nama pengguna untuk mengakses backend administrasi PrestaShop.
Selanjutnya, wizard pengaturan akan meminta Anda untuk memasukkan detail koneksi database Anda. Masukkan pengguna MySQL dan detail database yang Anda buat sebelumnya:
Klik tombol “Next”, dan instalasi akan dimulai:
Instalasi mungkin memakan waktu beberapa menit, setelah selesai halaman berikut akan muncul, memberitahu Anda bahwa PrestaShop telah diinstal.
Untuk alasan keamanan, Anda harus menghapus direktori instalasi. Untuk melakukannya, kembali ke terminal dan masukkan rm
berikut perintah:
sudo rm -rf /var/www/html/example.com/install
Untuk mengakses dasbor administratif PrestaShop Anda, klik tombol “Kelola toko Anda”. Masukkan email dan kata sandi Anda, dan Anda akan diarahkan ke dasbor administrasi.
Dari sini, Anda dapat mulai menyesuaikan instalasi PrestaShop dan menambahkan produk baru.