GNU/Linux >> Znalost Linux >  >> Cent OS

Jak nainstalovat Flarum Forum s Nginx a LE SSL na CentOS 8

Flarum je bezplatný software pro fóra s otevřeným zdrojovým kódem nové generace, který vám usnadňuje zakládání a budování úspěšné online komunity. Je to jednoduchý, lehký, rychlý a mobilní software založený na PHP. Dodává se s bohatou sadou funkcí včetně elegantního uživatelského rozhraní, dvoupanelového rozhraní, nekonečného posouvání, plovoucího skladatele, plně responzivního a mnoha dalších.

V tomto tutoriálu vysvětlíme, jak nainstalovat fórum Flarum na server CentOS 8.

Požadavky

  • Server se systémem CentOS 8.
  • Platný název domény s adresou IP vašeho serveru
  • Na serveru je nakonfigurováno heslo uživatele root.

Začínáme

Než začnete, budete muset do systému nainstalovat úložiště EPEL a Remi. Nejprve nainstalujte úložiště EPEL pomocí následujícího příkazu:

dnf install epel-release -y

Dále si stáhněte a nainstalujte úložiště Remi pomocí následujícího příkazu:

wget http://rpms.remirepo.net/enterprise/remi-release-8.rpm
rpm -Uvh remi-release-8.rpm

Instalovat Nginx, MariaDB a PHP

Nejprve nainstalujte webový server Nginx a server MariaDB pomocí následujícího příkazu:

dnf install nginx mariadb-server -y

Jakmile jsou oba balíčky nainstalovány, budete muset povolit modul php:remi-7.3 pro instalaci PHP 7.3. Můžete jej povolit pomocí následujícího příkazu:

dnf module enable php:remi-7.3

Dále nainstalujte PHP s dalšími požadovanými závislostmi pomocí následujícího příkazu:

dnf install php php-fpm php-common php-opcache php-pecl-apcu php-cli php-pear php-pdo php-mysqlnd php-pgsql php-pecl-mongodb php-pecl-redis php-pecl-memcache php-pecl-memcached php-gd php-mbstring php-mcrypt php-xml -y

Jakmile jsou všechny balíčky nainstalovány, spusťte službu Nginx, MariaDB a PHP-FPM a povolte jim spuštění po restartu systému pomocí následujícího příkazu:

systemctl start nginx
systemctl start mariadb
systemctl start php-fpm
systemctl enable nginx
systemctl enable mariadb
systemctl enable php-fpm

Jakmile budete hotovi, můžete přejít k dalšímu kroku.

Konfigurace databáze MariaDB

Ve výchozím nastavení není MariaDB zabezpečena. 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

Jakmile budete hotovi, přihlaste se do prostředí MariaDB pomocí následujícího příkazu:

mysql -u root -p

Po zobrazení výzvy zadejte heslo uživatele root a poté vytvořte databázi a uživatele pro Flarum pomocí následujícího příkazu:

MariaDB [(none)]> CREATE DATABASE flarumdb;
MariaDB [(none)]> GRANT ALL PRIVILEGES on flarumdb.* to 'flarum'@'localhost' identified by 'password';

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;

Jakmile budete hotovi, můžete přejít k dalšímu kroku.

Konfigurace PHP-FPM pro Nginx

Dále budete muset nakonfigurovat PHP-FPM pro práci s Nginx. Můžete to udělat úpravou souboru www.conf:

nano /etc/php-fpm.d/www.conf

Změňte jméno uživatele a skupiny z apache na nginx, jak je znázorněno níže:

user = nginx
group = nginx
listen.owner = nginx
listen.group = nginx

Dále najděte následující řádek:

;listen = /run/php-fpm/www.sock

A nahraďte jej následujícím řádkem:

listen = 127.0.0.1:9000

Po dokončení uložte a zavřete soubor. Poté restartujte službu PHP-FPM, aby se změny projevily:

systemctl restart php-fpm

Instalovat Flarum

Před instalací Flarum budete muset do svého systému nainstalovat Composer.

Můžete jej nainstalovat pomocí následujícího příkazu:

curl -sS https://getcomposer.org/installer | php

Po instalaci byste měli získat následující výstup:

All settings correct for using Composer
Downloading...

Composer (version 1.9.2) successfully installed to: /root/composer.phar
Use it: php composer.phar

Dále přesuňte binární soubor Composer do adresáře /usr/local/bin a udělte správná oprávnění:

mv composer.phar /usr/local/bin/composer
chmod 755 /usr/local/bin/composer

Dále změňte adresář na kořen dokumentu Nginx a vytvořte projekt Flarum pomocí následujícího příkazu:

cd /var/www/html
composer create-project flarum/flarum . --stability=beta

Dále udělte správná oprávnění k webovému kořenovému adresáři Nginx pomocí následujícího příkazu:

chown -R nginx:nginx /var/www/html
chmod -R 755 /var/www/html
chown -R nginx:nginx /var/lib/php

Jakmile budete hotovi, můžete přejít k dalšímu kroku.

Konfigurovat Nginx pro Flarum

Dále budete muset vytvořit konfigurační soubor virtuálního hostitele Nginx pro Nginx. Můžete jej vytvořit pomocí následujícího příkazu:

nano /etc/nginx/conf.d/flarum.conf

