Cách cài đặt phần mềm cộng đồng Flarum trên Debian 12

theanh

Administrator
Nhân viên
Flarum là phần mềm cộng đồng nguồn mở được thiết kế để tạo và quản lý diễn đàn trực tuyến dễ dàng. Được xây dựng với giao diện hiện đại, đẹp mắt, Flarum cung cấp trải nghiệm người dùng hợp lý được tối ưu hóa cho hiệu suất và sự đơn giản. Nó có thể tùy chỉnh cao thông qua hệ thống tiện ích mở rộng mạnh mẽ, cho phép người quản trị tùy chỉnh diễn đàn của họ theo nhu cầu và sở thích cụ thể. Flarum hỗ trợ thiết kế phản hồi, đảm bảo khả năng tương thích trên nhiều thiết bị và tính năng khác nhau như thông báo thời gian thực, nhúng phương tiện phong phú và các công cụ kiểm duyệt liền mạch. Nền tảng của nó trong PHP và MySQL làm cho nó có thể truy cập được vào nhiều môi trường lưu trữ web, hấp dẫn các cộng đồng nhỏ và các tổ chức lớn đang tìm kiếm một nền tảng hiệu quả cho các cuộc thảo luận trực tuyến.

Trong hướng dẫn này, chúng ta sẽ tìm hiểu cách cài đặt Flarum Community Software trên máy chủ dựa trên Debian 12.

Điều kiện tiên quyết​


  • Một máy chủ chạy Debian 12.

  • Một người dùng không phải root có quyền sudo.

  • Một Tên miền đủ điều kiện (FQDN) như flarum.example.com trỏ đến máy chủ của bạn.

  • Đảm bảo máy chủ của bạn đã bật bộ nhớ hoán đổi nếu bạn trên máy chủ có RAM 1GB.

  • Đảm bảo mọi thứ đã được cập nhật.
Mã:
$ sudo apt update && sudo apt upgrade
[*]
TFlarum yêu cầu một số gói thiết yếu để chạy. Một số trong số này sẽ có sẵn trên máy chủ của bạn.
Mã:
$ sudo apt install curl wget nano software-properties-common dirmngr apt-transport-https ca-certificates lsb-release debian-archive-keyring gnupg2 ufw unzip -y

Bước 1 - Cấu hình Tường lửa​

Bước đầu tiên là cấu hình tường lửa. Debian đi kèm với ufw (Uncomplicated Firewall) theo mặc định.

Kiểm tra xem tường lửa có đang chạy không.
Mã:
$ sudo ufw status
Bạn sẽ nhận được kết quả sau.
Mã:
Status: inactive
Cho phép cổng SSH để tường lửa không làm gián đoạn kết nối hiện tại khi bật nó.
Mã:
$ sudo ufw allow OpenSSH
Cũng cho phép các cổng HTTP và HTTPS.
Mã:
$ sudo ufw allow http
$ sudo ufw allow https
Bật Tường lửa
Mã:
$ sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup
Kiểm tra trạng thái của tường lửa một lần nữa.
Mã:
$ sudo ufw status
Bạn sẽ thấy kết quả tương tự.
Mã:
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
80/tcp ALLOW Anywhere
443 ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
80/tcp (v6) ALLOW Anywhere (v6)
443 (v6) ALLOW Anywhere (v6)

Bước 2 - Cài đặt Nginx​

Debian 12 đi kèm với phiên bản Nginx cũ hơn. Để cài đặt phiên bản mới nhất, bạn cần tải xuống kho lưu trữ Nginx chính thức.

