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 --stagingvlag 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.

X-Cart installatie wizard

Maak een Administrator Account aan.

Maak Admin account aan

De installatie wizard controleert of je server voldoet aan de systeemvereisten voor X-Cart 5

Controleer systeemeisen

Database instellingen configureren:

Database verbinding Details

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

.htaccess bijwerken

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.

Installatie voltooid