installeer je BoltWire CMS met Nginx op Ubuntu 20.04 LTS

Bolt is een lichtgewicht inhoudsbeheersysteem (CMS), gebouwd op het populaire PHP framework. Bolt is perfect voor een kleine onderneming die haar eigen website wil onderhouden zonder zich zorgen te hoeven maken over het leren van HTML en andere programmeertalen. Bolt heeft geavanceerde functies zoals robuuste wiki markups, e-commerce, een foto galerij en album bouwer, audio galerij en speler, en gastenboeken.

Boltwire onderscheidt zich doordat het geheel gratis is voor individuen en groepen van allerlei grootte die een CMS nodig hebben. Joe Casabona is de maker van Boltwire en hij deelt zijn passie door anderen te helpen het meeste uit zijn open-source project te halen. Bolt wordt in meer dan 200 landen gebruikt om meer dan 500.000 websites te beheren. De ontwikkelaars zijn vrijwilligers en verwachten dat alle gebruikers deelnemen aan het project door feedback te geven en bij te dragen aan de ontwikkeling ervan.

Bolt heeft enkele unieke kenmerken:

  • Dynamisch genereren van pagina’s: Een pagina kan samengesteld worden op basis van gegevens die gevonden worden bij het ophalen uit de databank. Wanneer een gebruiker bijvoorbeeld een nieuw item in een online dagboek plaatst, kunnen andere items van zijn blog dynamisch worden toegevoegd zonder dat de hele webpagina vernieuwd hoeft te worden. Dit maakt snellere laadtijden mogelijk, vooral bij grote hoeveelheden pagina’s of media-items per categorie (b.v. alle foto’s in een fotogalerij).
  • Beheer en inhoud: Meerdere gebruikers kunnen de inhoud beheren, om er zeker van te zijn dat elke gebruiker alleen bepaalde delen van de pagina’s kan veranderen. Ze kunnen ook beperkt worden in wat ze mogen zien of bewerken. De meeste mensen mogen bijvoorbeeld niet vrijelijk nieuwe artikelen plaatsen of commentaar toevoegen; dit is voorbehouden aan beheerders van de site. Lezers kunnen nog steeds elk artikel bekijken zonder eerst in te loggen, tenzij de beheerder anders bepaalt.
  • Gebruiksgemak: Bolt vermindert sterk de hoeveelheid inspanning die nodig is om webpagina’s te maken in vergelijking met andere CMS zoals Joomla en Drupal. De wizards die in Bolt zijn ingebouwd automatiseren veel van het configuratieproces, zodat je je geen zorgen hoeft te maken over hoe de dingen onder de motorkap werken.
  • Gemakkelijke uitbreidbaarheid: Omdat Bolt open source is, is het gemakkelijk nieuwe modules te maken die Bolt uitbreiden of er functies aan toevoegen. Nieuwe functies worden vaak in de kernsoftware geïntegreerd, waardoor ze nog gemakkelijker te gebruiken zijn. Met momenteel ongeveer 40 uitbreidingen beschikbaar op Modboom, kun je gemakkelijk elk gewenst deel van Bolt uitbreiden zonder je al te diep in PHP programmeren te hoeven wagen.
  • BoltWire is er in een aantal talen: Engels (standaard), Duits, Italiaans, Japans, Pools, Portugees en Spaans. Naast standaard BoltWire pakketten voor de bovenstaande talen is ook een volledige lokalisatie beschikbaar in het Frans (100%) en het Nederlands (meer dan 50%).

Het nadeel is dat er, behalve de help forums, weinig ondersteuning beschikbaar is als je vragen hebt over hoe de dingen onder de motorkap werken in je plaatselijke taal. In dit opzicht is het je eigen verantwoordelijkheid om de dingen te laten werken zoals je zou willen. Als je echter handig bent met een tekstverwerker en de tijd hebt om zelf aan Bolt te werken, dan is er niets dat je tegenhoudt om in enkele minuten een eenvoudige maar professioneel uitziende website te maken.

In deze gids leren we hoe je BoltWire op een Ubuntu 20.04 server kunt installeren.

Vereisten

  • Een verse server met Ubuntu 20.04.
  • Volledige SSH root toegang of gebruiker met sudo privileges.
  • Een domeinnaam is geregistreerd en wijst naar je server.

Aan de slag

Log allereerst in op je Ubuntu met SSH.

