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.iniuit en stelmemory_limitin 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 installationscript om MariaDB beter te beveiligen en stel het wachtwoord in voor MariaDBrootgebruiker:

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,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 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.commap.
  • VoorECC/ECDSA:/etc/letsencrypt/example.com_eccmap.

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 derpmsleutelring 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.repoaan 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.zipoftar.gzarchief 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/craftmap 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/craftmap innginx:

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

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

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":

Begin met de ambachtelijke installatie

Accepteer de licentie door op de"Got it"knop te klikken:

Accepteer de licentie

Vul gegevens over de databank in en klik op de"Next"knop:

Maak verbinding met databank

Maak Craft account aan en klik op de"Next"knop:

Maak een gebruiker

Setup je site en klik op de"Finish up"knop:

Voeg site informatie toe

Hierna zou je moeten worden doorverwezen naar de Craft admin pagina:

Craft CMS Dashboard