安装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より)
image.png

 

image.png

■ 预先准备:安装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
image.png
$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

にて、一旦ログインします。

image.png

立即更改管理用户的登录设置。

image.png

■成功地登入了,一切順利。

image.png
只要没有错误地设置/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
广告
将在 10 秒后关闭
bannerAds