ssh [email protected]_Address -p Port_number

root is de standaard gebruiker op Ubuntu, vervang ‘root’ door de naam van je eigen gebruiker, als je een andere gebruikt.

IP_Address is het adres van je server. Je kunt dit controleren met

hostname -I op de commandoregel. Port_number moet 22 zijn voor SSH.

hostname -I

De ‘-p’ vertelt ssh om de opgegeven poort te gebruiken. Als je geen poortnummer opgeeft, wordt 22 gebruikt .

Als je achter een firewall zit, kan poort 22 geblokkeerd zijn. Verander in dat geval Port_nummer in iets anders, zoals 2222.

Je systeem bijwerken

Je kunt controleren of op je systeem de juiste Ubuntu versie geïnstalleerd is met het volgende commando:

sudo lsb_release -a

Voorbeeld uitvoer:

Controleer de Ubuntu versie

Het is altijd aan te raden het systeem te updaten voordat je pakketten installeert.

sudo apt-get update && apt-get upgrade -y

-y is een commando, dat automatisch ‘Ja’ antwoordt op alle vragen tijdens het update proces. apt-get update werkt de pakketlijsten bij, en apt-get upgrade upgradet je systeem.

Voorbeelduitvoer:

Pakketten bijwerken

Het bijwerken kan enige tijd duren, afhankelijk van hoeveel pakketten er gedownload en geïnstalleerd moeten worden. Zodra de update voltooid is, wordt je gevraagd je server opnieuw op te starten. Voer het onderstaande commando uit om je systeem na updates opnieuw op te starten:

sudo reboot

Installeren van vereiste pakketten

Voor de installatie van Bolt moeten een aantal pakketten op je systeem geïnstalleerd worden. Sommige van de pakketten worden in een bepaalde volgorde geïnstalleerd. In dit geval installeren we alle pakketten die nodig zijn voor de installatie van Bolt met het onderstaande commando:

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

socat is voor proxying, waardoor Bolt op de webserver lijkt te draaien.

apt-transport-https laat command-line operaties zoals sudo apt update werken met https verbindingen. bash-completion is een programma om bash in staat te stellen commando’s automatisch aan te vullen na het typen van de eerste paar tekens.

curl wordt gebruikt om pakketten te downloaden en wget wordt gebruikt om bestanden te downloaden zoals de nieuwste versie van Bolt van de website.

Voorbeeld uitvoer:

Installeer de eerste vereisten

Nginx installeren

Nginx wordt gebruikt als een omgekeerde proxy voor het beheer van je websites in Bolt. Nginx is licht van gewicht, eenvoudig te configureren en snel. Voer het onderstaande commando uit om Nginx te installeren

sudo apt-get install nginx

Typ ‘y’ als daarom gevraagd wordt, het installatieproces start automatisch.

Voorbeeld uitvoer:

Installeer Nginx

Als de installatie voltooid is, start je nginx service en zet je het aan om bij het opstarten van het systeem te draaien

sudo systemctl start nginx
sudo systemctl enable nginx

Om te controleren en te verifiëren of Nginx momenteel draait of niet, gebruik je dit commando in terminal.

sudo systemctl status nginx

Voorbeelduitvoer:

Nginx draait

Nginx instellen

BoltWire CMS is geïnstalleerd in de map /var/www/. Om toegang te krijgen tot BoltWire CMS en het te testen, moeten we Nginx serverblok configureren om verzoeken automatisch naar het webroot map pad /var/www/ te routeren voor alle verzoeken om statische inhoud en voor verzoeken om modules en plugins bestanden.

Voer de volgende commando’s uit om een nieuw configuratiebestand aan te maken met de naam bolt.conf

sudo nano /etc/nginx/sites-available/bolt.conf

Vul het configuratiebestand met de volgende inhoud:

server {
listen 80;
 listen [::]:80; 
 root /var/www/bolt; 
 index index.php index.html index.htm; 
 server_name bolt.example.com;

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

 location ~ [^/]\.php(/|$) { 
  try_files      /index.php =404;
  fastcgi_split_path_info ^(.+\.php)(/.+)$;
  fastcgi_index      index.php;
 fastcgi_pass       unix:/var/run/php/php7.2-fpm.sock;
  include         fastcgi_params;
  fastcgi_param  PATH_INFO    $fastcgi_path_info;
 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  } 

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

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

}

