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

theanh

Administrator
Nhân viên
Flarum là phần mềm thảo luận mã nguồn mở, là sự kết hợp giữa esoTalk và FluxBB boards. Phần mềm này được viết bằng PHP và giao diện của nó được hỗ trợ bởi Mithril, một framework JavaScript có kích thước nhỏ. Phần mềm này phản hồi nhanh, hỗ trợ tiện ích mở rộng thông qua Extension API mạnh mẽ. Nó cũng nhẹ, vì vậy nó có thể chạy trên một máy chủ khá rẻ.

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ủ chạy Ubuntu 24.04.

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


  • Máy chủ chạy Ubuntu 24.04.

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

  • 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 đang sử dụng máy chủ có 1GB RAM.

  • Đảm bảo mọi thứ đã được cập nhật.
Mã:
$ sudo apt update && sudo apt upgrade
[*]
Cần có một số gói thiết yếu để chạy hướng dẫn và Flarum. Một số trong số này sẽ có sẵn trên máy chủ của bạn.
Mã:
$ sudo apt install wget curl nano ufw software-properties-common dirmngr apt-transport-https gnupg2 ca-certificates lsb-release ubuntu-keyring 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
Cho phép cả cổng HTTP và HTTPS.
Mã:
$ sudo ufw allow http
$ sudo ufw allow https
Kích hoạ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 lại trạng thái của tường lửa.
Mã:
$ sudo ufw status
Bạn sẽ thấy thông báo tương tự đầu ra.
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​

Ubuntu 24.04 đ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 phiên bản.
Mã:
$ echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \
http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" \ | sudo tee /etc/apt/sources.list.d/nginx.list
Thiết lập ghim kho lưu trữ để ưu tiên kho lưu trữ chính thức hơn các gói Ubuntu.
Mã:
echo -e "Package: *\nPin: origin nginx.org\nPin: release o=nginx\nPin-Priority: 900\n" \ | sudo tee /etc/apt/preferences.d/99nginx
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.
Mã:
$ nginx -v
nginx version: nginx/1.26.1
Khởi động máy chủ Nginx.
Mã:
$ sudo systemctl start nginx
Kiểm tra dịch vụ trạng thái.
Mã:
$ sudo systemctl status nginx
? nginx.service - nginx - high performance web server Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; preset: enabled) Active: active (running) since Mon 2024-06-03 10:41:52 UTC; 2s ago Docs: https://nginx.org/en/docs/ Process: 1817 ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf (code=exited, status=0/SUCCESS) Main PID: 1818 (nginx) Tasks: 3 (limit: 4543) Memory: 2.9M (peak: 3.1M) CPU: 15ms CGroup: /system.slice/nginx.service ??1818 "nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf" ??1819 "nginx: worker process" ??1820 "nginx: worker process"
Jun 03 10:41:52 flarum systemd[1]: Starting nginx.service - nginx - high performance web server...
Jun 03 10:41:52 flarum systemd[1]: Started nginx.service - nginx - high performance web server.
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 có nghĩa là máy chủ của bạn đang 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​

Ubuntu 24.04 mặc định đi kèm với PHP 8.3. 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.

Thêm kho lưu trữ PHP của Ondrej Sury.
Mã:
$ sudo add-apt-repository ppa:ondrej/php
Cập nhật kho lưu trữ hệ thống list.
Mã:
$ sudo apt update
Bạn có thể bỏ qua lỗi sau. Launchpad không hỗ trợ thuật toán mã hóa mạnh hơn theo yêu cầu của Ubuntu 24.04. Thông báo sẽ sớm biến mất.

Tiếp theo, cài đặt PHP và các tiện ích mở rộng mà Flarum yêu cầu.
Mã:
$ sudo apt install php8.3-cli php8.3-fpm php8.3-mysql php8.3-xml php8.3-gd php8.3-mbstring php8.3-zip php8.3-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 thông báo tương tự output.
Mã:
PHP 8.3.7 (cli) (built: May 23 2024 12:36:54) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.3.7, Copyright (c) Zend Technologies with Zend OPcache v8.3.7, 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 nhiều thành phần khác nhau mà nó cần cài đặt và chạy.

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') === 'dac665fdc30fdd8ec78b38b9800061b4150413ff2e3b6f88543c636f7cd84f6db9189d43a81e5503cda447da73c7e5b6') { 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.7.6 2024-05-04 23:03:15
PHP version 8.3.7 (/usr/bin/php8.3)
Run the "diagnose" command to get more detailed diagnostics output.

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

MariaDB là một sự thay thế trực tiếp cho 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.

Ubuntu 24.04, theo mặc định, đi kèm với MariaDB 10.11.7, 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ó được phiên bản ổn định mới nhất của MariaDB. Kho lưu trữ chính thức cho Ubuntu 24.04 không được liệt kê trên trang tải xuống MariaDB, nhưng nó hoạt động khi hướng dẫn này được viết.

