Bolt CMS installeren op CentOS 7

Bolt is eensgeavanceerd, lichtgewicht en eenvoudig CMSgebouwd met PHP. Het isvrijgegeven onder de open bronMIT-licentie en de broncode wordt gehost als een openbare repository op Github. Bolt is een hulpmiddel voor Content Management, dat ernaar streeft zo eenvoudig en ongecompliceerd mogelijk te zijn. Het is snel op te zetten, eenvoudig te configureren, gebruikt elegante sjablonen. Bolt is gemaakt met moderne open bron bibliotheken en is het meest geschikt om sites te bouwen in HTML5 met moderne opmaak.In deze zelfstudie doorlopen we de Bolt CMS installatie op een CentOS 7 systeem door Nginx als webserver te gebruiken, MariaDB als databaseserver, en optioneel kun je de transportlaag beveiligen door acme.sh client en Let’s Encrypt certificate authority te gebruiken om SSL ondersteuning toe te voegen.

Vereisten

De systeemvereisten voor Bolt zijn bescheiden, en het zou op elke vrij moderne webserver moeten draaien:

  • PHP versie 5.5.9 of hoger met de volgende veelgebruikte PHP extensies: pdo, mysqlnd, pgsql, openssl, curl, gd, intl, json, mbstring, opcache, posix, xml, fileinfo, exif, zip.
  • Toegang tot SQLite (dat met PHP gebundeld wordt geleverd), of MySQL ofPostgreSQL.
  • Apache metmod_rewrite ingeschakeld(.htaccessbestanden) of Nginx (virtuele host configuratie hieronder behandeld).
  • Minimaal 32MB geheugen toegewezen aan PHP.

Vereisten

  • Een besturingssysteem met CentOS 7.
  • 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-cli php72w-fpm php72w-common php72w-mbstring php72w-zip php72w-pgsql php72w-sqlite3 php72w-curl php72w-gd php72w-mysql php72w-intl php72w-json php72w-opcache php72w-xml php72w-process

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.2.0, Copyright (c) 1998-2018 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 – InstalleerMariaDBen maak een databank voor Bolt CMS

Bolt CMS ondersteunt MySQL, MariaDB en PostgreSQL databases. In deze handleiding zullen we MariaDB als databaseserver gebruiken.

InstalleerMariaDBdatabaseserver:

sudo yum install -y mariadb-server

Controleer deMariaDBversie:

mysql --version

Start de MariaDB dienst en schakel die in:

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

Voermysql_secure installationscript om de beveiliging vanMariaDBte verbeteren en het wachtwoord voorMariaDBin te stellenrootgebruiker:

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 metMariaDBshell als de root gebruiker:

sudo mysql -u root -p
# Enter password

Maak een legeMariaDBdatabank 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;

SluitMariaDB af:

MariaDB> exit

Vervangdbname,username enpassworddoor je eigen namen.

Stap 3 - Installeeracme.shclient en verkrijg 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 TLS certificaat van Let's Encrypt te verkrijgen gebruiken we het acme.sh programma. 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

VerkrijgRSA enECC/ECDSAcertificaten 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:

  • VoorRSA:/home/username/example.commap.
  • VoorECC/ECDSA:/home/username/example.com_eccmap.

Om je uitgegeven certs op te sommen kun je uitvoeren:

acme.sh --list

Maak mappen 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/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 NGINX en configureer NGINX voor Bolt CMS

Bolt CMS kan prima werken met veel populaire web server software. In deze handleiding kozen we voor Nginx. Als je liever Apache webserver dan Nginx hebt, kijk dan op https://docs.bolt.cm/3.6/installation/webserver/apachevoor meer informatie.

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 de Nginx dienst en schakel hem in:

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

Configureer Nginx voor Bolt CMS door te draaien:

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

En vul het bestand met de volgende configuratie:

server {

listen 80;
listen 443 ssl http2;
server_name example.com;
root /var/www/bolt/public;
index index.php;

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

location / {
try_files $uri $uri/ /index.php?$query_string;
}

location = /bolt {
try_files $uri /index.php?$query_string;
}

location ^~ /bolt/ {
try_files $uri /index.php?$query_string;
}

location ~ /index.php/(.*) {
rewrite ^/index.php/(.*) /$1 permanent;
}

location ~ /\. { deny all; }
location ~ /\.(htaccess|htpasswd)$ { deny all; }
location ~ /\.(?:db)$ { deny all; }
location ~* /(.*)\.(?:markdown|md|twig|yaml|yml)$ { deny all; }

location ~ [^/]\.php(/|$) {
include default.d/php.conf;
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param HTTP_PROXY "";
fastcgi_param HTTPS $https if_not_empty;
fastcgi_pass 127.0.0.1:9000;
}

}

OPMERKING:Kijk voor complete en productieklare Nginx config voor Bolt CMS ophttps://docs.bolt.cm/3.6/installation/webserver/nginx.

Controleer Nginx configuratie op syntaxfouten:

sudo nginx -t

Herlaad Nginx service:

sudo systemctl reload nginx.service

Stap 5 - Installeer Bolt CMS

Maak/var/wwwmap:

sudo mkdir -p /var/www/

Navigeer naarde map/var/www:

cd /var/www/

Download de nieuwste release Bolt CMS via wget en pak het uit:

sudo wget https://bolt.cm/distribution/bolt-latest.zip && sudo unzip bolt-latest.zip

Verwijder gedownloadbolt-latest.zipbestand:

sudo rm bolt-latest.zip

Hernoem de map bolt-v3.6.4 tot alleen bolt:

sudo mv bolt-v3.6.4 bolt

Verander de directory in document root:

cd /var/www/bolt

Om de installatie te voltooien moet je de volgende bestanden hernoemen:

sudo mv .bolt.yml.dist .bolt.yml
sudo mv composer.json.dist composer.json
sudo mv composer.lock.dist composer.lock
sudo mv src/Site/CustomisationExtension.php.dist src/Site/CustomisationExtension.php

Zorg voor het juiste eigendom:

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

Startsudo vim /etc/php-fpm.d/www.confen stel de gebruiker en groep in opnginx. Aanvankelijk zullen ze ingesteld zijn opapache:

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 Bolt CMS installatie en instelling

Nadat je je site in een web browser geopend hebt, zou je naar de volgende pagina omgeleid moeten worden:

Bolt CMS installatie wizard

Vul de vereiste informatie in om een gebruiker aan te maken en klik op de"Maak de eerste gebruiker"knop om verder te gaan. Daarna zou de Bolt CMS admin interface moeten verschijnen:

Bolt CMS dashboard

De Bolt CMS installatie is nu voltooid. Om Bolt CMS admin te openen voeg je/bolttoe aan je site IP of domein.