Het Nginx serverblok dat we zojuist maakten gebruikt de standaard document root die ingesteld is op /var/www/ directory. Als je BoltWire CMS in een andere server omgeving draait, bewerk dan het conf bestand en vervang het pad van de document root dienovereenkomstig.

De server_name richtlijn configureert de URL waarnaar je Nginx webserver zal luisteren. Vervang bolt.example.com door je werkelijke server domeinnaam of IP adres.

try_files $uri $uri/ /index.php?$query_string; Met deze richtlijn kun je aanvragen voor bestandspaden direct afhandelen als ze gevonden worden. Bijvoorbeeld, als een gebruiker vanuit de browser de startpagina van BoltWire CMS probeert te openen, zal /index.php gebruikt worden als indexbestand als het bestaat anders valt het terug op PHP-FPM die 404 Not Found als antwoord terugstuurt.

Nadat je de veranderingen aangebracht en opgeslagen hebt in het bolt.conf bestand, herlaad je Nginx en start je het opnieuw op om de nieuwe configuratie te laten inwerken.

sudo systemctl reload nginx
sudo systemctl restart nginx

Controleer de nginx configiratie door de volgende commando’s uit te voeren:

sudo nginx -t

Voorbeeld uitvoer:

Controleer de Nginx configuratie

Installeren van MySQL

BoltWire CMS vereist minimaal versie 4.2 van de MySQL server, maar BoltWire CMS werkt niet met 5.x+.

Je hebt dus verschillende opties: Gebruik een externe databaseserver zoals Microsoft SQL Server Implementeer MySQL op alle machines van de webserver (niet aanbevolen) Upgrade je versie van MySQL. De eerste opties zijn vrij eenvoudig, maar het soort upgrade is complex.

Wie een LAMP stack (Linux, Apache, MySQL en PHP) gebruikt, hoeft MySQL niet apart te installeren omdat Ubuntu al een MySQL server in zijn repository heeft.

Voer het onderstaande commando uit om MySQL te installeren:

sudo apt -y install mysql-server

Voorbeeld uitvoer:

Installeer MySQL

Als de installatie voltooid is, start je met het onderstaande commando de MySQL daemon (MySQL server) voor deze sessie en zet je hem aan om bij het opstarten van het systeem te draaien:

sudo systemctl start mysql
sudo systemctl enable mysql 

Een database maken

We zullen de commandoregel gebruiken om een database genaamd bolt te maken.

Maak verbinding met mysql om een database te maken door het onderstaande commando uit te voeren:

sudo mysql -u root -p 

Voer root wachtwoord voor mysql in. Nu ben je ingelogd in de mysql console. Om een database en een database gebruiker te maken, voer je het onderstaande commando uit:

CREATE DATABASE bolt;
CREATE USER 'bolt'@'localhost' IDENTIFIED BY 'mypassword';
GRANT ALL ON bolt.* TO 'bolt'@'localhost'; 
FLUSH PRIVILEGES; 
exit

CREATE USER ‘bolt’@’localhost’ IDENTIFIED BY ‘mypassword’ zal een gebruiker ‘bolt’ aanmaken waarvan het wachtwoord ‘mypassword’ is. Gebruik hier een veilig wachtwoord in plaats van het woord ‘mypassword’! Flush privileges zal de hierboven gemaakte tabel met toegekende privileges opnieuw laden.

Installeren van PHP

BoltWire CMS vereist PHP versie 7 of hoger en de bijbehorende ontwikkelingsheaders. We voegen ppa:ondrej/php PPA toe met de vereiste PHP versie(7.2), je kunt dit zelf veranderen in je benodigde PHP versie. We voeren de volgende commando’s uit om de ppa toe te voegen en apt-get te updaten

sudo apt -y install software-properties-common 
sudo add-apt-repository ppa:ondrej/php 
sudo apt-get update

Draai het onderstaande commando om PHP 7.2 te installeren:

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

php7.2-cli is de opdrachtregel interface voor PHP7.2 en met php7.2-common installeer je php7.2-extensions, de webserver (PHP) module, en standaard CLI uitbreidingen. Met php7.2 -fpm zal FastCGI Process Manager geïnstalleerd worden, een gebruikelijke manier om PHP toepassingen vanaf je webserver te draaien. php7.2-mbstring zal multibyte string functies installeren, die nodig zijn voor BoltWire CMS. php7.2-opcache zal opcode cache installeren voor PHP7.2, die betere prestaties geeft en de belasting van je webserver vermindert door de gecompileerde scripts in het cachegeheugen op te slaan. php7.2-xml zal XML verwerkingsuitbreidingen installeren voor PHP7.2, nodig om BoltWire CMS te gebruiken.

