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.