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.
[*]
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.
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ó.
Cho phép cả cổng HTTP và HTTPS.
Kích hoạt Tường lửa
Kiểm tra lại trạng thái của tường lửa.
Bạn sẽ thấy thông báo tương tự đầu ra.
Nhập khóa ký của Nginx.
Thêm kho lưu trữ cho phiên bản ổn định của Nginx phiên bản.
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.
Cập nhật hệ thống kho lưu trữ.
Cài đặt Nginx.
Xác minh cài đặt.
Khởi động máy chủ Nginx.
Kiểm tra dịch vụ trạng thái.
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
Để 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.
Cập nhật kho lưu trữ hệ thống list.
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.
Kiểm tra xem PHP có hoạt động chính xác không.
Bạn sẽ thấy thông báo tương 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.
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.
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, 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.
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 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
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 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
Cho phép truy cập ghi vào thư mục.
Điều hướng đến thư mục cài đặt.
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
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.
Để á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.
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.
Cài đặt 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
Xác minh xem Certbot có hoạt động không đúng.
Tạo chứng chỉ SSL.
Lệnh trên sẽ tải xuống chứng chỉ vào
Tạo chứng chỉ nhóm Diffie-Hellman.
Kiểm tra trình lập lịch gia hạn Certbot dịch vụ.
Bạn sẽ 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 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
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 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=%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ủ.
Cài đặt gói composer.
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
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
Tìm dòng
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.
Để 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 (
Tiếp theo, chạy lệnh sau để khôi phục diễn đàn.
Để sao lưu các tệp, hãy sao chép toàn bộ
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
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
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
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
Mã:
echo -e "Package: *\nPin: origin nginx.org\nPin: release o=nginx\nPin-Priority: 900\n" \ | sudo tee /etc/apt/preferences.d/99nginx
Mã:
$ sudo apt update
Mã:
$ sudo apt install nginx
Mã:
$ nginx -v
nginx version: nginx/1.26.1
Mã:
$ sudo systemctl start nginx
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.
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
Thêm kho lưu trữ PHP của Ondrej Sury.
Mã:
$ sudo add-apt-repository ppa:ondrej/php
Mã:
$ sudo apt update
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
Mã:
$ php --version
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
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'
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
Mã:
$ sudo apt update
Mã:
$ sudo apt install mariadb-server -y
Mã:
$ mysql --version
Mã:
mysql Ver 15.1 Distrib 10.11.8-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.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
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ườ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.
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 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)]>
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 đă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;
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 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
Mã:
$ sudo chmod 775 -R /var/www/flarum
Mã:
$ cd /var/www/flarum
Mã:
$ composer create-project flarum/flarum .
nginx
cho Nginx server.
Mã:
$ sudo chown -R nginx:nginx /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 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
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.10.0
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
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
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
---------------------------------------------------------------------------------------------------------------------------------
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
Mã:
$ sudo certbot renew --dry-run
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
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.3/fpm/php.ini
Mã:
$ sudo systemctl restart php8.3-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; 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; }
}
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;
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 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
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 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
Mã:
$ composer require guzzlehttp/guzzle:^7.0
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:*
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
'debug' => false,
và thêm dòng sau vào sau để trông giống như sau.
Mã:
'debug' => false,
'offline' => true,
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
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
/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.