WonderCMS met Nginx op Debian 9 te installeren

WonderCMS is een gratis en open bron flat file CMS, bedoeld om extreem klein, licht en eenvoudig te zijn. Het is gebouwd met PHP, jQuery, HTML/CSS en ontwikkeld sinds 2008. Er is geen eerste configuratie nodig. Het installatieproces is vrij eenvoudig – pak uit en upload 5 bestanden. Alle bestanden kunnen gemakkelijk verplaatst, geback-upt en hersteld worden door ze naar een andere plaats te kopiĆ«ren/plakken. Om ze naar een andere host te verplaatsen is geen herconfiguratie nodig. WonderCMS heeft ook geen traditionele/relationele databank zoals MySQL nodig. De flat file technologie stelt WonderCMS in staat alle gegevens op te slaan in een tekstbestand (flat file) genaamd database.js dat gestructureerd is in JSON formaat. In deze handleiding doorlopen we de installatie en setup van WonderCMS op een Debian 9 systeem door Nginx als webserver te gebruiken, en optioneel kun je de transportlaag beveiligen door Acme.sh client en Let’s Encrypt certificaat autoriteit te gebruiken om SSL ondersteuning toe te voegen.

Vereisten

Vereisten voor het installeren en draaien van WonderCMS zijn:

  • PHP versie 7.1 of hoger met de extensies curl, mbstring en zip.
  • Webserver (Apache met mod_rewrite module ingeschakeld, Nginx, IIS).

Vereisten

  • Een Debian 9 besturingssysteem.
  • Een niet-root gebruiker met sudo privileges .

Eerste stappen

Controleer je Debian versie:

lsb_release -ds
# Debian GNU/Linux 9.9 (stretch)

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 voor de standaard softwarepakketten van je besturingssysteem hebt:

sudo apt update && sudo apt upgrade -y

Installeer enkele essentiƫle pakketten die nodig zijn voor het basisbeheer van het Debian besturingssysteem:

sudo apt install -y curl wget vim git unzip socat bash-completion apt-transport-https

Stap 1 – Installeer PHP en de nodige PHP uitbreidingen

Voeg repo’s van derden toe voor de installatie van PHP 7.2:

sudo apt install apt-transport-https lsb-release ca-certificates
wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list
sudo apt update

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-curl php7.2-zip php7.2-mbstring

Om PHP gecompileerd in modules te tonen, kun je uitvoeren:

php -m

ctype
curl
exif
fileinfo
. . .
. . .

Controleer de PHP versie:

php --version

# PHP 7.2.17.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.10.debian.18.04.1, Copyright (c) 1999-2018, by Zend Technologies

De PHP-FPM dienst wordt automatisch gestart en ingeschakeld bij het herstarten op een Debian 9 systeem, dus je hoeft hem niet handmatig te starten en in te schakelen. We kunnen overgaan tot de volgende stap, die de SSL instelling is.

Stap 2 – Installeer acme.sh client en verkrijg het Let’s Encrypt certificaat ( optioneel )

Je forum met HTTPS beveiligen 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 zullen we Acme.sh client gebruiken. 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.0

VerkrijgRSA 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 valse certificaten wilt om te testen kun je--staging vlag toevoegen aan bovenstaande commando’s.

Na het uitvoeren van de bovenstaande commando’s staan je certificaten en sleutels in:

  • Voor RSA: /home/username/example.com directory.
  • Voor ECC/ECDSA: /home/username/example.com_ecc directory.

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/etc/letsencrypt directory gebruiken .

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

Installeer/kopieer certificaten naar/etc/letsencryptdirectory.

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

Na het verkrijgen van certs verlaat je de root gebruiker en ga je terug naar de gewone sudo gebruiker:

exit

Stap 3 - Installeer en configureer NGINX

WonderCMS kan prima samenwerken met veel populaire web server software. In deze handleiding kiezen we NGINX.

Installeer NGINX:

sudo apt install -y nginx

Controleer de versie van NGINX:

sudo nginx -v
# nginx version: nginx/1.10.3

Configureer vervolgens NGINX voor WonderCMS. Draai sudo vim /etc/nginx/sites-available/wondercms.conf en voeg de volgende configuratie toe:

server {
  
  listen 80;
  listen 443 ssl;

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;
server_name example.com; root /var/www/wondercms; index index.php; location / { if (!-e $request_filename) { rewrite ^/(.+)$ /index.php?page=$1 last; } } location ~ database.js { return 403; } location ~ \.php(/|$) { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php7.2-fpm.sock; } }

Activeer de nieuwe wondercms.conf configuratie door het bestand aan de mapsites-enabled te koppelen:

sudo ln -s /etc/nginx/sites-available/wondercms.conf /etc/nginx/sites-enabled/

Controleer de NGINX configuratie op syntaxfouten:

sudo nginx -t

Herlaad de NGINX dienst:

sudo systemctl reload nginx.service

Stap 4 - Installeer WonderCMS

Maak een document root directory voor WonderCMS.

sudo mkdir -p /var/www/wondercms

Verander het eigendom van de /var/www/wondercms directory in [jour_username]:

sudo chown -R [your_username]:[your_username] /var/www/wondercms

Navigeer naar de document root directory:

cd /var/www/wondercms

Download en pak WonderCMS source uit:

wget https://github.com/robiso/wondercms/releases/download/2.7.0/WonderCMS-2.7.0.zip
unzip WonderCMS-2.7.0.zip
rm WonderCMS-2.7.0.zip

Verplaats WonderCMS bestanden naar de document root directory.

mv wondercms/* . && mv wondercms/.*.
rmdir wondercms

Verander eigendom van de /var/www/wondercms directory in www-data:

sudo chown -R www-data:www-data /var/www/wondercms

Open je site in een webbrowser en log in met standaard wachtwoord admin en verander het standaard wachtwoord daarna.

WonderCMS op Debian Linux

Links