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 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 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 installation
script 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
,username
enpassword
door je eigen namen.
Stap 3 - Installeeracme.sh
client 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--staging
vlag aan de bovenstaande commando's toevoegen.
Na het uitvoeren van de bovenstaande commando's staan jecertificaten ensleutels in:
- VoorRSA:
/home/username/example.com
map. - VoorECC/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 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.conf
uit 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/phorum
map 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.php
bestand te bewerken:
vim include/db/config.php
Verander het eigendom van de/var/www/phorum
directory innginx:
sudo chown -R nginx:nginx /var/www/phorum
Startsudo vim /etc/php-fpm.d/www.conf
en 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.php
te bezoeken in je web browser.