Nhập khóa ký của Nginx.
Mã:
$ curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \ | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
Thêm kho lưu trữ cho phiên bản ổn định của Nginx.
Mã:
$ echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \
http://nginx.org/packages/debian `lsb_release -cs` nginx" \ | sudo tee /etc/apt/sources.list.d/nginx.list
Cập nhật hệ thống kho lưu trữ.
Mã:
$ sudo apt update
Cài đặt Nginx.
Mã:
$ sudo apt install nginx
Xác minh cài đặt. Trên hệ thống Debian, lệnh sau chỉ hoạt động với sudo.
Mã:
$ sudo nginx -v
nginx version: nginx/1.24.0
Khởi động Nginx máy chủ.
Mã:
$ sudo systemctl start nginx
Kiểm tra trạng thái dịch vụ.
Mã:
$ sudo systemctl status nginx
? nginx.service - nginx - high performance web server Loaded: loaded (/lib/systemd/system/nginx.service; enabled; preset: enabled) Active: active (running) since Thu 2023-11-09 12:08:18 UTC; 1s ago Docs: https://nginx.org/en/docs/ Process: 1957 ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf (code=exited, status=0/SUCCESS) Main PID: 1958 (nginx) Tasks: 2 (limit: 1107) Memory: 1.7M CPU: 6ms CGroup: /system.slice/nginx.service ??1958 "nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf" ??1959 "nginx: worker process"
Mở địa chỉ IP của máy chủ trong trình duyệt web của bạn. Bạn sẽ thấy trang sau, điều đó có nghĩa là máy chủ của bạn đã hoạt động.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22574%22%20height=%22268%22%3E%3C/svg%3E

Bước 3 - Cài đặt PHP​

Debian 12 được cài đặt sẵn PHP 8.2 theo mặc định. Bạn có thể cài đặt bằng cách chạy lệnh sau.
Mã:
$ sudo apt install php-cli php-fpm php-mysql php-xml php-gd php-json php-mbstring php-zip php-curl -y
Để luôn sử dụng phiên bản PHP mới nhất hoặc nếu bạn muốn cài đặt nhiều phiên bản PHP, hãy thêm kho lưu trữ PHP của Ondrej.

Đầu tiên, hãy nhập khóa GPG PHP của kho lưu trữ Sury.
Mã:
$ sudo curl -sSLo /usr/share/keyrings/deb.sury.org-php.gpg https://packages.sury.org/php/apt.gpg
Thêm PHP của Ondrej Sury kho lưu trữ.
Mã:
$ sudo sh -c 'echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
Cập nhật danh sách kho lưu trữ hệ thống.
Mã:
$ sudo apt update
Tiếp theo, cài đặt PHP và các tiện ích mở rộng của nó theo yêu cầu của Flarum.
Mã:
$ sudo apt install php-cli php-fpm php-mysql php-xml php-gd php-json php-mbstring php-zip php-curl -y
Kiểm tra xem PHP có hoạt động chính xác không.
Mã:
$ php --version
Bạn sẽ thấy một output.
Mã:
PHP 8.2.12 (cli) (built: Oct 27 2023 13:00:10) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.2.12, Copyright (c) Zend Technologies with Zend OPcache v8.2.12, Copyright (c), by Zend Technologies

Bước 4 - Cài đặt Composer​

Composer là trình quản lý phụ thuộc cho PHP. Flarum cần Composer để cài đặt và chạy nhiều thành phần khác nhau.

Chạy các lệnh sau để cài đặt Composer. Đầu tiên, chúng ta lấy trình cài đặt, kiểm tra băm để xác minh, sau đó chạy trình cài đặt bằng dòng lệnh PHP. Sau đó, chúng ta di chuyển tệp nhị phân đến thư mục /usr/local/bin.
Mã:
$ php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
$ php -r "if (hash_file('sha384', 'composer-setup.php') === 'e21205b207c3ff031906575712edab6f13eb0b361f2085f1f1237b7126d785e826a450292b6cfd1d64d92e6563bbde02') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
$ php composer-setup.php
$ php -r "unlink('composer-setup.php');"
$ sudo mv composer.phar /usr/local/bin/composer
Kiểm tra xem Composer đã được cài đặt chưa đúng cách.
Mã:
$ composer --version
Composer version 2.6.5 2023-10-06 10:11:52

Bước 5 - Cài đặt MariaDB​

MariaDB là chương trình thay thế MySQL, có nghĩa là các lệnh để chạy và vận hành MariaDB giống như các lệnh dành cho MySQL.

Debian 12 mặc định đi kèm MariaDB 10.11.4, phiên bản này hơi lỗi thời. Bạn cần sử dụng kho lưu trữ chính thức để có phiên bản ổn định mới nhất của MariaDB.

