BookStack 架設
運行環境
安裝nginx mariadb
apt update
apt -y install nginx mariadb-server unzip git
systemctl enable nginx && systemctl start nginx
systemctl enable mariadb && systemctl start mariadb
資料庫設定
mariadb -u root -p
CREATE DATABASE IF NOT EXISTS bookstackdb DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
GRANT ALL PRIVILEGES ON bookstackdb.* TO 'bookstackuser'@'localhost' IDENTIFIED BY 'bookstackpass' WITH GRANT OPTION;
FLUSH PRIVILEGES;
安裝PHP 8.4
apt install -y lsb-release ca-certificates apt-transport-https software-properties-common
wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/sury-php.list
apt update && apt install curl php8.4 php8.4-{common,mbstring,fpm,mysql,gd,cli,opcache,curl,ldap,odbc,xmlrpc,soap,intl,zip,tidy,xml} -y
修改/etc/php/8.4/fpm/php.ini設定
sed -i "s|^;cgi.fix_pathinfo=1.*$|cgi.fix_pathinfo=0|" /etc/php/8.4/fpm/php.ini
sed -i "s|^;cgi.fix_pathinfo=1.*$|cgi.fix_pathinfo=0|" /etc/php/8.4/cli/php.ini
sed -i "s|^;date.timezone =.*$|date.timezone = Asia/Taipei|" /etc/php/8.4/fpm/php.ini
sed -i "s|^;date.timezone =.*$|date.timezone = Asia/Taipei|" /etc/php/8.4/cli/php.ini
sed -i "s|^upload_max_filesize = 2M.*$|upload_max_filesize = 50M|" /etc/php/8.4/fpm/php.ini
sed -i "s|^upload_max_filesize = 2M.*$|upload_max_filesize = 50M|" /etc/php/8.4/cli/php.ini
sed -i "s|^post_max_size = 8M.*$|post_max_size = 200M|" /etc/php/8.4/fpm/php.ini
sed -i "s|^post_max_size = 8M.*$|post_max_size = 200M|" /etc/php/8.4/cli/php.ini
sed -i "s|^memory_limit = 128M.*$|memory_limit = 512M|" /etc/php/8.4/fpm/php.ini
sed -i "s|^memory_limit = -1.*$|memory_limit = 512M|" /etc/php/8.4/cli/php.ini
sed -i "s|^max_execution_time = 30.*$|max_execution_time = 600|" /etc/php/8.4/fpm/php.ini
sed -i "s|^max_execution_time = 30.*$|max_execution_time = 600|" /etc/php/8.4/cli/php.ini
sed -i "s|^max_input_time = 60.*$|max_input_time = 600|" /etc/php/8.4/fpm/php.ini
sed -i "s|^max_input_time = 60.*$|max_input_time = 600|" /etc/php/8.4/cli/php.ini
sed -i "s|^default_socket_timeout = 60.*$|default_socket_timeout = 600|" /etc/php/8.4/fpm/php.ini
sed -i "s|^default_socket_timeout = 60.*$|default_socket_timeout = 600|" /etc/php/8.4/cli/php.ini
在/etc/php/8.4/fpm/pool.d/www.conf 新增設定
確認以下設定正確
user = www-data
group = www-data
listen.owner = www-data
listen.group = www-data
listen.mode = 0660
#listen.mode註解打開
最後一行增加
php_value[session.save_path] = /var/www/html/sessions
systemctl start php8.4-fpm && systemctl enable php8.4-fpm
設定/etc/nginx/nginx.conf
http區塊加入
client_body_timeout 120s;
client_max_body_size 100M;
建立/etc/nginx/conf.d/bookstack.conf
server {
listen 80;
listen [::]:80;
server_name _;
root /var/www/html/bookstack/public;
index index.php index.html;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass unix:/run/php/php8.4-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
BookStack下載安裝
cd /usr/local/bin
curl -sS https://getcomposer.org/installer | php
mv composer.phar composer
mkdir -p /var/www/html
cd /var/www/html
mkdir /var/www/html/sessions
git clone https://github.com/BookStackApp/BookStack.git --branch release --single-branch
cd BookStack && composer install --no-dev
cp .env.example .env
修改 .env
#APP_URL=先設定空白
APP_URL=
DB_HOST=localhost
DB_DATABASE=bookstackdb
DB_USERNAME=bookstackuser
DB_PASSWORD=bookstackpass
- 設定完成輸入
http://ip,預設帳密admin@admin.com、password
參考相關網頁
BUBU知識庫