Oktober CMS met Nginx op Fedora 29 te installeren

Oktober CMS is een gratis, open-source, zelf gehost CMS platform gebaseerd op het Laravel PHP Framework. De broncode van Oktober CMS wordt gehost op Github. Duizenden digitale studio’s en freelancers over de hele wereld houden van Oktober vanwege zijn eenvoud, flexibiliteit, en moderne ontwerp. In deze zelfstudie doorlopen we de installatie van October CMS op Fedora 29 systeem door Nginx als webserver te gebruiken, MariaDB als databaseserver, en optioneel kun je de transportlaag beveiligen door acme.sh client en Let’s Encrypt certificate authority te gebruiken om SSL ondersteuning toe te voegen.

Vereisten

Voor je verder gaat, moet je controleren of je server aan de minimale systeemvereisten voldoet. Oktober CMS heeft de volgende serververeisten voor webhosting:

  • PHP versie 7.0 of hoger
  • PHP PDO uitbreiding
  • cURL PHP Uitbreiding
  • OpenSSL PHP Uitbreiding
  • Mbstring PHP Bibliotheek
  • Zip PHP Bibliotheek
  • GD PHP Bibliotheek
  • XML PHP Uitbreiding
  • JSON PHP Uitbreiding
  • Apache met mod_rewrite of Nginx

Vereisten

  • Een systeem waarop Fedora 29 draait.
  • Een niet-root gebruiker met sudo privileges.

Eerste stappen

Controleer je Fedora systeemversie:

cat /etc/fedora-release
# Fedora release 29 (Twenty Nine)

Stel de tijdzone in:

timedatectl list-timezones
sudo timedatectl set-timezone 'Region/City'

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

sudo dnf upgrade -y

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

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

Stap 1 – Installeer PHP

Het October CMS platform vereist PHP versie 7.0 of hoger.

Installeer PHP, en ook de nodige PHP uitbreidingen:

sudo dnf install -y php-cli php-fpm php-pdo php-common php-mysqlnd php-curl php-json php-zip php-gd php-xml php-mbstring 

Controleer de PHP versie:

php --version

# PHP 7.2.15 (cli) (built: Feb  5 2019 15:43:35) ( NTS )
# Copyright (c) 1997-2018 The PHP Group
# Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies # with Zend OPcache v7.2.9, 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

We kunnen overgaan tot de volgende stap, namelijk de installatie en inrichting van de databank.

Stap 2 – Installeer MariaDB en maak een databank voor oktober

Installeer MariaDB databaseserver:

sudo dnf install -y mariadb-server

Controleer de MariaDB versie:

mysql --version
# mysql  Ver 15.1 Distrib 10.3.12-MariaDB, for Linux (x86_64) using readline 5.1

Start de MariaDB service en schakel die in:

sudo systemctl start mariadb.service
sudo systemctl enable mariadb.service

Voer mysql_secure installation script uit om MariaDB beter te beveiligen en stel het wachtwoord in voor de gebruiker MariaDBroot:

mysql_secure_installation

Log in MariaDB in als de root gebruiker:

mysql -u root -p
# Enter password

Maak een MariaDB database en gebruiker die je voor je installatie van October zult gebruiken, en onthoud de credentials:

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

Sluit de MariaDB shell af:

quit

Stap 3 – Installeer Acme.sh client en verkrijg het 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 SSL certificaat van Let’s Encrypt te verkrijgen zullen we Acme.sh client gebruiken. Acme.sh is een pure UNIX shell software om SSL 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

VerkrijgRSA en ECC/ECDSA certificaten 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 je certificatene n sleutelszich in:

  • Voor RSA: /etc/letsencrypt/example.com map.
  • Voor ECC/ECDSA: /etc/letsencrypt/example.com_ecc map.

Stap 4 – Installeer en configureer NGINX

Installeer de NGINX webserver:

sudo dnf install -y nginx

Controleer de NGINX versie:

nginx -v
# nginx version: nginx/1.14.1

Start en schakel NGINX service in:

sudo systemctl start nginx.service
sudo systemctl enable nginx.service

Voer uitsudo vim /etc/nginx/conf.d/october.confen vul het bestand met de volgende configuratie:

server {
listen [::]:443 ssl http2;
listen 443 ssl http2; listen [::]:80; listen 80; server_name example.com; index index.php index.html; root /var/www/october;
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.php$is_args$args; } location ~ \.php$ { include default.d/php.conf; include fastcgi_params; fastcgi_pass unix:/run/php-fpm/www.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_read_timeout 120s; } rewrite ^themes/.*/(layouts|pages|partials)/.*.htm /index.php break; rewrite ^bootstrap/.* /index.php break; rewrite ^config/.* /index.php break; rewrite ^vendor/.* /index.php break; rewrite ^storage/cms/.* /index.php break; rewrite ^storage/logs/.* /index.php break; rewrite ^storage/framework/.* /index.php break; rewrite ^storage/temp/protected/.* /index.php break; rewrite ^storage/app/uploads/protected/.* /index.php break; }

Test de NGINX configuratie:

sudo nginx -t

Herlaad NGINX:

sudo systemctl reload nginx.service

Stap 5 - Download en installeer het October CMS platform

Maak een document root directory:

sudo mkdir -p /var/www/october

Verander het eigendom van de /var/www/october directory in johndoe:

sudo chown -R [your_user]:[your_user] /var/www/october

Navigeer naar de document root:

cd /var/www/october

Download het October CMS installatieprogramma:

wget http://octobercms.com/download -O october.zip

Pak het October CMS installatieprogramma uit:

unzip october.zip
rm october.zip
mv install-master/* .

Verander eigendom van de map/var/www/october in nginx:

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

Start sudo vim /etc/php-fpm.d/www.conf en stel de gebruiker en groep in op nginx. Aanvankelijk zullen ze ingesteld zijn op apache:

sudo vim /etc/php-fpm.d/www.conf
# user = nginx
# group = nginx

Start de PHP-FPM dienst opnieuw:

sudo systemctl restart php-fpm.service

Navigeer naar het install.php script in je webbrowser, zoals example.com/install.php en volg de installatie-instructies.

Stap 6 - Voltooi de installatie in oktober

Controleer of je Systeemcontrole in orde is en ga verder door op de"Agree & Continue" knopte drukken.

Oktober CMS opzet

Configureer je database en admin gebruikersinstellingen.

Database instellingen

Instellen van Administrator gebruikers

Je kunt ook enkele geavanceerde instellingen configureren of je kunt de standaardwaarden laten staan.

Geavanceerde instellingen

En als alles ingesteld is druk je tenslotte op het blauwe"Continue" knopje.

Vervolgens wordt je gevraagd,"Hoe wil je je site inrichten?". Je krijgt 3 opties: Begin vanaf nul, Begin vanaf een thema, Gebruik een project ID. Kies de optie die je voorkeur heeft.

Aan de slag met Oktober CMS

Om toegang te krijgen tot het beheergebied van het October CMS platform, voeg je gewoon/backend toe aan je URL/IP.

Na de installatie moet je om veiligheidsredenen de installatiebestanden, het install.php script en de mapinstall_files verwijderen:

sudo rm /var/www/october/install.php && sudo rm -rf /var/www/october/install_files

Links