Nhập khóa GPG của MariaDB.
Mã:
$ sudo curl -o /usr/share/keyrings/mariadb-keyring.pgp 'https://mariadb.org/mariadb_release_signing_key.pgp'
Tạo tệp kho lưu trữ của MariaDB.
Mã:
$ echo "deb [signed-by=/usr/share/keyrings/mariadb-keyring.pgp] https://deb.mariadb.org/10.11/debian `lsb_release -cs` main" | sudo tee /etc/apt/sources.list.d/mariadb-server.list
Cập nhật kho lưu trữ hệ thống danh sách.
Mã:
$ sudo apt update
Phát hành lệnh sau để cài đặt máy chủ MariaDB.
Mã:
$ sudo apt install mariadb-server -y
Kiểm tra xem MariaDB đã được cài đặt chưa chính xác.
Mã:
$ mysql --version
Bạn sẽ thấy kết quả sau.
Mã:
mysql Ver 15.1 Distrib 10.11.6-MariaDB, for debian-linux-gnu (x86_64) using EditLine wrapper
Bạn cũng có thể sử dụng mariadb --version để kiểm tra phiên bản.

Dịch vụ MariaDB đã được bật và đang chạy. Kiểm tra trạng thái của nó bằng lệnh sau.
Mã:
$ sudo systemctl status mariadb
? mariadb.service - MariaDB 10.11.6 database server Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; preset: enabled) Drop-In: /etc/systemd/system/mariadb.service.d ??migrated-from-my.cnf-settings.conf Active: active (running) since Tue 2023-11-14 08:42:03 UTC; 4min 1s ago Docs: man:mariadbd(8) https://mariadb.com/kb/en/library/systemd/ Process: 74903 ExecStartPre=/usr/bin/install -m 755 -o mysql -g root -d /var/run/mysqld (code=exited, status=0/SUCCESS) Process: 74904 ExecStartPre=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS) Process: 74906 ExecStartPre=/bin/sh -c [ ! -e /usr/bin/galera_recovery ] && VAR= || VAR=`cd /usr/bin/..; /usr/bin/galera_recovery`; [ $? -eq 0 ] && systemctl set-environment _WSREP_START_POSITION=$VAR> Process: 74946 ExecStartPost=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS) Process: 74948 ExecStartPost=/etc/mysql/debian-start (code=exited, status=0/SUCCESS) Main PID: 74935 (mariadbd) Status: "Taking your SQL requests now..." Tasks: 9 (limit: 1107) Memory: 214.9M CPU: 627ms CGroup: /system.slice/mariadb.service ??74935 /usr/sbin/mariadbd
Chạy lệnh sau để thực hiện cấu hình mặc định như đặt mật khẩu gốc, xóa người dùng ẩn danh, không cho phép đăng nhập gốc từ xa và xóa bảng thử nghiệm.
Mã:
$ sudo mariadb-secure-installation
Bạn sẽ được yêu cầu nhập mật khẩu gốc. Vì chúng ta không thiết lập bất kỳ mật khẩu gốc nào, hãy nhấn phím Enter để tiếp tục.
Mã:
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
haven't set the root password yet, you should just press enter here.
Enter current password for root (enter for none): [PRESS ENTER]
OK, successfully used password, moving on...
Tiếp theo, bạn sẽ được hỏi xem bạn có muốn chuyển sang plugin unix_socket hay không. Plugin unix_socket cho phép bạn đăng nhập vào MariaDB bằng thông tin đăng nhập người dùng Linux của bạn. Chọn n để bỏ qua việc chuyển sang nó vì bạn đã có root được bảo vệ account.
Mã:
Setting the root password or using the unix_socket ensures that nobody
can log into the MariaDB root user without the proper authorisation.
You already have your root account protected, so you can safely answer 'n'.
Switch to unix_socket authentication [Y/n] n ... skipping.
Tiếp theo, bạn sẽ được hỏi xem bạn có muốn thay đổi mật khẩu root của mình không. Trên Debian 12, tài khoản root cho MariaDB được liên kết chặt chẽ với bảo trì hệ thống tự động, vì vậy bạn không nên thay đổi các phương thức xác thực được cấu hình cho tài khoản. Làm như vậy sẽ cho phép bản cập nhật gói phá vỡ hệ thống cơ sở dữ liệu bằng cách xóa quyền truy cập vào tài khoản quản trị. Nhập n để tiếp tục.
Mã:
You already have your root account protected, so you can safely answer 'n'.
Change the root password? [Y/n] n ... skipping.
Từ đây trở đi, nhấn y rồi Enter để chấp nhận các giá trị mặc định cho tất cả các câu hỏi sau. Thao tác này sẽ xóa quyền truy cập của người dùng ẩn danh, kiểm tra cơ sở dữ liệu, vô hiệu hóa đăng nhập root từ xa và tải các thay đổi.
Mã:
By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n] y ... Success!
Normally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] y ... Success!
By default, MariaDB comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n] y - Dropping test database... ... Success! - Removing privileges on test database... ... Success!
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n] y ... Success!
Cleaning up...
All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!
Vậy là xong. Lần tới khi bạn muốn đăng nhập vào shell MariaDB, hãy sử dụng lệnh sau.
Mã:
$ sudo mysql
Nhập mật khẩu root Linux của bạn khi được nhắc.
Mã:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 39
Server version: 10.11.6-MariaDB-1:10.11.6+maria~deb12 mariadb.org binary distribution
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]>
Nhấn exit để đóng shell MariaDB.

