Pagekit CMS installeren op Debian 9

Pagekit is een modern, intuïtief, modulair, en flexibel open bron(MIT licentie) CMSgebouwd met Symfony componenten en Vue.js. Hetgeeft 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 Debian 9 (stretch) besturingssysteemdoor NGINXals webserverte 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 Debian 9 (stretch) draait.
  • Een niet-root gebruiker met sudo privileges.

Eerste stappen

Controleer je Debian systeemversie:

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

Stel de tijdzone in:

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:

apt update && apt upgrade -y

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

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

Stap 1 – Installeer PHP en de nodige PHP uitbreidingen

Het Pagekit CMS platform vereist PHP versie 7.0 of hoger. Standaard heeft Debian 9 PHP versie 7.0 in zijn standaard software repositories, wat prima is voor Pagekit CMS.

Download en installeer PHP 7.0 en de vereiste PHP uitbreidingen:

sudo apt install -y php7.0 php7.0-cli php7.0-fpm php7.0-common php7.0-mbstring php7.0-zip php7.0-mysql php7.0-sqlite3 php7.0-curl php7.0-xml

Om in modules gecompileerde PHP te tonen, kun je het volgende uitvoeren:

php -m

ctype
curl
exif
fileinfo
. . .
. . .

Controleer PHP versie:

php --version
# PHP 7.0.33-0+deb9u1 (cli) (built: Dec 7 2018 11:36:49) ( NTS )
# Copyright (c) 1997-2017 The PHP Group
# Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
# with Zend OPcache v7.0.33-0+deb9u1, Copyright (c) 1999-2017, by Zend Technologies

De PHP-FPM dienst wordt automatisch gestart en ingeschakeld bij het herstarten op Debian 9 systeem, dus het is niet nodig hem handmatig te starten en in te schakelen.We kunnen verder met de volgende stap, namelijk de installatie en instelling van de databank.

Stap 2 – Installeer MariaDB en maak een databank voor Pagekit

Pagekit CMS ondersteunt MySQL, MariaDB en SQLite databases. Het Debianteam vervangt MySQL door MariaDB als de standaard database vanaf Debian 9 (stretch), dus indeze handleiding zullen we MariaDB gebruiken als de databaseserver. Als je de originele MySQL wilt installeren, kun je de officiële MySQL repository, die door Oracle wordt onderhouden, toevoegen en gebruiken.

Installeer MariaDB versie 10.2 databaseserver uit de officiële MariaDB repo:

sudo apt install -y software-properties-common dirmngr apt-transport-https
sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xF1656F24C74CD1D8
sudo add-apt-repository 'deb [arch=amd64,i386,ppc64el] https://mirrors.nxthost.com/mariadb/repo/10.2/debian stretch main'
sudo apt update
sudo apt install -y mariadb-server

OPMERKING:Je wordt om een root gebruikerswachtwoord gevraagd. Voer een sterk wachtwoord in en ga verder.

Controleer de MariaDB versie:

mysql --version
# mysql  Ver 15.1 Distrib 10.2.22-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2

Draaimysql_secure installation script omMariaDB beter te beveiligen en stel het wachtwoord in voor MariaDBrootgebruiker:

sudo mysql_secure_installation

Beantwoord elk van de vragen:

Enter current password for root (enter for none): Press Enter
Set root password? [Y/n] Y
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

Log in MariaDB in als de root gebruiker:

sudo mysql -u root -p
# Enter password

Maak een MariaDB database en gebruiker die je voor je installatie van Pagekit zult gebruiken, en onthoud de credentials:

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

Sluit de MariaDB shell af:

quit

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 je site verkeer 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

Verkrijg RSAen ECC/ECDSAcertificaten voorje 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 jecertificaten 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

Installeer NGINX webserver:

sudo apt install -y nginx

Controleer de NGINX versie:

sudo nginx -v
# nginx version: nginx/1.10.3

Configureer NGINXvoor Pagekitdoor te draaien:

sudo vim /etc/nginx/sites-available/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$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
} }

Activeer de nieuwepagekit.confconfiguratie door het bestand te koppelen aan de mapsites-enabled.

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

Controleer de NGINX configuratie op syntaxisfouten:

sudo nginx -t

Herlaad de NGINX dienst:

sudo systemctl reload nginx.service

Stap 5 - Download en installeer Pagekit CMS

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

sudo mkdir -p /var/www/pagekit

Verander het eigendom van de/var/www/pagekit directoryin[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 release 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

Verander eigendom van de map/var/www/pagekitinwww-data.

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

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