Cài đặt Bookstack lên Ubuntu Server

Giới thiệu

BookStack là một nền tảng quản lý kiến ​​thức nguồn mở và miễn phí được xây dựng trên PHP. Cấu trúc nội dung được xây dựng dựa trên Sách, Chương & Trang. BookStack sử dụng trình soạn thảo WYSIWYG để tạo và chỉnh sửa nội dung để người dùng không phải ghi nhớ một số đánh dấu cụ thể. Ngoài ra BookStack cũng hỗ trợ khá tốt Markdown.

Yêu cầu hệ thống

Cài đặt

Tạo cơ sở dữ liệu

Đăng nhập vào tài khoản root

sudo mysql -u root -p

Tạo cơ sở dữ liệu bookstack và tài khoản bookstackdb, tên cơ sở dữ liệu và tài khoản cũng như mật khẩu tùy bạn

CREATE USER 'bookstack' IDENTIFIED BY 'password';
CREATE DATABASE bookstackdb CHARACTER SET 'utf8mb4' COLLATE 'utf8mb4_unicode_ci';
GRANT ALL PRIVILEGES ON bookstackdb.* TO 'bookstack';
FLUSH PRIVILEGES;
exit;

Tạo tài khoản mới

Tiến hành tạo tài khoản mới, tránh sử dụng tài khoản hay ssh vào hệ thống.

sudo adduser bookstack
sudo usermod -aG sudo bookstack

Đăng nhập vào tài khoản đó

su - bookstack

Tiến hành cài đặt

Tải về phiên bản mới nhất

git clone https://github.com/BookStackApp/BookStack.git --branch release --single-branch

Di chuyển toàn bộ về thư mục /var/www/bookstack.com

sudo mv BookStack /var/www/
cd /var/www/
sudo mv BookStack bookstack.com

truy cập vào thư mục đó

cd bookstack.com

Tiến hành cài đặt

composer install --no-dev

Cấu hình Cơ sở dữ liệu, copy file .env.example thành file .env và sửa nội dung file đó

sudo cp .env.example .env
sudo nano .env

Sửa phần APP_URL, DB_HOST, DB_HOST, DB_HOSTDB_HOST với thông tin Cơ sở dữ liệu đã tạo ở trên.

APP_KEY=SomeRandomString
APP_URL=https://example.com

# Database details
DB_HOST=localhost
DB_HOST=database_database
DB_HOST=database_username
DB_HOST=database_user_password

Nếu cho phép người khác đăng ký và sử dụng thì cần sửa cả phần liên quan đến cấu hình email, mình dùng cho cá nhân nên bỏ qua.

# Mail system to use
# Can be 'smtp' or 'sendmail'
MAIL_DRIVER=smtp

# Mail sender details
MAIL_FROM_NAME="BookStack"
MAIL_FROM=bookstack@example.com

Chỉnh sửa file permissions

sudo chown -R bookstack:www-data /var/www/bookstack.com
sudo chmod -R 755 /var/www/bookstack.com
sudo chmod -R 775 /var/www/bookstack.com/storage /var/www/bookstack.com/bootstrap/cache /var/www/bookstack.com/public/uploads
sudo chmod -R 640 /var/www/bookstack.com/.env

Tạo khóa cho ứng dụng

php artisan key:generate

Cập nhập cơ sở dữ liệu

php artisan migrate

Tạo file cấu hình cho Nginx

sudo nano /etc/nginx/sites-available/bookstack.com

Và nhập vào nội dung sau

server {
    listen 80;
    server_name bookstack.com;
    return 301 https://$server_name$request_uri;
}
server {
    listen 443 ssl;
    server_name bookstack.com;
    root /var/www/bookstack.com/public;
    index index.php index.html;
    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }
    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php8.1-fpm.sock;
    }
    location ~ /\.ht {
        deny all;
    }
        access_log  /var/log/nginx/bookstack.access.log;
        error_log   /var/log/nginx/bookstack.error.log;
        ssl_certificate /etc/letsencrypt/live/bookstack.com/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/bookstack.com/privkey.pem;
        include /etc/letsencrypt/options-ssl-nginx.conf;
        ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
}

Ánh xạ, kiểm tra cấu hình không lỗi thì khởi động lại Nginx

sudo ln -s /etc/nginx/sites-available/bookstack.com /etc/nginx/sites-enabled/bookstack.com
sudo nginx -t
sudo systemctl restart nginx

Xong, giờ chúng ta truy cập vào Tên miền, đăng nhập với tài khoản mặc định admin@admin.com mật khẩu là password. Sau khi đăng nhập nhớ đổi tên và mật khẩu tài khoản này đi.
Chúc các bạn thành công.