Bolt CMS installeren op Ubuntu 18.04 LTS

Bolt is een geavanceerd, lichtgewicht en eenvoudig CMS, gebouwd met PHP. Het wordtvrijgegeven onder de open bron MIT-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 behulp van 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 Ubuntu 18.04 LTS systeem door Nginx als webserver te gebruiken, MySQL als databaseserver, 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

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),ofMySQLofPostgreSQL.
  • Apache metmod_rewriteingeschakeld (.htaccessbestanden) of Nginx (virtuele host configuratie hieronder behandeld).
  • Minimaal 32MB geheugen toegewezen aan PHP.

Vereisten

  • Een besturingssysteem met Ubuntu 18.04 LTS.
  • Een niet-root gebruiker met sudo privileges.

Eerste stappen

Controleer je Ubuntu versie:

lsb_release -ds
# Ubuntu 18.04.1 LTS

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

sudo apt update && sudo apt upgrade -y

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

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

Stap 1 – Installeer PHP en de nodige PHP uitbreidingen

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-mbstring php7.2-zip php7.2-pgsql php7.2-sqlite3 php7.2-curl php7.2-gd php7.2-mysql php7.2-intl php7.2-json php7.2-opcache php7.2-xml

Om PHP gecompileerd in modules te laten zien, kun je uitvoeren:

php -m

ctype
curl
exif
fileinfo
. . .
. . .

Controleer PHP versie:

php --version

# PHP 7.2.10-0ubuntu0.18.04.1 (cli) (built: Sep 13 2018 13:45:02) ( 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-0ubuntu0.18.04.1, Copyright (c) 1999-2018, by Zend Technologies

De PHP-FPM dienst wordt automatisch gestart en ingeschakeld bij het herstarten op Ubuntu 18.04 systeem, dus je hoeft hem niet handmatig te starten en in te schakelen. We kunnen overgaan tot de volgende stap, namelijk de installatie en instelling van de databank.

Stap 2 – Installeer MySQL en maak een database voor Bolt CMS

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

Installeer MySQL databaseserver:

sudo apt install -y mysql-server

Controleer de MySQL versie:

mysql --version
# mysql  Ver 14.14 Distrib 5.7.25, for Linux (x86_64) using  EditLine wrapper

Voermysql_secure installationscript om de MySQL beveiliging te verbeteren en het wachtwoord voor MySQL 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 MySQL shell als de root gebruiker:

sudo mysql -u root -p
# Enter password

Maak een lege MySQL database en gebruiker voor Bolt CMS en onthoud de credentials:

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

Sluit MySQL af:

mysql> exit

Vervangdbname,usernameenpassworddoor 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 krijgen gebruiken we het acme.sh programma. Acme.sh is een zuivere unix shell software voor het verkrijgen van TLS certificaten 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

VerkrijgRSAenECC/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--stagingflage 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 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/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 gewone 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 ophttps://docs.bolt.cm/3.6/installation/webserver/apache voor meer informatie.

Download en installeer Nginx uit de Ubuntu repository:

sudo apt install -y nginx

Controleer de Nginx versie:

sudo nginx -v
# nginx version: nginx/1.14.0 (Ubuntu)

Configureer Nginx voor Bolt CMS door te draaien:

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

}

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

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

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

Controleer de Nginx configuratie op syntaxisfouten:

sudo nginx -t

Herlaad Nginx service:

sudo systemctl reload nginx.service

Stap 5 - Installeer Bolt CMS

Maak/var/www map:

sudo mkdir -p /var/www/

Navigeer naar de/var/www directory:

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 gedownloadebolt-latest.zip bestand:

sudo rm bolt-latest.zip

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

sudo mv bolt-v3.6.4 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

Veranderhet eigendom van de/var/www/boltdirectory inwww-data gebruiker:

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

Navigeer in je webbrowser naar de map waar je Bolt 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 /bolt toe aan je site IP of domein.