Bước 6 - Cấu hình MariaDB​

Đăng nhập vào MariaDB shell.
Mã:
$ sudo mysql
Tạo cơ sở dữ liệu MySQL mới, người dùng cơ sở dữ liệu và mật khẩu cho cài đặt Flarum của bạn.
Mã:
MariaDB> CREATE DATABASE flarum;
MariaDB> CREATE USER 'flarumuser'@'localhost' IDENTIFIED BY 'yourpassword';
MariaDB> GRANT ALL PRIVILEGES ON flarum.* TO 'flarumuser'@'localhost';
Thay thế flarum, flarumuseryourpassword bằng thông tin xác thực bạn chọn. Chọn một mật khẩu mạnh.

Ngoài ra, hãy tạo một người dùng quản trị có cùng chức năng với tài khoản root.
Mã:
MariaDB> GRANT ALL ON *.* TO 'admin'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;
Xóa các đặc quyền để đảm bảo rằng chúng được lưu trong phiên hiện tại.
Mã:
MariaDB> FLUSH PRIVILEGES;
Thoát khỏi MariaDB shell.
Mã:
MariaDB> exit

Bước 7 - Cài đặt Flarum​

Tạo thư mục nơi Flarum sẽ lưu trú.
Mã:
$ sudo mkdir /var/www/flarum -p
Sử dụng lệnh -p sẽ tạo các thư mục cha không tồn tại trước đó.

Thay đổi quyền sở hữu cho thư mục Flarum thành thư mục hiện đang đăng nhập Người dùng Linux để bạn có thể thực hiện lệnh mà không cần sử dụng sudo.
Mã:
$ sudo chown -R $USER:$USER /var/www/flarum
Điều hướng đến cài đặt thư mục.
Mã:
$ cd /var/www/flarum
Tải xuống và cài đặt Flarum bằng Composer.
Mã:
$ composer create-project flarum/flarum .
Thay đổi quyền sở hữu thư mục Flarum thành nginx cho máy chủ Nginx.
Mã:
$ sudo chown -R nginx:nginx /var/www/flarum
Cho phép truy cập ghi vào thư mục.
Mã:
$ sudo chmod 775 -R /var/www/flarum
Từ đây trở đi, Composer sẽ cần quyền sudo để chạy, điều này không được khuyến khích. Bạn cũng có thể thay đổi quyền nhóm của thư mục thành người dùng Linux của mình và đổi lại thành nginx sau khi bạn hoàn tất với Composer. Đây không phải là giải pháp lý tưởng vì nó yêu cầu bạn phải thực hiện các lệnh giống nhau nhiều lần. Một giải pháp lâu dài hơn là thêm tên người dùng của bạn vào nhóm nginx. Chạy lệnh sau để thêm người dùng Linux hiện đang đăng nhập vào nhóm nginx.
Mã:
$ sudo usermod -a -G nginx $USER
Để áp dụng tư cách thành viên nhóm mới, hãy đăng xuất khỏi máy chủ và đăng nhập lại hoặc nhập lệnh sau.
Mã:
su - ${USER}

