Vanilla je bezplatný, open-source a flexibilní software komunitního fóra, který lze použít k vytvoření vašeho vlastního webu fóra. Jedná se o lehké a vícejazyčné řešení fóra, které vám pomůže vytvořit online komunitu během několika minut. Je napsán v PHP a přichází se spoustou doplňků a témat. Je nabitý prémiovými funkcemi a používají ho špičkové značky k zapojení zákazníků, zvýšení loajality a snížení nákladů na podporu.
V tomto tutoriálu se naučíme, jak nainstalovat Vanilla forum na CentOS 8 a zabezpečit jej pomocí Let's Encrypt SSL.
Předpoklady
- Server se systémem CentOS 8.
- Na vašem serveru je nastaveno heslo uživatele root.
Instalovat LEMP Server
Nejprve budete muset do svého systému nainstalovat webový server Nginx, databázový server MariaDB, PHP a další požadovaná rozšíření PHP. Všechny je můžete nainstalovat spuštěním následujícího příkazu:
dnf install nginx mariadb-server php php php-mysqlnd php-opcache php-xml php-xmlrpc php-gd php-mbstring php-json php-fpm php-curl php-pear php-openssl php-intl unzip -y
Po instalaci všech balíčků spusťte Nginx, PHP-FPM a službu MariaDB a povolte jejich spuštění po restartu systému pomocí následujícího příkazu:
systemctl start nginx
systemctl start php-fpm
systemctl start mariadb
systemctl enable nginx
systemctl enable php-fpm
systemctl enable mariadb
Konfigurace databáze MariaDB
Než začnete, je dobré zabezpečit MariaDB. Můžete jej zabezpečit pomocí následujícího skriptu:
mysql_secure_installation
Odpovězte na všechny otázky, jak je uvedeno níže:
Enter current password for root (enter for none): Set root password? [Y/n] Y New password: Re-enter new 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
Po zabezpečení MariaDB se přihlaste do prostředí MariaDB pomocí následujícího příkazu:
mysql -u root -p
Zadejte své root heslo MariaDB a vytvořte databázi a uživatele pro Vanilla pomocí následujícího příkazu:
MariaDB [(none)]> CREATE DATABASE vanilladb CHARACTER SET utf8 COLLATE utf8_general_ci;
MariaDB [(none)]> CREATE USER 'vanilla'@'localhost' IDENTIFIED BY 'password';
Dále udělte všechna oprávnění databázi Vanilla pomocí následujícího příkazu:
MariaDB [(none)]> GRANT ALL PRIVILEGES ON vanilladb.* TO 'vanilla'@'localhost';
Dále vyprázdněte oprávnění a ukončete prostředí MariaDB pomocí následujícího příkazu:
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;
Stáhnout fórum Vanilla
Nejnovější stabilní verzi fóra Vanilla si můžete stáhnout z jeho oficiálních stránek pomocí následujícího příkazu:
wget https://open.vanillaforums.com/get/vanilla-core-3.3.zip
Po stažení stažený soubor rozbalte pomocí následujícího příkazu:
unzip vanilla-core-3.3.zip
Dále přesuňte extrahovaný adresář do kořenového webového adresáře Nginx pomocí následujícího příkazu:
mv package /var/www/html/vanilla
Dále změňte vlastnictví adresáře vanilla na Nginx:
chown -R nginx:nginx /var/www/html/vanilla
Jakmile budete hotovi, můžete přejít k dalšímu kroku.
Konfigurovat fond PHP-FPM
Ve výchozím nastavení je PHP-FPM nakonfigurováno pro Apache. Zde použijeme Nginx jako webový server. Takže budete muset nakonfigurovat PHP-FPM pro Nginx. Můžete to udělat úpravou souboru /etc/php-fpm.d/www.conf:
nano /etc/php-fpm.d/www.conf
Změňte následující řádky:
user = nginx group = nginx
Po dokončení uložte a zavřete soubor. Poté vytvořte adresář relace pro PHP a změňte jeho vlastnictví:
mkdir -p /var/lib/php/session
chown -R nginx:nginx /var/lib/php/session
Poté restartujte službu PHP-FPM, aby se změny projevily:
systemctl restart php-fpm
Konfigurovat Nginx pro Vanilla
Dále vytvořte nový soubor virtuálního hostitele Nginx, který bude sloužit fóru Vanilla.
nano /etc/nginx/conf.d/vanilla.conf
Přidejte následující řádky:
server { listen 80; server_name vanilla.linuxbuz.com; root /var/www/html/vanilla; index index.php; 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 unix:/var/run/php-fpm/www.sock; } location ~* \.php(/|$) { rewrite ^ /index.php$uri last; } location / { try_files $uri $uri/ @vanilla; } location @vanilla { rewrite ^ /index.php$uri last; } }
Po dokončení uložte a zavřete soubor. Poté restartujte službu Nginx, abyste použili změny:
systemctl restart nginx
Zabezpečte vanilku pomocí Let's Encrypt SSL
Dále budete muset do svého systému nainstalovat nástroj Certbot, abyste si mohli stáhnout a nainstalovat Let's Encrypt SSL pro svůj web Vanilla.
Klienta Certbot můžete nainstalovat pomocí následujícího příkazu:
wget https://dl.eff.org/certbot-auto
mv certbot-auto /usr/local/bin/certbot-auto
chown root /usr/local/bin/certbot-auto
chmod 0755 /usr/local/bin/certbot-auto
Dále získejte a nainstalujte certifikát SSL pro svůj web Vanilla pomocí následujícího příkazu:
certbot-auto --nginx -d vanilla.linuxbuz.com
Výše uvedený příkaz nejprve nainstaluje všechny požadované závislosti na váš server. Po instalaci budete požádáni o zadání e-mailové adresy a přijetí podmínek služby, jak je uvedeno níže:
Saving debug log to /var/log/letsencrypt/letsencrypt.log Plugins selected: Authenticator nginx, Installer nginx Enter email address (used for urgent renewal and security notices) (Enter 'c' to cancel): [email protected] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Please read the Terms of Service at https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must agree in order to register with the ACME server at https://acme-v02.api.letsencrypt.org/directory - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (A)gree/(C)ancel: A - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Would you be willing to share your email address with the Electronic Frontier Foundation, a founding partner of the Let's Encrypt project and the non-profit organization that develops Certbot? We'd like to send you email about our work encrypting the web, EFF news, campaigns, and ways to support digital freedom. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (Y)es/(N)o: Y Obtaining a new certificate Performing the following challenges: http-01 challenge for vanilla.linuxbuz.com Waiting for verification... Cleaning up challenges Deploying Certificate to VirtualHost /etc/nginx/conf.d/vanilla.conf
Vyberte, zda chcete přesměrovat provoz HTTP na HTTPS nebo ne, jak je uvedeno níže:
Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1: No redirect - Make no further changes to the webserver configuration. 2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for new sites, or if you're confident your site works on HTTPS. You can undo this change by editing your web server's configuration. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2
Zadejte 2 a stiskněte Enter pokračovat. Po úspěšném dokončení instalace byste měli získat následující výstup:
Redirecting all traffic on port 80 to ssl in /etc/nginx/conf.d/vanilla.conf - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Congratulations! You have successfully enabled https://vanilla.linuxbuz.com You should test your configuration at: https://www.ssllabs.com/ssltest/analyze.html?d=vanilla.linuxbuz.com - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/vanilla.linuxbuz.com/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/vanilla.linuxbuz.com/privkey.pem Your cert will expire on 2020-06-11. To obtain a new or tweaked version of this certificate in the future, simply run certbot-auto again with the "certonly" option. To non-interactively renew *all* of your certificates, run "certbot-auto renew" - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF: https://eff.org/donate-le
Konfigurovat SELinux a bránu firewall
Ve výchozím nastavení je SELinux povolen v CentOS 8. Budete jej tedy muset nakonfigurovat pro webovou stránku fóra Vanilla.
SELinux můžete nakonfigurovat pomocí následujícího příkazu:
setsebool httpd_can_network_connect on -P
chcon -R -u system_u -t httpd_sys_rw_content_t -r object_r /var/www/html/vanilla
Dále povolte port 80 a 443 přes bránu firewall pomocí následujícího příkazu:
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload
Jakmile budete hotovi, můžete přejít k dalšímu kroku.
Přístup k fóru Vanilla
Otevřete webový prohlížeč a navštivte URL https://vanilla.linuxbuz.com. Budete přesměrováni na následující stránku:
Zadejte podrobnosti o databázi, název aplikace, e-mail, uživatelské jméno správce, heslo a klikněte na Pokračovat knoflík. Po dokončení instalace byste měli vidět panel Vanilla na následující stránce:
Závěr
Gratulujeme! úspěšně jste nainstalovali Vanilla forum na CentOS 8 s Let's Encrypt SSL. Nyní můžete snadno hostovat svůj vlastní web komunitního fóra. Pokud máte nějaké dotazy, neváhejte se mě zeptat.