Přidejte následující řádky:

server {
    listen   80;
    server_name  flarum.example.com;

# note that these lines are originally from the "location /" block
root   /var/www/html/public;
index index.php index.html index.htm;

location / { try_files $uri $uri/ /index.php?$query_string; }
location /api { try_files $uri $uri/ /api.php?$query_string; }
location /admin { try_files $uri $uri/ /admin.php?$query_string; }

location /flarum {
    deny all;
    return 404;
}

location ~ \.php$ {
    try_files $uri =404;
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
}

location ~* \.html$ {
    expires -1;
}

location ~* \.(css|js|gif|jpe?g|png)$ {
    expires 1M;
    add_header Pragma public;
    add_header Cache-Control "public, must-revalidate, proxy-revalidate";
}
gzip on;
gzip_http_version 1.1;
gzip_vary on;
gzip_comp_level 6;
gzip_proxied any;
gzip_types application/atom+xml
           application/javascript
           application/json
           application/vnd.ms-fontobject
           application/x-font-ttf
           application/x-web-app-manifest+json
           application/xhtml+xml
           application/xml
           font/opentype
           image/svg+xml
           image/x-icon
           text/css
           #text/html -- text/html is gzipped by default by nginx
           text/plain
           text/xml;
gzip_buffers 16 8k;
gzip_disable "MSIE [1-6]\.(?!.*SV1)";
   }

Uložte a zavřete soubor, když budete hotovi. Dále budete muset zvětšit velikost hash_bucket v souboru nginx.conf.

Můžete to udělat úpravou souboru /etc/nginx/nginx.conf:

nano /etc/nginx/nginx.conf

Přidejte následující řádek přesně nad poslední řádek:

server_names_hash_bucket_size 64;

Uložte a zavřete soubor. Poté pomocí následujícího příkazu zkontrolujte Nginx, zda neobsahuje nějakou chybu syntaxe:

nginx -t

Měli byste vidět následující výstup:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Nakonec restartujte službu Nginx a PHP-FPM, aby se změny projevily:

systemctl restart php-fpm
systemctl restart nginx

Konfigurovat SELinux a bránu firewall

Nejprve budete muset vytvořit pravidlo brány firewall pro povolení služeb HTTP a HTTPS z externích sítí. Můžete to povolit pomocí následujícího příkazu:

firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload

Ve výchozím nastavení je SELinux povolen v CentOS 8. Budete tedy muset nakonfigurovat SELinux, aby Flarum fungoval správně. SELinux můžete nakonfigurovat pomocí následujícího příkazu:

setsebool httpd_can_network_connect on -P

Jakmile budete hotovi, můžete přejít k dalšímu kroku.

Přístup k webovému uživatelskému rozhraní Flarum

Nyní otevřete webový prohlížeč a zadejte adresu URL http://flarum.example.com. Budete přesměrováni na následující stránku:

Zadejte název fóra, podrobnosti o databázi, uživatelské jméno správce, heslo a klikněte na Instalovat Flarum knoflík. Po úspěšném dokončení instalace byste měli vidět ovládací panel Flarum na následující stránce:

Zabezpečte Flarum pomocí Let's Encrypt SSL

Flarum je nyní nainstalován a nakonfigurován. Je čas to zabezpečit pomocí bezplatného SSL Let's Encrypt.

Chcete-li tak učinit, budete si muset na svůj server stáhnout klienta certbot. Správná oprávnění si můžete stáhnout a nastavit spuštěním 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

Nyní spusťte následující příkaz, abyste získali a nainstalovali certifikát SSL pro svůj web flarum.

certbot-auto --nginx -d flarum.example.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 apache, Installer apache
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 flarum.example.com
Waiting for verification...
Cleaning up challenges
Deploying Certificate to VirtualHost /etc/nginx/conf.d/flarum.conf

Dále budete muset zvolit, zda chcete přesměrovat provoz HTTP na HTTPS, jak je znázorněno 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 pokračujte stisknutím klávesy Enter. Po dokončení instalace byste měli vidět následující výstup:

Redirecting all traffic on port 80 to ssl in /etc/nginx/conf.d/flarum.conf

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://flarum.example.com

You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=flarum.example.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/flarum.example.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/flarum.example.com/privkey.pem
   Your cert will expire on 2020-03-23. 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

A je to! Nyní můžete přistupovat na svůj web Flarum pomocí zabezpečené adresy URL https://flarum.example.com.


Cent OS
  1. Jak nainstalovat Nextcloud s Nginx a PHP 7.3 na CentOS 8

  2. Jak nainstalovat ownCloud 9.1 s Nginx a MariaDB na CentOS 7

  3. Jak nainstalovat a nastavit Varnish Cache 6 s Nginx na CentOS 8

  1. Jak nainstalovat WordPress s HHVM a Nginx na CentOS 7

  2. Jak nainstalovat Nextcloud s Nginx a PHP7-FPM na CentOS 7

  3. Jak nainstalovat a nakonfigurovat Askbot s Nginx na CentOS 7

  1. Jak nainstalovat diskusní fórum s Nginx na CentOS 7

  2. Jak nainstalovat Laravel 5.x s Nginx a PHP-FPM 7.1 na CentOS 7

  3. Jak nainstalovat OwnCloud 8 s Nginx a MariaDB na CentOS 7