Nhập khóa GPG của MariaDB.
Mã:
$ sudo curl -o /etc/apt/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=/etc/apt/keyrings/mariadb-keyring.pgp] https://deb.mariadb.org/10.11/ubuntu `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.8-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.8 database server Loaded: loaded (/usr/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 Mon 2024-06-03 11:31:09 UTC; 27s ago Docs: man:mariadbd(8) https://mariadb.com/kb/en/library/systemd/ Process: 14981 ExecStartPre=/usr/bin/install -m 755 -o mysql -g root -d /var/run/mysqld (code=exited, status=0/SUCCESS) Process: 14983 ExecStartPre=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS) Process: 14985 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: 15029 ExecStartPost=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS) Process: 15032 ExecStartPost=/etc/mysql/debian-start (code=exited, status=0/SUCCESS) Main PID: 15015 (mariadbd) Status: "Taking your SQL requests now..." Tasks: 14 (limit: 29985) Memory: 78.9M (peak: 81.8M) CPU: 559ms CGroup: /system.slice/mariadb.service ??15015 /usr/sbin/mariadbd
Chạy lệnh sau để thực hiện cấu hình mặc định, chẳng hạn như cung cấp 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 các 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ười dùng Linux của mình. 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 có muốn thay đổi mật khẩu root không. Trên Ubuntu 24.04, 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 37
Server version: 10.11.8-MariaDB-ubu2404 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 đăng nhập 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 cho người dùng Linux hiện đang đăng nhập để 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
Cho phép truy cập ghi vào thư mục.
Mã:
$ sudo chmod 775 -R /var/www/flarum
Điều hướng đến thư mục cài đặt.
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 Nginx server.
Mã:
$ sudo chown -R nginx:nginx /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 hoàn tất 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 tải 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. Ubuntu 24.04 đi kèm với Snapd được cài đặt sẵn.

Chạy các lệnh sau để đảm bảo rằng 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 rằng 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 không đúng.
Mã:
$ certbot --version
certbot 2.10.0
Tạo chứng chỉ SSL.
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 xuống chứng chỉ vào /etc/letsencrypt/live/flarum.example.com thư mục trên máy chủ của bạn.

Tạo chứng chỉ nhóm Diffie-Hellman.
Mã:
$ sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096
Kiểm tra trình lập lịch gia hạn Certbot dịch vụ.
Mã:
$ sudo systemctl list-timers
Bạn sẽ 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
---------------------------------------------------------------------------------------------------------------------------------
Mon 2024-06-03 11:39:00 UTC 36s Mon 2024-06-03 11:09:06 UTC 29min ago phpsessionclean.timer phpsessionclean.service
Mon 2024-06-03 13:09:56 UTC 1h 31min Mon 2024-06-03 10:34:09 UTC - motd-news.timer motd-news.service
Mon 2024-06-03 21:58:00 UTC 10h - - snap.certbot.renew.timer snap.certbot.renew.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.3/fpm/pool.d/www.conf.
Mã:
$ sudo nano /etc/php/8.3/fpm/pool.d/www.conf
Chúng ta phải đặ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.3/fpm/php.ini
Khởi động lại dịch vụ PHP-FPM.
Mã:
$ sudo systemctl restart php8.3-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; listen 443 ssl; http2 on; 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/php8.3-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ố thiết lập 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 bằng cách sử dụng chỉ thị sau.
Mã:
include /var/www/flarum/.nginx.conf;
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 cho cùng một plugin có sẵn qua GitHub.

Để 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 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=%22596%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.

Trước khi gửi email thử nghiệm, bạn sẽ cần cài đặt gói composer để dịch vụ hoạt động. Chuyển sang 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
Quay lại trang cài đặt email và 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=%22584%22%20height=%22273%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

Bước 12 - Cập nhật Flarum​

Bạn cần có tiện ích mở rộng Extension Manager để có thể cập nhật Flarum từ bảng điều khiển quản trị. Cài đặt Extension Manager bằng lệnh sau.
Mã:
$ cd /var/www/flarum
$ composer require flarum/extension-manager:*
Mở bảng điều khiển Quản trị viên và bật tiện ích mở rộng Extension Manager bằng cách chuyển nút bị vô hiệu hóa sang bên phải.


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


Khi bật tiện ích mở rộng, giao diện sẽ như sau.


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


Trước khi cập nhật diễn đàn, bạn cần bật chế độ bảo trì của diễn đàn. Cấu hình cho chế độ này không khả dụng thông qua bảng điều khiển Quản trị. Một số cài đặt có sẵn thông qua tệp config.php trong thư mục gốc của Flarum. Chuyển sang thiết bị đầu cuối và mở tệp config.php để chỉnh sửa.
Mã:
$ nano /var/www/flarum/config.php
Tìm dòng 'debug' => false, và thêm dòng sau vào sau để trông giống như sau.
Mã:
'debug' => false,
'offline' => true,
Sau khi hoàn tất, nhấn Ctrl + X để đóng trình chỉnh sửa và nhấn Y khi được nhắc lưu tệp.

Quay lại bảng điều khiển và nhấp vào nút Kiểm tra bản cập nhật ở cuối trang của trình quản lý Extension để cập nhật phần mềm Flarum. Để sử dụng trình quản lý Extension để quản lý các bản cập nhật Extension, hãy kiểm tra Tài liệu về Extension Manager.

Bước 12 - Sao lưu và khôi phục Flarum​

Cách đơn giản nhất để sao lưu Flarum là sao lưu cơ sở dữ liệu MariaDB. Để thực hiện, hãy sử dụng công cụ mysqldump thông qua lệnh sau.
Mã:
$ sudo mysqldump flarum > flarumbackup.sql
Để khôi phục cơ sở dữ liệu trên máy chủ mới hơn, hãy lặp lại tất cả các lệnh trong bước 6 về cấu hình MariaDB. Thao tác này sẽ tạo một cơ sở dữ liệu trống (flarum) và một người dùng cơ sở dữ liệu có quyền truy cập vào cơ sở dữ liệu đó.

Tiếp theo, chạy lệnh sau để khôi phục diễn đàn.
Mã:
$ sudo mysql flarum < backup.sql
Để sao lưu các tệp, hãy sao chép toàn bộ /var/www/flarum và khôi phục thư mục đó trên máy chủ mới. Nếu bạn đang thay đổi URL, hãy sửa đổi giá trị cho biến url trong tệp config.php và cấu hình lại Nginx để phục vụ diễn đàn.

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 Flarum Community trên máy chủ Ubuntu 24.04. 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