Installeer Automad CMS met Nginx en Let’s Encrypt SSL op CentOS 7

Automad is een bestandsgebaseerd inhoudbeheersysteem (CMS) en een sjabloon-engine geschreven in PHP.Alle inhoud wordt opgeslagen in door mensen leesbare tekstbestanden in plaats van in een databank. Een Automad site is daardoor volledig draagbaar, gemakkelijk te installeren, en kan versiebeheer hebben door Git of Mercurial te gebruiken. Het biedt niettemin databankfuncties zoals zoekenentaggen. Met de ingebouwde sjabloon-engine kunnen zelfs onervaren ontwikkelaars en ontwerpers mooie thema’s en sjablonen maken.In deze handleiding doorlopen we de installatie en setup van Automad CMS op een CentOS 7 systeem door NGINX als webserver te gebruiken.

Vereisten

De vereisten voor het installeren en draaien van Automad CMS zijn als volgt:

  • PHP versie 5.4 of hoger.
  • Web server software zoals Nginx of Apache.

Vereisten

  • Een CentOS 7 besturingssysteem.
  • Een niet-root gebruiker met sudo privileges.

Eerste stappen

Controleer je CentOS versie:

cat /etc/centos-release
# CentOS Linux release 7.6.1810 (Core)

Stel de tijdzone in:

timedatectl list-timezones
sudo timedatectl set-timezone 'Region/City'

Werk je pakketten (software) voor het besturingssysteem 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 yum update -y

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

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

Stap 1 – Installeer PHP en de nodige PHP uitbreidingen

Installeer de Webtatic YUM repo:

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

Installeer PHP, en ook de nodige PHP uitbreidingen:

sudo yum install -y php72w php72w-cli php72w-fpm php72w-common php72w-mbstring php72w-xmlrpc php72w-soap php72w-gd php72w-xml php72w-curl php72w-zip

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.19 (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 en schakel de PHP-FPM dienst in:

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

Stap 2 – Installeer acme.sh client en verkrijg 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 eenvoudige 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.2

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

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

Installeer/kopieer certificaten naar /etc/letsencrypt directory.

# 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

Download en installeer NGINX uit de CentOS repository:

sudo yum install -y nginx

Controleer de NGINX versie:

sudo nginx -v
# nginx version: nginx/1.12.2

Start de Nginx dienst en schakel hem in:

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

Voer sudo vim /etc/nginx/conf.d/automad.conf uit en vul het bestand met de volgende configuratie:

server {

  listen [::]:443 ssl http2;
listen 443 ssl http2;
listen [::]:80;
listen 80;
# RSA
ssl_certificate /etc/letsencrypt/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/example.com/private.key;
# ECC
ssl_certificate /etc/letsencrypt/example.com_ecc/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/example.com_ecc/private.key;
server_name example.com; root /var/www/automad; index index.php index.html; client_max_body_size 100M; location / { try_files $uri $uri/ /index.php$is_args$args; } location ~ \.php$ { fastcgi_index index.php; fastcgi_pass 127.0.0.1:9000; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }

ControleerNGINX configuratie op syntaxisfouten:

sudo nginx -t

Herlaad Nginx:

sudo systemctl reload nginx.service

Stap 4 - Installeer Automad CMS

Maak een document root directory voor Automad:

sudo mkdir -p /var/www/automad

Navigeer naar de document root:

cd /var/www/automad

Download met curl de nieuwste versie van Automad CMS. Vergeet niet de versienummers op te krikken als er een nieuwere release is:

sudo curl -O -J -L https://automad.org/download

Pak het zip-archief uit:

sudo unzip automad-master.zip

Verplaats alle Automad bestanden naar de document root en verwijder het gedownloade zip archief:

sudo mv automad-master/* . && sudo mv automad-master/.* .
sudo rm automad-master.zip
sudo rmdir automad-master

Zorg voor het juiste eigendom:

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

Voer sudo vim /etc/php-fpm.d/www.conf uit en stel de gebruiker en groep in op nginx. Aanvankelijk zullen ze ingesteld zijn op apache. Voer uit:

sudo vim /etc/php-fpm.d/www.conf

En stel gebruiker en groep in op nginx, zoals hieronder:

user = nginx
group = nginx

En herstart tenslotte de PHP-FPM dienst om deze veranderingen van kracht te laten worden:

sudo systemctl restart php-fpm.service

Stap 5 - Voltooi de Automad installatie

Maak als laatste stap een gebruikersaccount aan om de browser-gebaseerde gebruikersinterface, het Dashboard, te gebruiken. Navigeer daarvoor naar https://example.com/dashboard en volg de instructies.

Voordat je het Automad dashboard kunt gebruiken, moet je een account aanmaken:

Maak gebruiker in Automad CMS

Maak een gebruikersaccount aan met het formulier en download het gegenereerde bestand naar je computer. Daarna moet je het gedownloade bestand verplaatsen naar de map "/config" binnen de Automad installatiemap.

Daarna kun je inloggen op het Automad dashboard:

Inloggen op Automad

Uiteindelijk verschijnt de Automad admin interface:

Automad CMS Dashboard

Dat is het. De installatie van Automad is voltooid.

Links