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.
[*]
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.
Kiểm tra xem tường lửa có đang chạy không.
Bạn sẽ nhận được kết quả sau.
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ó.
Cũng cho phép các cổng HTTP và HTTPS.
Bật Tường lửa
Kiểm tra trạng thái của tường lửa một lần nữa.
Bạn sẽ thấy kết quả tương tự.
Nhập khóa ký của Nginx.
Thêm kho lưu trữ cho phiên bản ổn định của Nginx.
Cập nhật hệ thống kho lưu trữ.
Cài đặt Nginx.
Xác minh cài đặt. Trên hệ thống Debian, lệnh sau chỉ hoạt động với
Khởi động Nginx máy chủ.
Kiểm tra trạng thái dịch vụ.
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
Để 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.
Thêm PHP của Ondrej Sury kho lưu trữ.
Cập nhật danh sách kho lưu trữ hệ thống.
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.
Kiểm tra xem PHP có hoạt động chính xác không.
Bạn sẽ thấy một output.
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
Kiểm tra xem Composer đã được cài đặt chưa đúng cách.
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.
Tạo tệp kho lưu trữ của MariaDB.
Cập nhật kho lưu trữ hệ thống danh sách.
Phát hành lệnh sau để cài đặt máy chủ MariaDB.
Kiểm tra xem MariaDB đã được cài đặt chưa chính xác.
Bạn sẽ thấy kết quả sau.
Bạn cũng có thể sử dụng
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.
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.
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.
Tiếp theo, bạn sẽ được hỏi xem bạn có muốn chuyển sang plugin
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
Từ đây trở đi, nhấn
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.
Nhập mật khẩu root Linux của bạn khi được nhắc.
Nhấn
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.
Thay thế
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.
Xóa các đặc quyền để đảm bảo rằng chúng được lưu trong phiên hiện tại.
Thoát khỏi MariaDB shell.
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
Điều hướng đến cài đặt thư mục.
Tải xuống và cài đặt Flarum bằng Composer.
Thay đổi quyền sở hữu thư mục Flarum thành
Cho phép truy cập ghi vào thư mục.
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.
Để á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.
Debian 12 không đi kèm Snapd đã cài đặt. Cài đặt gói 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.
Cài đặt 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
Xác minh xem Certbot có hoạt động bình thường không.
Tạo SSL chứng chỉ.
Lệnh trên sẽ tải chứng chỉ xuống thư mục
Tạo nhóm Diffie-Hellman chứng chỉ.
Kiểm tra dịch vụ lập lịch gia hạn Certbot.
Bạn sẽ tìm thấy
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.
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.
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
Tìm
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.
Khởi động lại dịch vụ PHP-FPM.
Thay đổi nhóm thư mục phiên PHP thành Nginx.
Dán mã sau vào biên tập viên.
Tệp này giả định rằng chúng tôi sẽ lưu trữ
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
Thêm dòng sau vào trước dòng
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.
Bạn sẽ thấy đầu ra sau cho biết cấu hình của bạn là chính xác.
Tải lại Nginx dịch vụ.
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ư
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.
Để cài đặt plugin, trước tiên, hãy chuyển đến thư mục Flarum.
Cài đặt plugin bằng Composer.
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
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ủ.
Cài đặt gói composer.
Gửi email thử nghiệm để xác minh.
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
Mã:
Status: inactive
Mã:
$ sudo ufw allow OpenSSH
Mã:
$ sudo ufw allow http
$ sudo ufw allow https
Mã:
$ sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup
Mã:
$ sudo ufw status
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
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
Mã:
$ sudo apt update
Mã:
$ sudo apt install nginx
sudo
.
Mã:
$ sudo nginx -v
nginx version: nginx/1.24.0
Mã:
$ sudo systemctl start nginx
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"
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
Đầ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
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'
Mã:
$ sudo apt update
Mã:
$ sudo apt install php-cli php-fpm php-mysql php-xml php-gd php-json php-mbstring php-zip php-curl -y
Mã:
$ php --version
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
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'
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
Mã:
$ sudo apt update
Mã:
$ sudo apt install mariadb-server -y
Mã:
$ mysql --version
Mã:
mysql Ver 15.1 Distrib 10.11.6-MariaDB, for debian-linux-gnu (x86_64) using EditLine wrapper
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
Mã:
$ sudo mariadb-secure-installation
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...
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.
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.
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!
Mã:
$ sudo mysql
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)]>
exit
để đóng shell MariaDB.Bước 6 - Cấu hình MariaDB
Đăng nhập vào MariaDB shell.
Mã:
$ sudo mysql
Mã:
MariaDB> CREATE DATABASE flarum;
MariaDB> CREATE USER 'flarumuser'@'localhost' IDENTIFIED BY 'yourpassword';
MariaDB> GRANT ALL PRIVILEGES ON flarum.* TO 'flarumuser'@'localhost';
flarum
, flarumuser
và yourpassword
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;
Mã:
MariaDB> FLUSH PRIVILEGES;
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
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
Mã:
$ cd /var/www/flarum
Mã:
$ composer create-project flarum/flarum .
nginx
cho máy chủ Nginx.
Mã:
$ sudo chown -R nginx:nginx /var/www/flarum
Mã:
$ sudo chmod 775 -R /var/www/flarum
Mã:
$ sudo usermod -a -G nginx $USER
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
Mã:
$ sudo snap install core && sudo snap refresh core
Mã:
$ sudo snap install --classic certbot
/usr/bin
thư mục.
Mã:
$ sudo ln -s /snap/bin/certbot /usr/bin/certbot
Mã:
$ certbot --version
certbot 2.7.4
Mã:
$ sudo certbot certonly --nginx --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [emailprotected] -d flarum.example.com
/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
Mã:
$ sudo systemctl list-timers
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
Mã:
$ sudo certbot renew --dry-run
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
user=www-data
và group=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
...
listen.owner = www-data
và listen.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
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
Mã:
$ sudo systemctl restart php8.2-fpm
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
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; }
}
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
include /etc/nginx/conf.d/*.conf;
.
Mã:
server_names_hash_bucket_size 64;
Mã:
$ sudo nginx -t
Mã:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
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
Mã:
$ composer require ianm/twofactor:"*"
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
Mã:
$ composer require guzzlehttp/guzzle:^7.0