安装Bookstack [Apache子目录操作]
安装操作备忘录 [22/09/19]
Apache Subdirectry 的配置運用
-
- OS: Ubuntu 20.04.2 LTS
-
- BookStack v22.09
-
- MySQL: 8.0.30-0ubuntu0.20.04.2
- Composer:2.4.2 ※Ver2以上必須(v21.12.3より)
■ 预先准备:安装Composer2。
在Ubuntu22.04中,由于PHPComposer只能通过apt命令安装到1.10.1-1版本,因此首先需要删除Composer1,并从官方网站https://getcomposer.org/进行安装。
另外,还需要安装php-cli和unzip软件包,可以使用apt命令进行安装。
参考链接:https://getcomposer.org/download/
$sudo apt-get remove composer
$sudo apt update
$sudo apt install php-cli unzip
$cd ~
$php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
$php -r "if (hash_file('sha384', 'composer-setup.php') === '55ce33d7678c5a611085589f1f3ddf8b3c52d662cd01d4ba75c0ee0459970c2200a51f492d557530c71c15d8dba01eae') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
$php composer-setup.php
$php -r "unlink('composer-setup.php');"
##↓Composerを利用できるように設定
sudo php /tmp/composer-setup.php --install-dir=/usr/local/bin --filename=composer
请确认Composer的安装
$ composer
$cd /usr/local/src
$sudo git clone https://github.com/BookStackApp/BookStack.git --branch release --single-branch
$sudo mv ./BookStack /var/lib/bookstack
$cd /var/lib/bookstack
↓私の環境では、一時的にオーナー変更して作業
$sudo chown -hR '作業ユーザー':'作業グループ' /var/lib/bookstack
$composer install --no-dev
$ln -s /var/lib/bookstack /var/www/
$cd /usr/local/src
$sudo git clone https://github.com/BookStackApp/BookStack.git --branch release --single-branch
$sudo mv ./BookStack /var/lib/bookstack
$cd /var/lib/bookstack
$sudo apt install composer
$composer install --no-dev
$ln -s /var/lib/bookstack /var/www/
到这里,程序的部署与配置已经完成。
■修改设定文件
复制.env.example文件,创建/var/lib/bookstack/.env文件。
(※这是一个重要的配置文件。)
如果应用程序要在子目录下运行,则不要在设置部分的末尾加斜杠。
例如:APP_URL = https://example.com/bookstack
他会根据自己的环境进行调整。以后若有失败,通常是这个文件的描述有问题。
APP_KEY=SomeRandomString
APP_URL=https://example.com/bookstack
# Database details
DB_HOST=localhost
DB_DATABASE='データベース名'
DB_USERNAME='データベース用ユーザー名'
DB_PASSWORD='データベースユーザーのパスワード'
# Mail system to use
# Can be 'smtp' or 'sendmail'
MAIL_DRIVER=smtp
# Mail sender details
MAIL_FROM_NAME="BookStack"
MAIL_FROM=bookstack@example.com
# SMTP mail options
# These settings can be checked using the "Send a Test Email"
# feature found in the "Settings > Maintenance" area of the system.
MAIL_HOST=localhost
MAIL_PORT=1025
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
根据需要,在事先创建数据库。
mysql -u root -p
CREATE DATABASE bookstack;
CREATE USER 'bookstack'@'%' IDENTIFIED BY 'pass12345';
GRANT ALL PRIVILEGES ON bookstack.* TO 'bookstack'@'%';
请执行下面的命令。会在.env文件的APP_KEY=SomeRandomString中生成随机字符。
cd /var/lib/bookstack
php artisan key:generate
↓将为系统构建一个数据库。
php artisan migrate
↑到这里为止,安装设置已完成。
■最终设定访问权限(针对以下文件夹,授予www-data用户访问权限)
-
- storage
-
- bootstrap/cache
- public/uploads
只需要注意以下三点可能就可以了,
最终,我重新设置了/var/lib/bookstack目录下所有文件夹的访问权限。
※在我的环境中,如果不暂时更改所有者,执行”composer install –no-dev”会出错。
sudo chown -hR www-data:www-data /var/lib/bookstack
■Apache相关设置(子目录运作设置)
■ 下面是有关子目录设置的说明部分(我直接使用了此处的设置)。
在我的环境中,由于是https运营,所以有一些共同的配置。我在这个文件中进行了附加。(我在VirtualHost标签的最后进行了附加。)
vi /etc/apache2/sites-available/default-ssl.conf
<VirtualHost _default_:443>
-----------------------
# BookStack Configuration
Alias "/bookstack" "/var/www/bookstack/public"
<Directory "/var/www/bookstack/public">
Options FollowSymlinks
AllowOverride None
Require all granted
RewriteEngine On
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</Directory>
<Directory "/var/www/bookstack">
AllowOverride None
Require all denied
</Directory>
# End BookStack Configuration
-----------------------
</VirtualHost>
用以下的指令,将设置应用到系统中。
sudo a2ensite default-ssl
apache2ctl configtest
sudo systemctl reload apache2
■启动和初始设置
如果启动顺利,将会显示这个屏幕。
-
- 初期設定ログインメールアドレス: admin@admin.com
初期設定パスワード: password
にて、一旦ログインします。
立即更改管理用户的登录设置。
■成功地登入了,一切順利。
只要没有错误地设置/var/lib/bookstack/.env文件,我认为不会发生大的失误。
■卸载选项,在失败时使用
#メインプログラム部分
rm -rf /var/lib/bookstack
#データベース関連
mysql -u root -p
DROP DATABASE bookstack;
DROP USER 'bookstack'@'localhost';
#apache設定
rm -rf /var/www/bookstack #リンク
rm /etc/apache2/sites-available/default-ssl.conf