Bước 8 - Cài đặt SSL​

Chúng ta cần cài đặt Certbot để tạo chứng chỉ SSL. Bạn có thể cài đặt Certbot bằng kho lưu trữ của Debian hoặc lấy phiên bản mới nhất bằng công cụ Snapd. Chúng ta sẽ sử dụng phiên bản Snapd.

Debian 12 không đi kèm Snapd đã cài đặt. Cài đặt gói Snapd.
Mã:
$ sudo apt install snapd
Chạy các lệnh sau để đảm bảo phiên bản Snapd của bạn được cập nhật.
Mã:
$ sudo snap install core && sudo snap refresh core
Cài đặt Certbot.
Mã:
$ sudo snap install --classic certbot
Sử dụng lệnh sau để đảm bảo lệnh Certbot có thể chạy được bằng cách tạo liên kết tượng trưng đến /usr/bin thư mục.
Mã:
$ sudo ln -s /snap/bin/certbot /usr/bin/certbot
Xác minh xem Certbot có hoạt động bình thường không.
Mã:
$ certbot --version
certbot 2.7.4
Tạo SSL chứng chỉ.
Mã:
$ sudo certbot certonly --nginx --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [emailprotected] -d flarum.example.com
Lệnh trên sẽ tải chứng chỉ xuống thư mục /etc/letsencrypt/live/flarum.example.com trên máy chủ của bạn.

Tạo nhóm Diffie-Hellman chứng chỉ.
Mã:
$ sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096
Kiểm tra dịch vụ lập lịch gia hạn Certbot.
Mã:
$ sudo systemctl list-timers
Bạn sẽ tìm thấy snap.certbot.renew.service là một trong những dịch vụ được lên lịch chạy.
Mã:
NEXT LEFT LAST PASSED UNIT ACTIVATES
---------------------------------------------------------------------------------------------------------------------------
Tue 2023-11-14 15:39:00 UTC 24min left Tue 2023-11-14 15:09:02 UTC 5min ago phpsessionclean.timer phpsessionclean.service
Tue 2023-11-14 17:33:00 UTC 2h 18min left - - snap.certbot.renew.timer snap.certbot.renew.service
Tue 2023-11-14 19:03:30 UTC 3h 49min left Tue 2023-11-14 15:12:10 UTC 1min 58s ago apt-daily.timer apt-daily.service
Thực hiện chạy thử quy trình để kiểm tra xem quá trình gia hạn SSL có hoạt động tốt không.
Mã:
$ sudo certbot renew --dry-run
Nếu không thấy lỗi nào, bạn đã hoàn tất. Chứng chỉ của bạn sẽ tự động gia hạn.

Bước 9 - Cấu hình PHP-FPM​

Mở tệp /etc/php/8.2/fpm/pool.d/www.conf.
Mã:
$ sudo nano /etc/php/8.2/fpm/pool.d/www.conf
Chúng ta cần đặt người dùng/nhóm Unix của các quy trình PHP thành nginx. Tìm các dòng user=www-datagroup=www-data trong tệp và thay đổi chúng thành nginx.
Mã:
; Unix user/group of the child processes. This can be used only if the master
; process running user is root. It is set after the child process is created.
; The user and group can be specified either by their name or by their numeric
; IDs.
; Note: If the user is root, the executable needs to be started with
; --allow-to-run-as-root option to work.
; Default Values: The user is set to master process running user by default.
; If the group is not set, the user's group is used.
user = nginx
group = nginx
...
Tìm listen.owner = www-datalisten.group = www-data dòng trong tệp và thay đổi chúng thành nginx.
Mã:
; Set permissions for unix socket, if one is used. In Linux, read/write
; permissions must be set in order to allow connections from a web server. Many
; BSD-derived systems allow connections regardless of permissions. The owner
; and group can be specified either by name or by their numeric IDs.
; Default Values: Owner is set to the master process running user. If the group
; is not set, the owner's group is used. Mode is set to 0660.
listen.owner = nginx
listen.group = nginx
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.