Voorbeeld uitvoer:

Installing PHP

Na de installatie van PHP 7.2, voer je de onderstaande commando’s uit om je PHP7.2 versie te controleren:

php -v 

Voorbeeld uitvoer:

Controleer de PHP versie

Open vervolgens het PHP standaard configuratiebestand voor Nginx met nano teksteditor:

sudo nano /etc/php/7.2/fpm/php.ini

Nu gaan we de veranderingen aanbrengen op de volgende regels:

file_uploads = On
allow_url_fopen = On
memory_limit = 256M
upload_max_filesize = 100M
max_execution_time = 360
date.timezone = America/St. Louis
  • file_uploads = On schakelt de functie voor het uploaden van bestanden naar BoltWire CMS in.
  • allow_url_fopen = Aan staat directe URL’s of HTTP redirect toe op verzoeken met geüploade bestanden van de verre webserver.
  • memory_limit = 256M is de geheugenlimiet van PHP 7.2 in MB die ingesteld moet worden voor Nginx worker processen; een PHP script met een hoog geheugenverbruik kan een php run-time error veroorzaken.
  • upload_max_filesize = 100M is de maximumgrootte voor een enkel uploadbestand naar de BoltWire CMS site, als je het uploaden van bestanden van onbeperkte grootte wilt inschakelen, verander dan deze waarde in 0.
  • max_execution_time = 360 is de max uitvoeringstijd in sec voor PHP script om te draaien, als een script deze waarde overschrijdt wordt het beëindigd.
  • date.timezone = America/St. Louis, de tijdzone van je locatie om de datum en tijd waarden van klanten correct weer te geven in het BoltWire CMS systeem.

Herstart php7.2-fpm om de bovenstaande veranderingen in werking te laten treden:

sudo service php7.2-fpm restart

Dit zou voldoende moeten zijn voor de vereiste PHP7.2 en verwante pakketten, laten we naar de volgende stap gaan.

Installeren van Composer

BoltWire CMS heeft Composer nodig om hun vereiste externe bibliotheken aan de website toe te voegen, dus moeten we dat eerst installeren voor we verder gaan met deze tutorial. Composer is een pakketbeheerder voor PHP die afhankelijkheden van PHP projecten beheert. Het is vergelijkbaar met NodeJS’s npm of ruby gems.

Eerst gaan we naar de home directory en downloaden de installer:

sudo curl -sS https://getcomposer.org/installer -o composer-setup.php

Het onderstaande commando zal Composer installeren:

sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer

Het bovenstaande zal Composer als een systeembrede binary downloaden en installeren in de map /usr/local/bin.

Je kunt ervoor kiezen Composer alleen voor je gebruiker in te stellen door het /usr/local/bin deel van het commando te vervangen door ~/user_

Nadat de installatie klaar is, kun je het onderstaande commando uitvoeren om te testen of de installatie geslaagd is.

composer

Voorbeeld uitvoer:

PHP componist

Installeren van Bolt

Nu alle vereiste pakketten geïnstalleerd zijn, kunnen we overgaan tot de installatie van Bolt.

Eerst gaan we naar de map /var/www/ en downloaden de nieuwste versie van Bolt CMS van GitHub met het onderstaande commando:

cd /var/www/
sudo git clone https://github.com/bolt/bolt.git

Voorbeeld uitvoer:

Download Bolt van Github

Eenmaal gedownload zou je een map met de naam bolt moeten zien met een enkel bestand met de naam “composer.json”, dat het composer configuratiebestand voor Bolt CMS is.

Nu gaan we naar de bolt directory en installeren Bolt van daaruit:

cd bolt
sudo composer install

Dit commando installeert alle benodigde Bolt bronbestanden en afhankelijkheden in /var/www/bolt met behulp van de Composer pakketbeheerder.

Voorbeeld uitvoer:

Installeer Bolt met composer

De volgende stap is het uitvoeren van het volgende commando om de Bolt werkdirectory in te stellen:

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

Het bovenstaande commando verandert het eigendom van Bolt bestanden in Nginx gebruiker www-data, zodat die het bestand kan lezen en schrijven als de Bolt URL wordt benaderd.

