Vanilla è un forum di discussione gratuito e open source scritto in PHP. Il software Vanilla Forum è distribuito con licenza GNU GPL2. Il suo codice sorgente è disponibile tramite Github. Ha un ricco sistema di componenti aggiuntivi che puoi sfruttare per aggiungere funzionalità personalizzate al tuo forum Vanilla. I contenuti per Vanilla Forum possono essere scritti utilizzando il linguaggio Markdown. In questo tutorial, esamineremo l'installazione e la configurazione del Vanilla Forum sul sistema CentOS 7 utilizzando Nginx come server Web, MySQL come server di database e facoltativamente puoi proteggere il livello di trasporto utilizzando il client acme.sh e l'autorità di certificazione Let's Encrypt per aggiungere il supporto SSL.
Requisiti
Vanilla richiede un server con PHP, MySQL e software per server web (come Apache o Nginx). Probabilmente dovrai possedere un dominio e averlo già configurato sul tuo server con DNS se vuoi installarlo su un server di produzione, ma in caso contrario non hai bisogno di un dominio.
Vanilla Forum minimo i requisiti sono:
- PHP versione 7.0 o successiva.
- Estensioni PHP mbstring, cURL, GD e PDO, MySQLi, OpenSSL.
- MySQL versione 5.0 o successiva (o equivalente Percona/MariaDB).
- Software server Web (Nginx, Apache ...).
- Modalità rigorosa MySQL disabilitata.
Vanilla Forum consiglia vivamente di consigliare :
- PHP versione 7.2 o più recente.
- Estensioni PHP mbstring, cURL, GD e PDO, MySQLi, OpenSSL.
- MySQL versione 5.7 o più recente (o equivalente Percona/MariaDB).
- Software server Web (Nginx, Apache ...).
- Crittografia SSL.
NOTA : PHP 7.0 ha raggiunto la fine del ciclo di vita e non riceverà più le patch di sicurezza, quindi si consiglia vivamente di utilizzare le versioni PHP più recenti. Il supporto di Vanilla per PHP 7.0 terminerà presto!
Prerequisiti
- Un sistema operativo che esegue CentOS 7.
- Un utente non root con privilegi sudo.
Passaggi iniziali
Controlla la tua versione di CentOS:
cat /etc/centos-release
# CentOS Linux release 7.6.1810 (Core)
Imposta il fuso orario:
timedatectl list-timezones
sudo timedatectl set-timezone 'Region/City'
Aggiorna i pacchetti del tuo sistema operativo (software). Questo è un primo passo importante perché ti assicura di avere gli ultimi aggiornamenti e correzioni di sicurezza per i pacchetti software predefiniti del tuo sistema operativo:
sudo yum update -y
Installa alcuni pacchetti essenziali che sono necessari per l'amministrazione di base del sistema operativo CentOS:
sudo yum install -y curl wget vim git unzip socat bash-completion epel-release
Passaggio 1:installa PHP e le estensioni PHP necessarie
Imposta il repository YUM di Webtatic:
sudo rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
Installa PHP e le estensioni PHP necessarie:
sudo yum install -y php72w php72w-cli php72w-fpm php72w-common php72w-mbstring php72w-curl php72w-gd php72w-mysql
Per mostrare PHP compilato nei moduli, puoi eseguire:
php -m
ctype
curl
exif
fileinfo
. . .
. . .
Controlla la versione PHP:
php --version
# PHP 7.2.14 (cli) (built: Jan 12 2019 12:47:33) ( NTS )
# Copyright (c) 1997-2018 The PHP Group
# Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
Avvia e abilita il servizio PHP-FPM:
sudo systemctl start php-fpm.service
sudo systemctl enable php-fpm.service
Possiamo passare al passaggio successivo, che è l'installazione e la configurazione del database.
Passaggio 2:installa MariaDB e crea un database per Vanilla Forum
Vanilla Forum supporta i database MySQL, MariaDB e Percona. In questo tutorial, utilizzeremo MariaDB come server di database. Poiché i repository CentOS 7 predefiniti contengono una versione di MariaDB molto vecchia che non è compatibile con Vanilla Forum, dovremo utilizzare il repository ufficiale di MariaDB per installare una versione più recente.
Crea il repository YUM MariaDB 10.2 per CentOS:
sudo vim /etc/yum.repos.d/MariaDB.repo
Copia e incolla il seguente testo al suo interno:
# MariaDB 10.2 CentOS repository list - created 2017-12-11 23:19 UTC
# http://downloads.mariadb.org/mariadb/repositories/
[mariadb]
name=MariaDB
baseurl=https://yum.mariadb.org/10.2/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
Dopo che il file è a posto, installa MariaDB eseguendo:
sudo yum install -y MariaDB-server MariaDB-client
Controlla la versione di MariaDB:
mysql --version
# mysql Ver 15.1 Distrib 10.2.21-MariaDB, for Linux (x86_64) using readline 5.1
Avvia e abilita il servizio MariaDB:
sudo systemctl start mariadb.service
sudo systemctl enable mariadb.service
Esegui mysql_secure installation
script per migliorare la sicurezza di MariaDB e impostare la password per MariaDB root
utente:
sudo mysql_secure_installation
Rispondi a ciascuna delle domande:
Enter current password for root (enter for none): Press Enter
Set root password? [Y/n] Y
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
Connettiti a MariaDB shell come utente root:
sudo mysql -u root -p
# Enter password
Crea un database MariaDB vuoto e un utente per Vanilla Forum e ricorda le credenziali:
MariaDB [(none)]> CREATE DATABASE dbname;
MariaDB [(none)]> GRANT ALL ON dbname.* TO 'username' IDENTIFIED BY 'password';
MariaDB [(none)]> FLUSH PRIVILEGES;
Esci da MariaDB:
MariaDB [(none)]> exit
Sostituisci dbname
, username
e password
con i tuoi nomi.
Passaggio 3:installa acme.sh
client e ottenere il certificato Let's Encrypt (opzionale )
Proteggere il tuo sito web con HTTPS non è necessario, ma è una buona pratica per proteggere il traffico del tuo sito. Per ottenere il certificato TLS da Let's Encrypt utilizzeremo il client acme.sh. Acme.sh è un puro software shell unix per ottenere certificati TLS da Let's Encrypt con zero dipendenze.
Scarica e installa 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 ~
Controlla la versione di acme.sh:
acme.sh --version
# v2.8.0
Ottieni RSA e ECC/ECDSA certificati per il tuo dominio/nome host:
# RSA 2048
acme.sh --issue --standalone -d example.com --keylength 2048
# ECDSA
acme.sh --issue --standalone -d example.com --keylength ec-256
Se vuoi certificati falsi per i test puoi aggiungere --staging
segnala i comandi precedenti.
Dopo aver eseguito i comandi precedenti, i tuoi certificati e chiavi sarà in:
- Per RSA :
/home/username/example.com
directory. - Per ECC/ECDSA :
/home/username/example.com_ecc
directory.
Per elencare i certificati emessi puoi eseguire:
acme.sh --list
Crea una directory per archiviare i tuoi certificati. Useremo /etc/letsencrypt
directory.
mkdir -p /etc/letsecnrypt/example.com
sudo mkdir -p /etc/letsencrypt/example.com_ecc
Installa/copia i certificati nella directory /etc/letsencrypt.
# 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"
Tutti i certificati verranno rinnovati automaticamente ogni 60 giorni.
Dopo aver ottenuto i certificati, esci dal modulo utente root e torna al normale utente sudo:
exit
Passaggio 4:installa NGINX e configura NGINX per Vanilla Forum
Vanilla Forum può funzionare bene con molti popolari software per server web. In questo tutorial, abbiamo selezionato Nginx. Se preferisci il server web Apache su Nginx, visita https://docs.vanillaforums.com/developer/backend/server-apache/ per saperne di più.
Scarica e installa Nginx dal repository CentOS:
sudo yum install -y nginx
Controlla la versione di Nginx:
nginx -v
# nginx version: nginx/1.12.2
Avvia e abilita il servizio Nginx:
sudo systemctl start nginx.service
sudo systemctl enable nginx.service
Configura Nginx per Vanilla eseguendo:
sudo vim /etc/nginx/conf.d/vanilla.conf
E popolare il file con la seguente configurazione:
server {
listen 80;
listen 443 ssl http2;
server_name forum.example.com;
root /var/www/vanilla;
index index.php;
# RSA
ssl_certificate /etc/letsencrypt/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/example.com/private.key;
# ECC/ECDSA
ssl_certificate /etc/letsencrypt/example.com_ecc/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/example.com_ecc/private.key;
location ~* /\.git { deny all; return 403; }
location /build/ { deny all; return 403; }
location /cache/ { deny all; return 403; }
location /cgi-bin/ { deny all; return 403; }
location /uploads/import/ { deny all; return 403; }
location /conf/ { deny all; return 403; }
location /tests/ { deny all; return 403; }
location /vendor/ { deny all; return 403; }
location ~* ^/index\.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_NAME /index.php;
fastcgi_param SCRIPT_FILENAME $realpath_root/index.php;
fastcgi_param X_REWRITE 1;
fastcgi_pass 127.0.0.1:9000;
}
location ~* \.php(/|$) {
rewrite ^ /index.php$uri last;
}
location / {
try_files $uri $uri/ @vanilla;
}
location @vanilla {
rewrite ^ /index.php$uri last;
}
}
NOTA :Per la configurazione Nginx completa e pronta per la produzione per Vanilla, visita https://docs.vanillaforums.com/developer/backend/server-nginx/.
Controlla la configurazione di Nginx per errori di sintassi:
sudo nginx -t
Ricarica il servizio Nginx:
sudo systemctl reload nginx.service
Passaggio 5:installa Vanilla Forum
Crea una directory principale dei documenti in cui dovrebbe risiedere Vanilla Forum:
sudo mkdir -p /var/www/vanilla
Cambia la proprietà del /var/www/vanilla
directory in {jour_user}
:
sudo chown -R {your_user}:{your_user} /var/www/vanilla
NOTA :Sostituisci {jour_user}
con il tuo nome utente utente non root creato inizialmente.
Vai alla directory principale del documento:
cd /var/www/vanilla
Scarica l'archivio zip di Vanilla Forum:
wget https://open.vanillaforums.com/get/vanilla-core-2.6.4.zip
Estrai e rimuovi l'archivio zip Vanilla:
unzip vanilla-core-2.6.4.zip
rm vanilla-core-2.6.4.zip
Fornisci la proprietà appropriata:
sudo chown -R nginx:nginx /var/www/vanilla
Esegui sudo vim /etc/php-fpm.d/www.conf
e imposta l'utente e il gruppo su nginx
. Inizialmente, saranno impostati su apache:
sudo vim /etc/php-fpm.d/www.conf
# user = nginx
# group = nginx
Vai alla cartella in cui hai caricato Vanilla nel tuo browser web e segui le istruzioni sullo schermo.
Passaggio 6:completa l'installazione e la configurazione del forum Vanilla
Dopo aver aperto il tuo sito in un browser web, dovresti essere reindirizzato alla seguente pagina:
Inserisci le informazioni richieste e fai clic su "Continua →" pulsante per completare l'installazione e la configurazione. Dopodiché dovrebbe apparire l'interfaccia di amministrazione di Vanilla Forum.
Link
- https://open.vanillaforums.com/
- https://github.com/vanilla/vanilla