Cách cài đặt BookStack trên Debian 12

theanh

Administrator
Nhân viên
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.

Đ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
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.
Mã:
sudo systemctl is-enabled apache2
sudo systemctl status apache2
Đầ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.
Mã:
sudo systemctl is-enabled mariadb
sudo systemctl status mariadb
Đầ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.
Mã:
php -v
php -m
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 đó.
Mã:
which composer
sudo -u www-data composer -v
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

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
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.timezonememory_limit với môi trường máy chủ của bạn.
Mã:
date.timezone = Europe/Amsterdam
memory_limit = 512M
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.
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
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.
  • Đố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.
Sau khi cấu hình MariaDB, bạn sẽ tạo một cơ sở dữ liệu và người dùng MariaDB mới sẽ được BookStack sử dụng thông qua lệnh máy khách mariadb.

Đă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
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.
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;
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ủ.

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/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}
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.
Mã:
cd /var/www
git clone https://github.com/BookStackApp/BookStack.git --branch release --single-branch 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 đó.
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
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.
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
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.
Mã:
sudo -u www-data composer install --no-dev --no-plugins
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.
Mã:
sudo -u www-data php artisan key:generate --no-interaction --force
sudo -u www-data php artisan migrate --no-interaction --force
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.
Mã:
sudo chown www-data:www-data -R bootstrap/cache public/uploads storage 
sudo chmod u+rw bootstrap/cache public/uploads storage
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.
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
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.
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
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.
Mã:
sudo a2ensite bookstack.conf
sudo apachectl configtest
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.
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
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.

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

Kết luận​

Để kết thúc, bạn đã cài đặt thành công BookStack trên máy chủ Debian 12 theo từng bước. Bạn đã cài đặt BookStack thông qua Git, Composer và với các gói LAMP Stack (Apache2, MariaDB và PHP). Bạn cũng đã bảo mật BookStack bằng chứng chỉ SSL/TLS từ Letsencrypt. Từ đây, giờ bạn có thể điền thông tin và xây dựng tài liệu của riêng mình.
 
Back
Bên trên