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
- Ubuntu Server.
- Nginx để làm Reverse Proxy.
- PHP.
- Tên miền với chứng chỉ SSL đã được lấy miễn phí từ Let's Encrypt.
- Cơ sở dữ liệu MariaDB.
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_HOST và DB_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.