Phorum met Nginx op CentOS 7 te installeren

Phorum is een op PHP en MySQL gebaseerde Open Source forum software.In deze gids leiden we je stap-voor-stap door het installatieproces van Phorum op het CentOS 7 besturingssysteem, met Nginx als webserver, MariaDB als databank, en acme.sh en Let’s Encrypt voor HTTPS.

Vereisten

Vereisten voor het draaien van Phorum zijn:

  • Nginx
  • PHP versie 5.2 of hoger
  • MySQL/MariaDB versie 5.0 of hoger

Vereisten

  • Een CentOS 7 besturingssysteem.
  • Een niet-root gebruiker metsudoprivileges.

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

Installeer PHP, en ook de nodige PHP uitbreidingen:

sudo yum install -y php php-cli php-fpm php-common php-mysql

Om PHP gecompileerd in modules te laten zien, kun je:

php -m

ctype
curl
exif
fileinfo
. . .
. . .

Controleer de PHP versie:

php --version

# PHP 7.2.10-0ubuntu0.18.04.1 (cli) (built: Sep 13 2018 13:45:02) ( NTS )
# Copyright (c) 1997-2018 The PHP Group
# Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
# with Zend OPcache v7.2.10-0ubuntu0.18.04.1, 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 MariaDB en maak een databank

InstalleerMariaDBdatabaseserver:

sudo yum install -y mariadb-server

Controleer deMariaDBversie:

mysql --version

Start en schakel de MariaDB dienst in:

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

Voermysql_secure installationscript omMariaDBbeter te beveiligen en stel het wachtwoord voorMariaDBinroot gebruiker:

sudo mysql_secure_installation

Beantwoord elk van de vragen:

Would you like to setup VALIDATE PASSWORD plugin? N
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 metMariaDBshell als de root gebruiker:

sudo mysql -u root -p
# Enter password

Maak een legeMariaDBdatabase en gebruiker aan en onthoud de credentials:

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

SluitMariaDB af:

MariaDB> exit

Vervangdbname,usernameenpassworddoor je eigen namen.

Stap 3 - Installeeracme.shclient en verkrijg het 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 krijgen gebruiken we het acme.sh programma. 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

VerkrijgRSAenECC/ECDSAcertificaten voor je 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--stagingvlag aan de bovenstaande commando's toevoegen.

Na het uitvoeren van de bovenstaande commando's staan jecertificaten ensleutels in:

  • VoorRSA:/home/username/example.commap.
  • VoorECC/ECDSA:/home/username/example.com_eccmap.

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 4 - Installeer en configureer NGINX

Installeer NGINX:

sudo yum install -y nginx

Controleer de NGINX versie:

sudo nginx -v
# nginx version: nginx/1.12.2

Start en schakel Nginx service in:

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

ConfigureerNGINXvoor Phorum. Voersudo vim /etc/nginx/conf.d/phorum.confuit en voeg de volgende configuratie toe.

server {
  listen 80;
  listen 443 ssl;
  server_name example.com;
  root /var/www/phorum;
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.php index.html; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ \.php$ { fastcgi_split_path_info ^(.+\.php)(/.+)$;
try_files $fastcgi_script_name =404;
set $path_info $fastcgi_path_info;
fastcgi_param PATH_INFO $path_info;
fastcgi_index index.php;
include fastcgi.conf;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_pass 127.0.0.1:9000; } }

ControleerNGINXconfiguratie op fouten in de syntaxis:

sudo nginx -t

HerlaadNGINXdienst:

sudo systemctl reload nginx.service

Stap 4 - Installeer Phorum

Maak een document root directory voor Phorum:

sudo mkdir -p /var/www/phorum

Verander het eigendom van de/var/www/phorummap in[jour_user]:

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

Navigeer naar de basismap van het document:

cd /var/www/phorum

Download de nieuwste stabiele Phorum distributie van deofficiƫle website:

wget https://www.phorum.org/downloads/phorum-5.2.23.tar.gz

Pak het gedownloade archief uit en verplaats de bestanden naar de document root:

tar xvzf phorum-5.2.23.tar.gz
rm phorum-5.2.23.tar.gz
mv Core-phorum_5_2_23/* . && mv Core-phorum_5_2_23/.* .
rmdir Core-phorum_5_2_23

Configureer de databasetoegang:

cp include/db/config.php.sample include/db/config.php

Configureer de database instellingen door hetinclude/db/config.phpbestand te bewerken:

vim include/db/config.php

Verander het eigendom van de/var/www/phorumdirectory innginx:

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

Startsudo vim /etc/php-fpm.d/www.confen stel gebruiker en groep in opnginx:

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

Start de PHP-FPM dienst opnieuw:

sudo systemctl restart php-fpm.service

Om de installatie te voltooien, voer je het web-gebaseerde installatieprogramma uit doorhttp://forum.example.com/admin.phpte bezoeken in je web browser.