installeer je X-Cart met Nginx en Let’s Encrypt SSL op Ubuntu 18.04 LTS
X-Cart is een uiterst flexibel open-source eCommerce platform met een breed scala aan functies en integraties. De X-Cart broncode wordt gehost op Github. Deze gids beschrijft het installatieproces van X-Cart 5 op Ubuntu 18.04 LTS met Nginx als webserver en MySQL als databaseserver en hoe de installatie te beveiligen met een gratis SSL Certificaat van Let’s encrypt.
Vereisten
- PHP versie 7.2 of hoger
- PHP uitbreidingen:
pdo
,phar
,mysql
,mbstring
,curl
- MySQL versie 5.7.7 of hoger of MariaDB equivalent
- Nginx
Eerste stappen
Controleer je Ubuntu versie:
lsb_release -ds
# Ubuntu 18.04.4 LTS
Stel de tijdzone in:
sudo dpkg-reconfigure tzdata
Werk je besturingssysteem pakketten (software) bij. Dit is een belangrijke eerste stap omdat je er zeker van bent dat je de laatste updates en beveiligingsfixes hebt voor de standaard softwarepakketten van je besturingssysteem:
sudo apt update && sudo apt upgrade -y
Installeer enkele essentiƫle pakketten die nodig zijn voor het basisbeheer van het Ubuntu besturingssysteem:
sudo apt install -y curl wget vim git unzip socat bash-completion
Stap 1 – Installeer PHP en PHP uitbreidingen
Installeer PHP, en ook de nodige PHP uitbreidingen:
sudo apt install -y php7.2 php7.2-cli php7.2-fpm php7.2-common php7.2-mbstring php7.2-curl php7.2-mysql php7.2-json php7.2-xml php7.2-phar php7.2-pdo php7.2-gd
Om PHP gecompileerd in modules te laten zien, kun je:
php -m
ctype
curl
exif
fileinfo
. . .
. . .
Controleer de PHP versie:
php --version
# PHP 7.2.17-0ubuntu0.18.04.1 (cli) (built: Apr 18 2019 14:12:38) ( NTS )
# Copyright (c) 1997-2018 The PHP Group
# Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
# with Zend OPcache v7.2.17-0ubuntu0.18.04.1, Copyright (c) 1999-2018, by Zend Technologies
De PHP-FPM dienst wordt automatisch gestart en ingeschakeld bij het herstarten op Ubuntu 18.04 systeem, dus je hoeft hem niet handmatig te starten en in te schakelen. We kunnen overgaan tot de volgende stap, namelijk de installatie en instelling van de databank.
Stap 2 – Installeer MySQL en maak een databank
Installeer MySQL:
sudo apt install -y mysql-server
Controleer de versie:
mysql --version
# mysql Ver 14.14 Distrib 5.7.27, for Linux (x86_64) using EditLine wrapper
Voer het mysql_secure_installation
script uit om je MySQL installatie beter te beveiligen:
sudo mysql_secure_installation
Log in op MySQL als de root gebruiker:
sudo mysql -u root -p
# Enter password:
Maak een nieuwe MySQL database en gebruiker en onthoud de inloggegevens:
CREATE DATABASE dbname;
GRANT ALL ON dbname.* TO 'username' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
exit;
Stap 3 – Installeer acme.sh client en verkrijg het Let’s Encrypt certificaat (optioneel)
Je website beveiligen met HTTPS is niet noodzakelijk, maar het is een goed gebruik om je site verkeer te beveiligen. Om een TLS certificaat van Let’s Encrypt te verkrijgen gebruiken we acme.sh client. Acme.sh is een pure UNIX shell software om TLS certificaten te verkrijgen van Let’s Encrypt zonder afhankelijkheden.
Download en installeer 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 ~
Controleer de versie van acme.sh:
acme.sh --version
# v2.8.1
Verkrijg RSA en ECC/ECDSA certificaten voor je domein/hostnaam:
# RSA 2048
acme.sh --issue --standalone -d example.com --keylength 2048
# ECDSA
acme.sh --issue --standalone -d example.com --keylength ec-256
Als je nep certificaten wilt om te testen kun je de --staging
vlag aan de bovenstaande commando’s toevoegen.
Na het uitvoeren van de bovenstaande commando’s staan jecertificaten ensleutels in:
- Voor RSA:
/home/username/example.com
map. - Voor ECC/ECDSA:
/home/username/example.com_ecc
map.
Om je uitgegeven certs op te sommen kun je uitvoeren:
acme.sh --list
Maak een directory om je certs in op te slaan. We zullen de/etc/letsencrypt
directory gebruiken.
mkdir -p /etc/letsecnrypt/example.com
sudo mkdir -p /etc/letsencrypt/example.com_ecc
Installeer/kopieer certificaten naar/etc/letsencryptmap.
# 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"
Alle certificaten worden om de 60 dagen automatisch vernieuwd.
Verlaat na het verkrijgen van de certs de root gebruiker en ga terug naar de normale sudo gebruiker:
exit
Stap 4 - Installeer en configureer Nginx
Installeer Nginx:
sudo apt install -y nginx
Controleer de Nginx versie:
sudo nginx -v
# nginx version: nginx/1.14.0 (Ubuntu)
Configureer Nginx voor X-Cart door te draaien:
sudo vim /etc/nginx/sites-available/xcart.conf
En vul het bestand met de onderstaande config.
server {
listen 80;
listen [::]:80;
root /var/www/xcart;
index index.php index.html index.htm;
server_name example.com;
location @handler {
index cart.php;
rewrite ^/sitemap.xml(\?.+)?$ /cart.php?target=sitemap;
rewrite ^/(.*)$ /cart.php?url=$1 last;
}
location / {
try_files $uri $uri/ @handler;
}
location ~ \.php$ {
try_files $uri @handler;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_index index.php;
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
include fastcgi_params;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
Activeer de nieuwe xcart.conf
configuratie door het bestand te koppelen aan de sites-enabled
directory:
sudo ln -s /etc/nginx/sites-available/xcart.conf /etc/nginx/sites-enabled
Test de configuratie:
sudo nginx -t
Herlaad Nginx:
sudo systemctl reload nginx
Stap 5 - Installeer X-Cart
Navigeer naar de /var/www
directory:
cd /var/www/
Download een X-Cart 5 pakket van deze pagina:http://www.x-cart.com/download.html
Upload het gedownloade pakket naar je server.
Verander de eigendom van de /var/www/xcart
directory in www-data:
sudo chown -R www-data:www-data /var/www/xcart
Navigeer naar example.com/install.php
in je web browser en volg de instructies om de installatie te voltooien.
Stap 6 - Voltooi de installatie
Accepteer de licentieovereenkomst en klikVolgende.
Maak een Administrator Account aan.
De installatie wizard controleert of je server voldoet aan de systeemvereisten voor X-Cart 5
Database instellingen configureren:
Directories instellen + Stap 6.Alle taken bij deze stappen zijn volledig geautomatiseerd, dus je hoeft alleen maar te wachten en X-Cart 5 het werk te laten doen
Nu het installatieproces voltooid is,kun je de gegeven links gebruiken om toegang te krijgen tot het klanten front end en Admin gedeelte van je winkel.