0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

bookstack のインストール [Apache Subdirectry 運用]

Last updated at Posted at 2021-05-14

インストール 作業メモ [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は1.10.1-1までしか、aptコマンドでインストール出来ないので
一旦、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の設定部分、サブディレクトリ運用の場合は末尾にスラッシュを付けません。
例:APP_URL = https://example.com/bookstack

他、自分の環境に合わせて修正します。以後失敗するときは、大抵このファイルの記述が問題です。

/var/lib/bookstack/.env
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

必要に応じて、事前にDBの作成をします。

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

以下の3つだけ気を付ければいいかもしれませんが、
結局、/var/lib/bookstack以下全フォルダのアクセス権を再度設定しました。
※私の環境では、一時的にオーナーを変えないと、”composer install --no-dev”でエラーになりました。

sudo chown -hR www-data:www-data /var/lib/bookstack

■Apache関連設定 (サブディレクトリ運用設定)

■↓subdirectryの説明箇所 (ここの設定をそのまま使いました。)
https://www.bookstackapp.com/docs/admin/subdirectory-setup/

私の環境では、https:// 運用なので共通設定もある為、
↓こちらのファイルに追記しました。(VirtualHostタグの中の一番最後に追記しました。)

vi /etc/apache2/sites-available/default-ssl.conf
/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
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?