Tăng kích thước tệp tải lên lên 8 MB.
Mã:
$ sudo sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 8M/' /etc/php/8.2/fpm/php.ini
Khởi động lại dịch vụ PHP-FPM.
Mã:
$ sudo systemctl restart php8.2-fpm
Thay đổi nhóm thư mục phiên PHP thành Nginx.
Mã:
$ sudo chgrp -R nginx /var/lib/php/sessions

Bước 10 - Cấu hình Nginx​

Chạy lệnh sau để thêm tệp cấu hình cho trang web của bạn.
Mã:
$ sudo nano /etc/nginx/conf.d/flarum.conf
Dán mã sau vào biên tập viên.
Mã:
server { listen [::]:80; listen 80; server_name flarum.example.com; # redirect http to https return 301 https://flarum.example.com$request_uri;
}
server { listen [::]:443 ssl http2; listen 443 ssl http2; server_name flarum.example.com; access_log /var/log/nginx/flarum.access.log; error_log /var/log/nginx/flarum.error.log; root /var/www/flarum/public; index index.php; include /var/www/flarum/.nginx.conf; client_max_body_size 8M; if ($host != "flarum.example.com") { return 301 $scheme://flarum.example.com$request_uri; } # SSL code ssl_certificate /etc/letsencrypt/live/flarum.example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/flarum.example.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/flarum.example.com/chain.pem; ssl_session_timeout 1d; ssl_session_cache shared:MozSSL:10m; ssl_session_tickets off; ssl_prefer_server_ciphers off; ssl_stapling on; ssl_stapling_verify on; ssl_dhparam /etc/ssl/certs/dhparam.pem; resolver 1.1.1.1 1.0.0.1 [2606:4700:4700::1111] [2606:4700:4700::1001] 8.8.8.8 8.8.4.4 [2001:4860:4860::8888] [2001:4860:4860::8844] valid=60s; resolver_timeout 2s; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384; tcp_nopush on; types_hash_max_size 2048; location ~ \.php$ { fastcgi_pass unix:/run/php/php-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_index index.php; include fastcgi_params; }
}
Tệp này giả định rằng chúng tôi sẽ lưu trữ example.com trong thư mục /var/www/flarum/public. Flarum đi kèm với một số cài đặt Nginx mặc định trong tệp /var/www/flarum/.nginx.conf mà chúng tôi đã đưa vào cấu hình Nginx của mình.

Sau khi hoàn tất, hãy nhấn Ctrl + X để đóng trình chỉnh sửa và nhấn Y khi được nhắc lưu tệp.

Mở tệp /etc/nginx/nginx.conf để chỉnh sửa.
Mã:
$ sudo nano /etc/nginx/nginx.conf
Thêm dòng sau vào trước dòng include /etc/nginx/conf.d/*.conf;.
Mã:
server_names_hash_bucket_size 64;
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc. Kiểm tra cấu hình Nginx.
Mã:
$ sudo nginx -t
Bạn sẽ thấy đầu ra sau cho biết cấu hình của bạn là chính xác.
Mã:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Tải lại Nginx dịch vụ.
Mã:
$ sudo systemctl reload nginx

Bước 11 - Truy cập và hoàn tất cài đặt Flarum​

Mở http://example.com trong trình duyệt của bạn để hoàn tất cài đặt.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22453%22%20height=%22750%22%3E%3C/svg%3E


Điền vào các giá trị cơ sở dữ liệu bắt buộc mà chúng tôi đã tạo ở trên. Bạn có thể để trống mục Table Prefix để cho phép Flarum sử dụng tiền tố mặc định hoặc bạn có thể nhập bất kỳ tiền tố tùy chỉnh nào như fla_. Chọn tên người dùng, mật khẩu mạnh và ID email để cài đặt Flarum.

Nhấp vào nút Cài đặt Flarum để hoàn tất quá trình cài đặt.

Sau khi cài đặt, bạn sẽ được chào đón bằng trang chủ mặc định của Flarum.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22236%22%3E%3C/svg%3E


Diễn đàn của bạn hiện đã được cài đặt và sẵn sàng sử dụng.

Bật 2FA​

Xác thực hai yếu tố là một tính năng thiết yếu cho bất kỳ diễn đàn công khai nào. Flarum không có sẵn tính năng này nhưng bạn có thể bật tính năng này bằng cách cài đặt tiện ích mở rộng cho tính năng này. Tiện ích mở rộng này có sẵn tại Extiverse. Extiverse là kho lưu trữ không chính thức các chủ đề và plugin Flarum.

Để cài đặt plugin, trước tiên, hãy chuyển đến thư mục Flarum.
Mã:
$ cd /var/www/flarum
Cài đặt plugin bằng Composer.
Mã:
$ composer require ianm/twofactor:"*"
Bước tiếp theo là bật plugin từ bảng quản trị Flarum. Nhấp vào tên của bạn ở góc trên bên phải của trang chủ và nhấp vào liên kết Quản trị từ menu thả xuống.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22472%22%20height=%22284%22%3E%3C/svg%3E


Bạn sẽ được đưa đến bảng điều khiển quản trị. Chọn tính năng 2FA từ menu bên trái và bật tính năng này. Bạn không cần phải thay đổi bất cứ điều gì vì các thiết lập mặc định sẽ hoạt động tốt.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22727%22%3E%3C/svg%3E


Nếu bạn muốn người kiểm duyệt trên diễn đàn bật 2FA, hãy nhấp vào nút Người kiểm duyệt và bật cài đặt Yêu cầu 2FA. Nhấp vào nút Lưu thay đổi để hoàn tất.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22377%22%20height=%22684%22%3E%3C/svg%3E


Để bật 2FA cho tài khoản của bạn, hãy mở trang cài đặt từ menu trên cùng bên phải trên trang chủ diễn đàn. Mở trang Bảo mật bằng cách chọn từ thanh bên trái.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22306%22%3E%3C/svg%3E


Nhấp vào nút Bật 2FA và cửa sổ bật lên sau sẽ mở ra.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22371%22%20height=%22662%22%3E%3C/svg%3E


Quét mã QR hoặc chọn tùy chọn thủ công bằng ứng dụng 2FA của bạn và nhập mã được tạo vào hộp. Nhấp vào nút Xác minh khi hoàn tất. Bạn sẽ thấy mã dự phòng. Lưu chúng lại và nhấp vào nút để tiếp tục.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22372%22%20height=%22396%22%3E%3C/svg%3E


Bạn sẽ được yêu cầu xác nhận một lần nữa. Nhấp vào nút Ok để tiếp tục. Quá trình này hiện đã hoàn tất.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22382%22%3E%3C/svg%3E

Cấu hình Cài đặt Email​

Bạn cũng sẽ cần cấu hình cài đặt email từ bảng Quản trị. Flarum hỗ trợ dịch vụ Mailgun SMTP gốc hoặc bạn có thể sử dụng nhà cung cấp SMTP bên ngoài.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22543%22%20height=%22750%22%3E%3C/svg%3E


Chúng tôi đang sử dụng dịch vụ Amazon SES mà chúng tôi đã chọn smtp từ trình đơn thả xuống trình điều khiển email trên trang email. Nhấp vào nút Lưu thay đổi rồi nhấp vào nút Gửi để gửi email thử nghiệm. Trang sẽ thông báo nếu email đã được gửi thành công. Bạn sẽ nhận được email sau.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22532%22%3E%3C/svg%3E


Nếu bạn muốn sử dụng Mailgun, hãy chọn mailgun từ menu thả xuống. Điền vào các trường bắt buộc và lưu cài đặt.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22578%22%20height=%22750%22%3E%3C/svg%3E


Trước khi gửi thư thử nghiệm, bạn phải cài đặt gói composer để thư hoạt động. Chuyển đến thư mục Flarum trên máy chủ.
Mã:
$ cd /var/www/flarum
Cài đặt gói composer.
Mã:
$ composer require guzzlehttp/guzzle:^7.0
Gửi email thử nghiệm để xác minh.

Kết luận​

Như vậy là kết thúc hướng dẫn cài đặt phần mềm diễn đàn Cộng đồng Flarum trên máy chủ Debian 12. Nếu bạn có bất kỳ thắc mắc hoặc phản hồi nào, hãy gửi chúng trong phần bình luận bên dưới.
 
Back
Bên trên