BookStack là phần mềm wiki miễn phí và mã nguồn mở được viết bằng PHP với nền tảng web Laravel. BookStack hướng đến mục tiêu trở thành một nền tảng đơn giản và tự lưu trữ để lưu trữ và sắp xếp thông tin.
Trong hướng dẫn này, chúng tôi sẽ hướng dẫn bạn từng bước trong quy trình cài đặt BookStack trên máy chủ Debian 12 để bạn có thể có nền tảng giống wiki của riêng mình để đăng thông tin.
Cập nhật và làm mới chỉ mục gói Debian của bạn bằng lệnh sau.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22703%22%20height=%22163%22%3E%3C/svg%3E
Sau khi kho lưu trữ được cập nhật, hãy cài đặt các gói phụ thuộc cho BookStack bằng cách thực hiện lệnh apt install sau. Với lệnh này, bạn sẽ cài đặt gói LAMP Stack, Composer và Git.
Nhập y để tiếp tục cài đặt.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22127%22%3E%3C/svg%3E
Sau khi các phụ thuộc được cài đặt, hãy xác minh từng phụ thuộc bằng cách thực hiện lệnh sau.
Xác minh dịch vụ apache2 thông qua lệnh systemctl bên dưới để đảm bảo rằng dịch vụ đang chạy và được bật.
Đầu ra sau đây sẽ xác nhận rằng dịch vụ apache2 đang chạy và được bật.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22233%22%3E%3C/svg%3E
Bây giờ hãy xác minh dịch vụ mariadb bằng lệnh bên dưới.
Đầu ra sẽ hiển thị rằng dịch vụ mariadb đang chạy và được bật trên hệ thống của bạn.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22274%22%3E%3C/svg%3E
Tiếp theo, hãy xác minh phiên bản PHP và liệt kê các tiện ích mở rộng đã bật bằng lệnh bên dưới.
Dựa trên kết quả sau, PHP 8.2 đã được cài đặt trên hệ thống của bạn.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22616%22%20height=%22461%22%3E%3C/svg%3E
Cuối cùng, hãy xác minh Composer bằng lệnh sau. Thao tác này sẽ định vị tệp nhị phân Composer và kiểm tra phiên bản của tệp đó.
Bạn sẽ thấy Composer 2.5.5 được cài đặt tại /usr/bin/composer.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22490%22%20height=%22257%22%3E%3C/svg%3E
Mở cấu hình PHP mặc định /etc/php/8.2/apache2/php.ini bằng lệnh trình soạn thảo nano sau.
Thay đổi một số cài đặt mặc định bằng cấu hình sau. Hãy chắc chắn điều chỉnh các tham số date.timezone và memory_limit với môi trường máy chủ của bạn.
Lưu tệp và thoát khỏi trình chỉnh sửa khi hoàn tất.
Bây giờ hãy chạy lệnh systemctl sau để khởi động lại dịch vụ apache2 và áp dụng các thay đổi bạn đã thực hiện.
Thực hiện lệnh mariadb-secure-installlation sau để bảo mật cài đặt MariaDB của bạn.
Trong quá trình này, bạn sẽ được hỏi về một số cấu hình. Nhập Y để đồng ý và áp dụng các thay đổi mới hoặc nhập n để Không từ chối cấu hình.
Đăng nhập vào máy chủ MariaDB bằng lệnh mariadb sau. Nhập mật khẩu gốc MariaDB của bạn khi được nhắc.
Bây giờ hãy chạy các truy vấn sau để tạo cơ sở dữ liệu và người dùng mới cho BookStack. Trong ví dụ này, bạn sẽ tạo một cơ sở dữ liệu và người dùng mới bookstack, với mật khẩu p4ssword.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22249%22%3E%3C/svg%3E
Tiếp theo, chạy truy vấn sau để xác minh quyền cho người dùng bookstack.
Bạn sẽ thấy người dùng bookstack được phép truy cập và quản lý cơ sở dữ liệu bookstack sẽ được BookStack sử dụng.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22241%22%3E%3C/svg%3E
Gõ quit để thoát khỏi MariaDB Máy chủ.
Trước tiên, hãy tạo các thư mục mới /var/www/.config và /var/www/.cache sẽ được Composer sử dụng để lưu trữ bộ đệm phụ thuộc và cấu hình. Sau đó, bạn cũng phải thay đổi quyền sở hữu của cả hai thư mục thành người dùng www-data.
Di chuyển đến thư mục /var/www và tải xuống mã nguồn BookStack vào thư mục bookstack. Thư mục cài đặt BookStack của bạn phải là /var/www/bookstack.
Bây giờ hãy thay đổi quyền sở hữu thư mục /var/www/bookstack thành người dùng www-data và di chuyển vào đó.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22168%22%3E%3C/svg%3E
Tiếp theo, sao chép tệp .env.example vào .env và mở tệp mới bằng lệnh trình chỉnh sửa nano sau.
Nhập tên miền của bạn vào tùy chọn APP_URL và nhập MariaDB của bạn chi tiết cơ sở dữ liệu vào cài đặt DB_ bên dưới.
Lưu và đóng tệp khi bạn hoàn tất.
Tiếp theo, chạy lệnh sau để cài đặt các phụ thuộc PHP thông qua Composer.
Trong quá trình cài đặt, đầu ra sau sẽ được hiển thị.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22451%22%3E%3C/svg%3E
Sau khi cài đặt các phụ thuộc PHP, hãy thực hiện lệnh sau để tạo khóa bí mật và di chuyển cơ sở dữ liệu.
Khóa bí mật trên tệp .env sẽ được cập nhật và bên dưới là quy trình trong quá trình di chuyển cơ sở dữ liệu.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22239%22%3E%3C/svg%3E
Sau khi mọi thứ hoàn tất, hãy chạy lệnh sau để thay đổi quyền sở hữu một số thư mục thành người dùng www-data và đảm bảo những thư mục đó có thể ghi được.
Cuối cùng, chạy lệnh bên dưới để thay đổi quyền của tệp .env thành 640. Điều này sẽ đảm bảo chỉ có người dùng www-data mới có thể thực hiện thay đổi đối với tệp.
Trước khi tạo cấu hình máy chủ ảo, hãy thực hiện lệnh sau để kích hoạt mô-đun ghi đè trên Apache2.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22504%22%20height=%22161%22%3E%3C/svg%3E
Bây giờ hãy tạo cấu hình máy chủ ảo mới /etc/apache2/sites-available/bookstack.conf bằng lệnh nano editor sau.
Chèn cấu hình sau và đảm bảo thay đổi tên miền trong tùy chọn ServerName. Ví dụ sau đây sẽ sử dụng miền bookstack.howtoforge.local để cài đặt BookStack.
Lưu và đóng tệp khi bạn hoàn tất.
Tiếp theo, chạy lệnh sau để kích hoạt tệp máy chủ ảo bookstack.conf và xác minh Apache2 của bạn cú pháp.
Nếu bạn sử dụng cú pháp đúng, đầu ra "Cú pháp OK" sẽ được in ra thiết bị đầu cuối của bạn.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22718%22%20height=%22299%22%3E%3C/svg%3E
Cuối cùng, hãy chạy lệnh systemctl bên dưới để khởi động lại dịch vụ aapche2 và áp dụng các thay đổi mà bạn đã đã tạo.
Cài đặt Certbot và plugin Certbot Apache thông qua lệnh apt install bên dưới. Nhập y để xác nhận và tiếp tục cài đặt.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22690%22%20height=%22400%22%3E%3C/svg%3E
Bây giờ hãy chạy lệnh certbot bên dưới để tạo chứng chỉ SSL/TLS và bảo mật cài đặt BookStack của bạn. Hãy chắc chắn thay đổi tên miền và địa chỉ email trong lệnh sau.
Sau khi quá trình hoàn tất, chứng chỉ SSL/TLS của bạn sẽ có trong thư mục /etc/letsencrypt/live/bookstack.howtoforge.local. Ngoài ra, cài đặt BookStack của bạn sẽ tự động được cấu hình bằng HTTPS, được cấu hình thông qua plugin Certbot Apache.
Khởi chạy trình duyệt web và truy cập tên miền cài đặt BookStack của bạn, chẳng hạn như https://bookstack.howtoforge.local/, và bạn sẽ được chuyển hướng đến trang đăng nhập BookStack.
Nhập địa chỉ email mặc định [emailprotected] và mật khẩu là password, sau đó nhấp vào Đăng nhập.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22412%22%3E%3C/svg%3E
Nếu thành công, bạn sẽ thấy bảng điều khiển BookStack như sau:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22205%22%3E%3C/svg%3E
Trong hướng dẫn này, chúng tôi sẽ hướng dẫn bạn từng bước trong quy trình cài đặt BookStack trên máy chủ Debian 12 để bạn có thể có nền tảng giống wiki của riêng mình để đăng thông tin.
Điều kiện tiên quyết
Trước khi bắt đầu, hãy đảm bảo rằng bạn có những điều sau:- Máy chủ Debian 12.
- Người dùng không phải root có quyền quản trị viên sudo.
- Tên miền trỏ đến địa chỉ IP của máy chủ.
Cài đặt Dependencies
BookStack là một nền tảng wiki được viết bằng PHP và MySQL/MariaDB. Hiện tại, nền tảng này được hỗ trợ đầy đủ với PHP 8.2. Đối với giai đoạn này, bạn sẽ cài đặt các gói phụ thuộc cho BookStack, bao gồm các gói LAMP Stack (Apache2, MariaDB, PHP), Git và Composer.Cập nhật và làm mới chỉ mục gói Debian của bạn bằng lệnh sau.
Mã:
sudo apt update
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22703%22%20height=%22163%22%3E%3C/svg%3E
Sau khi kho lưu trữ được cập nhật, hãy cài đặt các gói phụ thuộc cho BookStack bằng cách thực hiện lệnh apt install sau. Với lệnh này, bạn sẽ cài đặt gói LAMP Stack, Composer và Git.
Mã:
sudo apt install apache2 mariadb-server composer curl php php-xml libapache2-mod-php php-fpm php-curl php-mbstring php-ldap php-tidy php-zip php-gd php-mysql git
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22127%22%3E%3C/svg%3E
Sau khi các phụ thuộc được cài đặt, hãy xác minh từng phụ thuộc bằng cách thực hiện lệnh sau.
Xác minh dịch vụ apache2 thông qua lệnh systemctl bên dưới để đảm bảo rằng dịch vụ đang chạy và được bật.
Mã:
sudo systemctl is-enabled apache2
sudo systemctl status apache2
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22233%22%3E%3C/svg%3E
Bây giờ hãy xác minh dịch vụ mariadb bằng lệnh bên dưới.
Mã:
sudo systemctl is-enabled mariadb
sudo systemctl status mariadb
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22274%22%3E%3C/svg%3E
Tiếp theo, hãy xác minh phiên bản PHP và liệt kê các tiện ích mở rộng đã bật bằng lệnh bên dưới.
Mã:
php -v
php -m
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22616%22%20height=%22461%22%3E%3C/svg%3E
Cuối cùng, hãy xác minh Composer bằng lệnh sau. Thao tác này sẽ định vị tệp nhị phân Composer và kiểm tra phiên bản của tệp đó.
Mã:
which composer
sudo -u www-data composer -v
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22490%22%20height=%22257%22%3E%3C/svg%3E
Cấu hình PHP
Sau khi cài đặt các phụ thuộc, bước tiếp theo là cấu hình cài đặt PHP bằng cách thực hiện các thay đổi đối với tệp php.ini trên máy Debian của bạn.Mở cấu hình PHP mặc định /etc/php/8.2/apache2/php.ini bằng lệnh trình soạn thảo nano sau.
Mã:
sudo nano /etc/php/8.2/apache2/php.ini
Mã:
date.timezone = Europe/Amsterdam
memory_limit = 512M
Bây giờ hãy chạy lệnh systemctl sau để khởi động lại dịch vụ apache2 và áp dụng các thay đổi bạn đã thực hiện.
Mã:
sudo systemctl restart apache2
Cấu hình MariaDB Server
Bây giờ PHP đã được cấu hình, bước tiếp theo bạn sẽ cấu hình cài đặt MariaDB server bằng tiện ích mariadb-secure-installation, cho phép bạn thiết lập bảo mật cơ bản cho MariaDB. Sau đó, bạn cũng sẽ tạo một cơ sở dữ liệu và người dùng mới sẽ được BookStack sử dụng.Thực hiện lệnh mariadb-secure-installlation sau để bảo mật cài đặt MariaDB của bạn.
Mã:
sudo mariadb-secure-installation
- Đối với cài đặt máy chủ MariaDB mặc định không có mật khẩu gốc, hãy nhấn ENTER khi được hỏi về mật khẩu.
- Xác thực cục bộ cho người dùng gốc MariaDB được bảo mật theo mặc định, hãy nhập 'n' khi được yêu cầu thay đổi phương thức xác thực thành 'unix_socket'.
- Nhập 'Y' để tạo mật khẩu gốc MariaDB mới. Sau đó, nhập mật khẩu mạnh cho người dùng gốc MariaDB của bạn và lặp lại.
- Khi được yêu cầu tắt xác thực từ xa cho người dùng gốc MariaDB, hãy nhập 'Y' để đồng ý.
- Cài đặt máy chủ MariaDB mặc định đi kèm với cơ sở dữ liệu 'test' và cho phép người dùng ẩn danh truy cập vào đó. Nhập 'Y' cho cả hai cài đặt để xóa cơ sở dữ liệu mặc định 'test' và xóa đặc quyền ẩn danh.
- Cuối cùng, nhập 'Y' để xác nhận tải lại đặc quyền bảng.
Đăng nhập vào máy chủ MariaDB bằng lệnh mariadb sau. Nhập mật khẩu gốc MariaDB của bạn khi được nhắc.
Mã:
sudo mariadb -u root -p
Mã:
CREATE DATABASE bookstack;
CREATE USER bookstack@localhost IDENTIFIED BY 'p4ssword';
GRANT ALL ON bookstack.* TO bookstack@localhost WITH GRANT OPTION;
FLUSH PRIVILEGES;
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22249%22%3E%3C/svg%3E
Tiếp theo, chạy truy vấn sau để xác minh quyền cho người dùng bookstack.
Mã:
SHOW GRANTS FOR bookstack@localhost;
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22241%22%3E%3C/svg%3E
Gõ quit để thoát khỏi MariaDB Máy chủ.
Tải xuống Bookstack
Bây giờ bạn đã cấu hình máy chủ PHP và MariaDB, bạn đã sẵn sàng cài đặt BookStack. Trong phần này, bạn sẽ cài đặt BookStack thông qua Git và Composer.Trước tiên, hãy tạo các thư mục mới /var/www/.config và /var/www/.cache sẽ được Composer sử dụng để lưu trữ bộ đệm phụ thuộc và cấu hình. Sau đó, bạn cũng phải thay đổi quyền sở hữu của cả hai thư mục thành người dùng www-data.
Mã:
mkdir -p /var/www/{.config,.cache}
sudo chown -R www-data /var/www/{.config,.cache}
Mã:
cd /var/www
git clone https://github.com/BookStackApp/BookStack.git --branch release --single-branch bookstack
Mã:
sudo chown -R www-data:www-data /var/www/bookstack
cd /var/www/bookstack
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22168%22%3E%3C/svg%3E
Tiếp theo, sao chép tệp .env.example vào .env và mở tệp mới bằng lệnh trình chỉnh sửa nano sau.
Mã:
sudo -u www-data cp .env.example .env
sudo -u www-data nano .env
Mã:
# The application URL
APP_URL=http://bookstack.howtoforge.local
# Database values also need to be modified
# If you follow previous command, you only need to add your DB_PASSWORD
DB_DATABASE=bookstack
DB_USERNAME=bookstack
DB_PASSWORD=p4ssword
Tiếp theo, chạy lệnh sau để cài đặt các phụ thuộc PHP thông qua Composer.
Mã:
sudo -u www-data composer install --no-dev --no-plugins
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22451%22%3E%3C/svg%3E
Sau khi cài đặt các phụ thuộc PHP, hãy thực hiện lệnh sau để tạo khóa bí mật và di chuyển cơ sở dữ liệu.
Mã:
sudo -u www-data php artisan key:generate --no-interaction --force
sudo -u www-data php artisan migrate --no-interaction --force
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22239%22%3E%3C/svg%3E
Sau khi mọi thứ hoàn tất, hãy chạy lệnh sau để thay đổi quyền sở hữu một số thư mục thành người dùng www-data và đảm bảo những thư mục đó có thể ghi được.
Mã:
sudo chown www-data:www-data -R bootstrap/cache public/uploads storage
sudo chmod u+rw bootstrap/cache public/uploads storage
Mã:
sudo chmod -R 640 /var/www/bookstack/.env
Cấu hình Apache2 Virtual Máy chủ
Trong phần sau, bạn sẽ tạo cấu hình máy chủ ảo Apache2 mới sẽ được sử dụng để chạy BookStack. Vì vậy, bạn phải đảm bảo rằng bạn đã chuẩn bị tên miền của mình và đảm bảo nó được trỏ đến địa chỉ IP của máy chủ.Trước khi tạo cấu hình máy chủ ảo, hãy thực hiện lệnh sau để kích hoạt mô-đun ghi đè trên Apache2.
Mã:
sudo a2enmod rewrite
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22504%22%20height=%22161%22%3E%3C/svg%3E
Bây giờ hãy tạo cấu hình máy chủ ảo mới /etc/apache2/sites-available/bookstack.conf bằng lệnh nano editor sau.
Mã:
sudo nano /etc/apache2/sites-available/bookstack.conf
Mã:
ServerName bookstack.howtoforge.local
ServerAdmin webmaster@localhost
DocumentRoot /var/www/bookstack/public/
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
Options -MultiViews -Indexes
RewriteEngine On
# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.+)/$
RewriteRule ^ %1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
ErrorLog ${APACHE_LOG_DIR}/bookstack-error.log
CustomLog ${APACHE_LOG_DIR}/bookstack-access.log combined
Tiếp theo, chạy lệnh sau để kích hoạt tệp máy chủ ảo bookstack.conf và xác minh Apache2 của bạn cú pháp.
Mã:
sudo a2ensite bookstack.conf
sudo apachectl configtest
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22718%22%20height=%22299%22%3E%3C/svg%3E
Cuối cùng, hãy chạy lệnh systemctl bên dưới để khởi động lại dịch vụ aapche2 và áp dụng các thay đổi mà bạn đã đã tạo.
Mã:
sudo systemctl restart apache2
Bảo mật Bookstack bằng chứng chỉ SSL/TLS
Trong hướng dẫn này, bạn sẽ bảo mật BookStack bằng chứng chỉ SSL/TLS, có thể được tạo từ Letsencrypt thông qua công cụ Certbot.Cài đặt Certbot và plugin Certbot Apache thông qua lệnh apt install bên dưới. Nhập y để xác nhận và tiếp tục cài đặt.
Mã:
sudo apt install certbot python3-certbot-apache
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22690%22%20height=%22400%22%3E%3C/svg%3E
Bây giờ hãy chạy lệnh certbot bên dưới để tạo chứng chỉ SSL/TLS và bảo mật cài đặt BookStack của bạn. Hãy chắc chắn thay đổi tên miền và địa chỉ email trong lệnh sau.
Mã:
sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [emailprotected] -d bookstack.howtoforge.local
Truy cập Bookstack
Tại thời điểm này, mọi thứ đã được cấu hình và cài đặt BookStack của bạn đã hoàn tất. Bây giờ bạn có thể truy cập cài đặt BookStack của mình.Khởi chạy trình duyệt web và truy cập tên miền cài đặt BookStack của bạn, chẳng hạn như https://bookstack.howtoforge.local/, và bạn sẽ được chuyển hướng đến trang đăng nhập BookStack.
Nhập địa chỉ email mặc định [emailprotected] và mật khẩu là password, sau đó nhấp vào Đăng nhập.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22412%22%3E%3C/svg%3E
Nếu thành công, bạn sẽ thấy bảng điều khiển BookStack như sau:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22205%22%3E%3C/svg%3E