Pagekit CMS installeren op CentOS 7

Pagekit is een modern, intuïtief, modulair, en flexibel open bron(MIT licentie) CMSgebouwd met Symfony componenten en Vue.js. Het geeft je de middelen om mooie websites te maken. Het heeft een rijk thema en plugin ecosysteem.

In deze handleiding lopen we met je door het Pagekit CMS installatieproces op een CentOS 7 besturingssysteemdoor NGINX als webserver te gebruiken, MariaDB als databaseserver, en optioneel kun je de transportlaag beveiligen door acme.sh client te gebruiken en Let’s Encrypt certificaat autoriteit om SSL ondersteuning toe te voegen.

Vereisten

Om Pagekit te installeren moet je server aan de volgende eisen voldoen:

  • Apache versie 2.2 of hoger of NGINX webserver.
  • MySQL versie 5.1 of hoger of SQLite 3.
  • PHP versie 5.5.9 of hoger.
  • Vereiste PHP extensies: JSON, Session, ctype, Tokenizer, SimpleXML, DOM, mbstring, PCRE 8.0+, ZIP en PDO met MySQL of SQLite drivers.
  • Optionele PHP uitbreidingen: cURL, iconv en XML Parser, en ook APC of XCache voor caching.

Vereisten

  • Een systeem waarop CentOS 7 draait.
  • 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-zip php72w-mysql php72w-sqlite3 php72w-curl php72w-xml

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.14 (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

We kunnen overgaan tot de volgende stap, namelijk de installatie en inrichting van de databank.

Stap 2 – Installeer MariaDB en maak een databank voor Pagekit

Pagekit CMS ondersteunt MySQL, MariaDB en SQLite databases.In deze handleiding zullen we MariaDB gebruiken als de databaseserver. Als je originele MySQL wilt installeren, kun je de officiële MySQL repository, die door Oracle wordt onderhouden, toevoegen en gebruiken.

Installeer MariaDB databaseserver:

sudo yum install -y mariadb-server

Controleer de MariaDB versie:

mysql --version

Start de MariaDB dienst en schakel die in:

sudo systemctl start mariadb.service
sudo systemctl enable mariadb.service

Voer mysql_secure installationscript om de beveiliging van MariaDB te verbeteren en het wachtwoord voor MariaDB in te stellenroot gebruiker:

sudo mysql_secure_installation

Beantwoord elk van de vragen:

Would you like to setup VALIDATE PASSWORD plugin? N
New password: your_secure_password
Re-enter new password: your_secure_password
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

Maak verbinding met MariaDB shell als de root gebruiker:

sudo mysql -u root -p
# Enter password

Maak een lege MariaDB databank en gebruiker voor Bolt CMS en onthoud de credentials:

MariaDB> CREATE DATABASE dbname;
MariaDB> GRANT ALL ON dbname.* TO 'username' IDENTIFIED BY 'password';
MariaDB> FLUSH PRIVILEGES;

Sluit MariaDB af:

MariaDB> exit

Vervangdbname, username en password door je eigen namen.

Stap 3 - Installeer Acme.sh client en verkrijg het Let's Encrypt certificaat (optioneel)

Je website met HTTPS beveiligen is niet noodzakelijk, maar het is een goed gebruik om het verkeer op je site te beveiligen. Om een SSL certificaat van Let's Encrypt te verkrijgen zullen we Acme.sh client gebruiken. Acme.sh is een pure UNIX shell software om SSL 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

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 nep certificaten wilt om te testen kun je de --stagingvlag aan de bovenstaande commando's toevoegen.

Om een lijst van je uitgegeven certs te maken 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/letsencrypt/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"

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

  • Voor RSA: /etc/letsencrypt/example.com map.
  • Voor ECC/ECDSA: /etc/letsencrypt/example.com_ecc directory.

Alle certificaten worden om de 60 dagen automatisch vernieuwd.

Verlaat na het verkrijgen van de certs de root gebruiker en ga terug naar de gewone sudo gebruiker:

exit

Stap 4 - Installeer NGINX en configureer NGINX voor Pagekit

Download en installeer Nginx uit de CentOS repository:

sudo yum install -y nginx

Controleer de Nginx versie:

nginx -v
# nginx version: nginx/1.12.2

Start Nginx dienst en schakel die in:

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

Configureer NGINX voor Pagekit door te draaien:

sudo vim /etc/nginx/conf.d/pagekit.conf

En vul het bestand met de volgende configuratie:

server {
listen [::]:443 ssl http2;
listen 443 ssl http2; listen [::]:80; listen 80; server_name example.com; index index.php index.html; root /var/www/pagekit;
ssl_certificate /etc/letsencrypt/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/example.com/private.key;
ssl_certificate /etc/letsencrypt/example.com_ecc/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/example.com_ecc/private.key;
location / { try_files $uri $uri/ /index.php?$query_string; }

location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
try_files $fastcgi_script_name =404;
set $path_info $fastcgi_path_info;
fastcgi_param PATH_INFO $path_info;
fastcgi_index index.php; include fastcgi.conf;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass 127.0.0.1:9000;
} }

Controleer de NGINX configuratie op syntaxfouten:

sudo nginx -t

Herlaad de NGINX dienst:

sudo systemctl reload nginx.service

Stap 5 - Download en installeer Pagekit CMS

Maak een document root map waar Pagekit in moet komen te staan:

sudo mkdir -p /var/www/pagekit

Verander het eigendom van de /var/www/pagekit map in [your_user]:

sudo chown -R [your_user]:[your_user] /var/www/pagekit

Navigeer naar de document root:

cd /var/www/pagekit

Download de laatste stabiele versie van Pagekit CMS via wget:

wget https://github.com/pagekit/pagekit/releases/download/1.0.16/pagekit-1.0.16.zip

Pak de inhoud van Pagekit CMS uit en verwijder het gedownloade .zip bestand.

unzip pagekit-1.0.16.zip
rm pagekit-1.0.16.zip

Zorg voor het juiste eigendom:

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

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

sudo vim /etc/php-fpm.d/www.conf
# user = nginx
# group = nginx

Start de PHP-FPM dienst opnieuw:

sudo systemctl restart php-fpm.service

Navigeer in je webbrowser naar de map waarin je Bolt CMS uploadde en volgde instructies op het scherm.

Stap 6 - Voltooi de Pagekit installatie

Open je site in een webbrowser en je zou de volgende pagina moeten zien:

Pagekit web installer

Klik op het rechter pijl-icoon om verder te gaan met de installatie. Kies je taal en klik op de knop "Next":

Kies taal

Kies vervolgens je database, ofwel SQLite of MySQL en vul de verplichte velden in en klik op de knop "Next":

Maak verbinding met databank

Stel daarna je site in door Site Titel in te voeren en een admin gebruikersaccount aan te maken:

Opzetten website

En dat zou het moeten zijn. Je wordt nu doorverwezen naar de Pagekit login pagina. Geef je gebruikersnaam en wachtwoord op om in te loggen in het Pagekit dashboard.

Log in op pagekit beheerdersgebied

Dat is alles. Als je vastloopt, kijk dan in de officiële Pagekit docs.

Links