De volgende stap is het instellen van het Bolt configuratiebestand:

sudo cp app/config/config.yml.dist app/config/config.yml

Toegang tot BoltWire CMS

Nu zouden we BoltWire CMS moeten kunnen benaderen met de volgende URL vanuit een browser op een Linux of Windows computer:

http://localhost:8000/bolt of http://bolt.example.com/bolt

Je zou een standaard BoltWire CMS landingspagina moeten krijgen zoals die hieronder:

Winkel CMS

Vul alle vereiste informatie in en je krijgt toegang tot je BoltWire dasboard zoals hieronder:

Bolt CMS dashboard

Nu hebben we met succes een Linux server voor Bolt Wire CMS geconfigureerd.

Als je problemen ondervindt wanneer je probeert je pas geïnstalleerde BoltWire CMS te benaderen. Hier is een lijst van de veel voorkomende fouten en hun mogelijke oplossingen:

  • Toegang geweigerd – fout“. Dit betekent dat BoltWire CMS draait maar je kunt de pagina’s ervan niet vanuit de browser benaderen, probeer je Nginx configuratie directory te controleren.
  • Kan dynamische bibliotheek ‘/var/www/BoltWire/vendor/php72-zip/libphp7. 2.so” of “Error Executing The Script”. Dit betekent dat de BoltWire CMS directory niet de vereiste permissies heeft om het PHP bestand uit te voeren en te draaien.
  • Fout bij initialiseren … No such file or directory“. Dit betekent dat BoltWire CMS niet goed geïnstalleerd is. Je moet controleren of je de juiste procedure voor de installatie van BoltWire CMS gevolgd hebt.
  • Toestemming geweigerd“. Dit betekent dat je geen goede toegang hebt tot de /var/www/bolt of /var/www directory.
  • Fatale fout: Klasse ‘PDO’ niet gevonden in…“. Dit betekent dat PHP geen verbinding kan maken met de database, en dat je misschien je PHP configuratie moet nakijken.
  • Op zoek naar … ” of “Waarschuwing: Ongeldig argument geleverd voor foreach()…”. Dit betekent dat het BoltWire CMS niet in staat is te vinden wat je het gaf. Meestal wordt dit veroorzaakt door het negeren van de blognaam en slug of pad in je configuratie.
  • Kan map … niet aanmaken. Ongedefinieerde index: bekeken gegevens“. Dit betekent dat het BoltWire CMS zijn directory in je Nginx server niet kan aanmaken en dat je misschien de PHP configuratie moet controleren.
  • Parseerfout: syntaxisfout, onverwachte ‘=’ in … bij …“. Dit betekent dat het BoltWire CMS zijn bestand niet kan uitvoeren of dat het een van je bestanden niet kan lezen. Dit kan gebeuren als je een onjuiste syntaxis in je configuratie gebruikt hebt.
  • 404 niet gevonden nginx/1.14.0 (ubuntu)” Een ‘A’ record toevoegen voor bolt.example.com naar je server zou moeten helpen.
  • 404 Not Found” of “De gevraagde URL … is niet gevonden op deze server“. Dit betekent dat BoltWire CMS zijn bestanden niet kon vinden. Het kan zijn dat je je BoltWire configuratie moet nakijken en je ervan vergewissen dat je daarin het juiste pad hebt opgegeven.

BoltWire is geïnstalleerd maar er zijn geen pagina’s of de BoltWire login pagina verschijnt als BoltWire CMS geïnstalleerd is, dan zoekt Bolt naar een standaard BoltWire sjabloon in /var/www/bolt/_templates map binnen Bolt’s installatie directory en als het daar geen bestand vindt, gebruikt Bolt een index.php bestand in Bolt’s installatie directory als startpagina. Als ook dat niet werkt dan kan er iets anders mis zijn met je PHP configuratie of Nginx configuratie.

Conclusie

BoltWire CMS is een geweldig stuk software voor het runnen van een blog of persoonlijke website. Je kunt meer te weten komen over Bolt CMS op de officiële site van BoltWire CMS.

Hopelijk helpt dit artikel je te leren hoe je BoltWire op Ubuntu 20.04 server kunt installeren. Als dit artikel je bevalt, deel het dan met je vrienden op twitter of facebook. Als je vragen hebt, laat dan gerust hieronder een reactie achter.