インストール 作業メモ [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は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
$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
他、自分の環境に合わせて修正します。以後失敗するときは、大抵このファイルの記述が問題です。
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
<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