Phorum met Nginx te installeren op Ubuntu 18.04 LTS

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 Ubuntu 18.04 LTS besturingssysteem, met Nginx als webserver, MySQL 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 versie 5.0 of hoger

Vereisten

  • Een Ubuntu 18.04 LTS besturingssysteem.
  • Een niet-root gebruiker met sudo privileges .

Eerste stappen

Controleer je Ubuntu versie:

lsb_release -ds
# Ubuntu 18.04.1 LTS

Stel de tijdzone in:

sudo dpkg-reconfigure tzdata

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

sudo apt update && sudo apt upgrade -y

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

sudo apt install -y curl wget vim git unzip socat bash-completion apt-transport-https build-essential

Stap 1 – Installeer PHP

Installeer PHP, en ook de nodige PHP uitbreidingen:

sudo apt install -y php7.2 php7.2-cli php7.2-fpm php7.2-common php7.2-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

De PHP-FPM dienst wordt automatisch gestart en ingeschakeld bij het herstarten op Ubuntu 18.04 systeem, dus je hoeft hem niet handmatig te starten en in te schakelen. We kunnen overgaan tot de volgende stap, namelijk de installatie en instelling van de databank.

Stap 2 – Installeer MySQL en maak een databank

Installeer MySQL databaseserver:

sudo apt install -y mysql-server

Controleer de MySQL versie:

mysql --version
# mysql  Ver 14.14 Distrib 5.7.25, for Linux (x86_64) using  EditLine wrapper

Voer het mysql_secure installationscript om MySQL beter te beveiligen en het wachtwoord voor MySQL in te stellenroot 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 met de MySQL shell als de root gebruiker:

sudo mysql -u root -p
# Enter password

Maak een lege MySQL database en gebruiker voor Cachet en onthoud de credentials:

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

Sluit MySQL af:

mysql> exit

Vervangdbname, username en password door je eigen namen.

Stap 3 - Installeer acme.sh client en verkrijg 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

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

  • Voor RSA: /home/username/example.com map.
  • Voor ECC/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 apt install -y nginx

Controleer de versie van NGINX:

sudo nginx -v
# nginx version: nginx/1.14.0 (Ubuntu)

Configureer NGINX voor Phorum. Draai sudo vim /etc/nginx/sites-available/phorum.conf 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$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php7.2-fpm.sock; } }

Activeer de nieuwe phorum.conf configuratie door het bestand aan de mapsites-enabled te koppelen:

sudo ln -s /etc/nginx/sites-available/phorum.conf /etc/nginx/sites-enabled

ControleerNGINXconfiguratie op syntaxisfouten:

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 de officiƫ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 in www-data:

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

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