Craft CMS installeren op CentOS 7
Craft is een open bron CMS geschreven in PHP. Met Craft kun je gemakkelijk mooi uitziende inhoud maken en beheren, en precies ontwerpen en bouwen wat je nodig hebt. Het is een veilig en schaalbaar CMS met een groot plugin ecosysteem en de Craft broncode wordt gehost op GitHub. Deze handleiding leidt je door de Craft CMS installatieprocedure op een vers CentOS systeem met Nginx als webserver en we beveiligen de website met een Let’s encrypt SSL certificaat.
Vereisten
Craft vereist het volgende:
- PHP versie 7.0 of hoger met de volgende PHP uitbreidingen: (ctype, cURL, GD of ImageMagick, iconv, JSON, Multibyte String, OpenSSL, PCRE, PDO MySQL Driver of PDO PostgreSQL Driver, PDO, Reflection, SPL, Zip, Intl, DOM).
- MySQL 5.5+ met InnoDB, MariaDB 5.5+, of PostgreSQL 9.5+
- Minstens 256MB geheugen toegewezen aan PHP
- Minstens 200MB vrije schijfruimte
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
Stap 1 – Installeer PHP en de vereiste 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-pecl-imagick php72w-json php72w-mbstring php72w-mysql php72w-pgsql php72w-zip php72w-intl php72w-xml php72w-pdo
Controleer de PHP versie:
php --version
# PHP 7.2.13 (cli) (built: Dec 6 2018 23:18:37) ( NTS )
# Copyright (c) 1997-2018 The PHP Group
# Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
Start en schakel de PHP-FPM dienst in:
sudo systemctl start php-fpm.service
sudo systemctl enable php-fpm.service
Voersudo vim /etc/php.ini
uit en stelmemory_limit
in op minstens256MB
:
memory_limit = 256M
We kunnen overgaan tot de volgende stap, namelijk de installatie en inrichting van de databank.
Stap 2- Installeer MariaDB en maak een databank
Craft CMS ondersteunt MySQL/MariaDB en PostgreSQL databases. In deze handleiding zullen we MariaDB als databaseserver gebruiken.
Installeer MariaDB databaseserver:
sudo yum install -y mariadb-server
Controleer de versie van MariaDB:
mysql --version
# mysql Ver 15.1 Distrib 5.5.60-MariaDB, for Linux (x86_64) using readline 5.1
Start de MariaDB dienst en schakel die in:
sudo systemctl start mariadb.service
sudo systemctl enable mariadb.service
Voermysql_secure installation
script om MariaDB beter te beveiligen en stel het wachtwoord in voor MariaDBroot
gebruiker:
sudo mysql_secure_installation
Beantwoord elk van de vragen:
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 MariaDB shell als de root gebruiker:
sudo mysql -u root -p
# Enter password
Maak een lege MariaDB database en gebruiker voor Craft CMS en onthoud de credentials:
mariadb> CREATE DATABASE dbname;
mariadb> GRANT ALL ON dbname.* TO 'username' IDENTIFIED BY 'password';
mariadb> FLUSH PRIVILEGES;
Sluit MariaDB af:
mariadb> exit
Vervangdbname
,username
enpassword
door je eigen namen.
Stap 3 - Installeeracme.sh
client 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 programma Acme.sh. Acme.sh is een zuivere unix shell software om TLS certificaten te verkrijgen van Let's Encrypt zonder afhankelijkheden.
Download en installeer Acme.sh:
sudo mkdir /etc/letsencrypt
git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh
sudo ./acme.sh --install --home /etc/letsencrypt --accountemail [email protected]
cd ~
Controleer de versie van Acme.sh:
/etc/letsencrypt/acme.sh --version
# v2.8.0
VerkrijgRSAenECC/ECDSAcertificaten voor je domein/hostnaam:
# RSA 2048
sudo /etc/letsencrypt/acme.sh --issue --standalone --home /etc/letsencrypt -d example.com --keylength 2048
# ECDSA
sudo /etc/letsencrypt/acme.sh --issue --standalone --home /etc/letsencrypt -d example.com --keylength ec-256
Na het uitvoeren van de bovenstaande commando's zijn jecertificatenensleutelszich in:
- VoorRSA:
/etc/letsencrypt/example.com
map. - VoorECC/ECDSA:
/etc/letsencrypt/example.com_ecc
map.
Stap 4 - Installeer en configureer Nginx
Craft CMS kan prima werken met veel populaire webserver programma's. In deze handleiding kiezen we Nginx.
Download en installeer de nieuwste mainline versie van Nginx uit de officiƫle Nginx repository.
Om een handtekening te controleren is het nodig Nginx handtekening sleutelte downloadenen importeer het naar derpm
sleutelring van het programma:
wget https://nginx.org/keys/nginx_signing.key
sudo rpm --import nginx_signing.key
Om de yum repository voor CentOS in te stellen, maak je het bestand met de naam/etc/yum.repos.d/nginx_mainline.repo
aan met de volgende inhoud:
[nginx] name=nginx repo baseurl=http://nginx.org/packages/mainline/centos/7/$basearch/ gpgcheck=1 enabled=1
Installeer de nieuwste mainline Nginx pakketten:
sudo yum install -y nginx nginx-module-geoip nginx-module-image-filter nginx-module-njs nginx-module-perl nginx-module-xslt
Start de Nginx service en schakel die in:
sudo systemctl start nginx.service
sudo systemctl enable nginx.service
Controleer de Nginx versie:
nginx -v
# nginx version: nginx/1.15.8
Configureer Nginx voor Craft CMS door te draaien:
sudo vim /etc/nginx/conf.d/craft.conf
En vul het bestand met de volgende configuratie:
server {
listen 80;
listen [::]:80;
listen 443 ssl;
listen [::]:443 ssl;
server_name example.com www.example.com;
root /var/www/craft/web;
index index.php;
ssl_certificate /etc/letsencrypt/example.com/fullchain.cer;
ssl_certificate_key /etc/letsencrypt/example.com/example.com.key;
ssl_certificate /etc/letsencrypt/example.com_ecc/fullchain.cer;
ssl_certificate_key /etc/letsencrypt/example.com_ecc/example.com.key;
location / {
try_files $uri/index.html $uri $uri/ /index.php?$query_string;
}
location ~ [^/]\.php(/|$) {
try_files $uri $uri/ /index.php?$query_string;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param HTTP_PROXY "";
}
}
Vervang example.com door je eigen domeinnaam in het bovenstaande bestand.
OPMERKING:Voor complete en productieklare Nginx config voor Craft bezoek jehttps://github.com/nystudio107/nginx-craft. De config is opzettelijk vereenvoudigd om de configuratie dicht en eenvoudig te houden.
Test de Nginx configuratie:
sudo nginx -t
Herlaad Nginx:
sudo systemctl reload nginx.service
Stap 5 - Installeer Composer
Installeer Composer, de PHP dependency manager globaal:
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === '93b54496392c062774670ac18b134c3b3a95e5a5e5c8f1a9f115f203b75bf9a129d5daa8ba6a13e2cc8a1da0806388a8') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"
sudo mv composer.phar /usr/local/bin/composer
Controleer de Composer versie:
composer --version
# Composer version 1.8.0 2018-12-03 10:31:16
OPMERKING:Composer installatiecommando's zullen in de toekomst veranderen, dus kijk op https://getcomposer.org/download/voor de meest actuele commando's als de bovenstaande commando's niet werken.
Stap 6 - Installeer Craft CMS
Craft CMS kan gedownload worden met Composer of door handmatig een.zip
oftar.gz
archief te downloaden. In deze handleiding zullen we Composer gebruiken om Craft CMS te downloaden.
Maak een document root directory waar Craft CMS in moet komen te staan:
sudo mkdir -p /var/www/craft
Navigeer naar de document root directory:
cd /var/www/craft
Verander het eigendom van de/var/www/craft
map in{jouw_gebruikersnaam}.
sudo chown -R {your_username}:{your_username} /var/www/craft
Om een nieuw Craft project te maken, voer je dit commando uit:
composer create-project craftcms/craft .
Verander eigendom van de/var/www/craft
map innginx:
sudo chown -R nginx:nginx /var/www/craft
Startsudo vim /etc/php-fpm.d/www.conf
en 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
Maak/var/lib/php/session/
map en verander het eigendom innginx
.
sudo mkdir -p /var/lib/php/session && sudo chown -R nginx:nginx /var/lib/php/session
Ga in je webbrowser naarhttp://<Hostname>/index.php?p=admin/install
(waarbij je<Hostname>
door de hostnaam van je webserver). Als je tot nu toe alles goed gedaan hebt, zou je begroet moeten worden door Craft's Setup Wizard.
Stap 7 - Voltooi de Craft CMS installatie
Na het openen van je installatie URL zou de pagina zoals hieronder moeten verschijnen. Klik op de knop"Installeer Craft":
Accepteer de licentie door op de"Got it"knop te klikken:
Vul gegevens over de databank in en klik op de"Next"knop:
Maak Craft account aan en klik op de"Next"knop:
Setup je site en klik op de"Finish up"knop:
Hierna zou je moeten worden doorverwezen naar de Craft admin pagina: