Grav CMS installeren op CentOS 7
Grav is een snel, eenvoudig, enflexibel, op bestanden gebaseerd CMS platform. Grav wordt geleverd met een krachtig Package Management Systeem om eenvoudige installatie en opwaardering van plugins en thema’s mogelijk te maken, en ook eenvoudige bijwerking van Grav zelf.
De onderliggende architectuur van Grav is ontworpen met behulp van gevestigde en best-in-classtechnologieën om ervoor te zorgen dat Grav eenvoudig te gebruiken en gemakkelijk uit te breiden is. Enkele van deze sleuteltechnologieën zijn:
- Twig Templating: voor krachtige controle over de gebruikersinterface
- Markdown: voor het eenvoudig maken van inhoud
- YAML: voor eenvoudige configuratie
- Parsedown: voor snelle Markdown en Markdown Extra ondersteuning
- Doctrine Cache: laag voor prestatie
- Pimple Dependency Injection Container: voor uitbreidbaarheid en onderhoudbaarheid
- Symfony Event Dispatcher: voor plugin event afhandeling
- Symfony Console: voor CLI interface
- Gregwar Image Library: voor dynamische beeldmanipulatie
Vereisten
Grav is opzettelijk ontworpen met weinig eisen. Gravwordt gebouwd met platte tekst bestanden voor je inhoud. Er is geen databank nodig.
Zorg ervoor dat je systeem aan de volgende eisen voldoet:
- Webserver (Apache, Nginx, LiteSpeed, Lightly, IIS, enz.) We zullen NGINX gebruiken.
- PHP versie 7.1.3 of hoger
Vereisten
- Een besturingssysteem met CentOS 7.
- Een niet-root gebruiker met sudo rechten.
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-curl php72w-gd php72w-json php72w-mbstring php72w-xml php72w-zip php72w-opcache php72w-pecl-apcu
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.17 (cli) (built: May 13 2019 18:03:04) ( NTS ) # Copyright (c) 1997-2018 The PHP Group # Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies # with Zend OPcache v7.2.17, 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
Stap 2 – Installeer acme.sh client en verkrijg Let’s Encrypt certificaat ( optioneel )
Je forum 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 acme.sh client. 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.0
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--staging
vlag aan de bovenstaande commando’s toevoegen.
Na het uitvoeren van de bovenstaande commando’s staan jecertificaten en sleutels in:
- Voor RSA:
/home/username/example.com
map. - Voor ECC/ECDSA:
/home/username/example.com_ecc
map.
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 3 – Installeer en configureer NGINX
Installeer NGINX:
sudo yum install -y nginx
Controleer de versie van NGINX:
nginx -v # nginx version: nginx/1.12.2
Start en schakel NGINX service in:
sudo systemctl start nginx.service sudo systemctl enable nginx.service
Configureer NGINXvoor Grav.Voersudo vim /etc/nginx/conf.d/grav.conf
uit en voegde volgende configuratie toe.
server {
listen 80;
listen 443 ssl;
server_name example.com;
root /var/www/grav;
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;
index index.html index.php;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~* /(\.git|cache|bin|logs|backup|tests)/.*$ { return 403; }
location ~* /(system|vendor)/.*\.(txt|xml|md|html|yaml|yml|php|pl|py|cgi|twig|sh|bat)$ { return 403; }
location ~* /user/.*\.(txt|md|yaml|yml|php|pl|py|cgi|twig|sh|bat)$ { return 403; }
location ~ /(LICENSE\.txt|composer\.lock|composer\.json|nginx\.conf|web\.config|htaccess\.txt|\.htaccess) { return 403; }
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
}
}
ControleerNGINXconfiguratie op syntaxisfouten:
sudo nginx -t
HerlaadNGINXdienst:
sudo systemctl reload nginx.service
Stap 4 – Installeer Grav CMS
Maak een document root directory:
sudo mkdir -p /var/www/grav
Verander het eigendom van de map/var/www/grav
injohndoe:
sudo chown -R johndoe:johndoe /var/www/grav
Navigeer naar de document root map:
cd /var/www/grav
Download Grav en pak het uit:
wget https://getgrav.org/download/core/grav-admin/1.6.9 unzip 1.6.9 mv grav-admin/* . && mv grav-admin/.* . rm -rf grav-admin 1.6.9
OPMERKING:Versie 1.6.9 is de huidige versie en kan anders zijn tegen de tijd dat je dit leest. Kijk op de Grav website voor de meest recente informatie.
Verander het eigendom van de/var/www/grav
directoryinnginx:
sudo chown -R nginx:nginx /var/www/grav
Startsudo vim /etc/php-fpm.d/www.conf
en stelgebruiker en groep in opnginx
. Aanvankelijk zal dit ingesteld zijn op gebruiker en groepapache:
sudo vim /etc/php-fpm.d/www.conf # user = nginx # group = nginx
Start de PHP-FPM dienst opnieuw.
sudo systemctl restart php-fpm.service
Maak de map/var/lib/php/session/
aan en verander het eigendom innginx:
sudo mkdir -p /var/lib/php/session/ && sudo chown -R nginx:nginx /var/lib/php/session/
Openhttp://example.com
in jewebbrowser en volg de aanwijzingen op het scherm. Om Grav admin te openen voeg je/admin
toe aan jeURL.
Stap 5 – Voltooi de Grav setup
Maak een Grav admin gebruiker aan:
Na het aanmaken word je doorgestuurd naar het admin dashboard: