BookStackは、オープンソースのナレッジ管理およびドキュメント作成ツールです。
非常に見た目がよいことと、整理された情報を共有することができるため、個人やチームでの情報整理に非常に役立ちます。
特に、記事に画像をそのままコピペできることや、作画ツールであるDrow.ioがBookStackに内包されているたため、ほかのツールに比べて画像や図なども含めて一元で管理することができます。
主なメリットは以下の通りです:
- 使いやすいインターフェース:
シンプルなドラッグ&ドロップでページ作成や整理ができ、直観的に使うことができます。 - 階層的な構造:
ページを「本」「章」「ページ」という階層で整理できるため、大規模なドキュメントも管理しやすい。 - 検索機能:
強力な検索機能で、必要な情報を素早く見つけることができます。 - アクセス管理:
ユーザーやグループ単位で権限を設定できるので、プライベートな情報を保護できます。
LDAP認証もできるためユーザ管理もやりやすいです。 - オープンソース:
無料で利用でき、カスタマイズも可能です。
今回は、AlmaLinux 9.4にBookStackをインストールする手順を紹介します。
OSにUbuntuを利用している場合は、一括でのセットアップスクリプトが用意されていますが、 AlmaLinuxの場合には手動でのインストールが必要です。https://www.bookstackapp.com/docs/admin/installation/#manual
必要なパッケージのインストール
最初に、BookStackを動作させるために必要なパッケージ(PHP、Nginx、MariaDB、Gitなど)をインストールします。 ApacheやPostgresなども選択できますが、今回はNginxとMariaDBを利用します。
システムを最新の状態に更新
まずはシステムを最新の状態に更新します。
sudo dnf update -y
Remiリポジトリのインストール
AlmaLinux 9.4にPHP 8.1以上をインストールするために、Remiリポジトリを有効にします。 ※よく使われるEpelリポジトリにはphp8.0しかありませんでした。
sudo dnf install -y dnf-utils
sudo dnf install -y https://rpms.remirepo.net/enterprise/remi-release-9.rpm
sudo dnf module enable -y php:remi-8.1
sudo dnf install -y php php-cli php-fpm php-mysqlnd php-xml php-mbstring php-curl php-zip php-json
これで、PHP 8.1と関連モジュール類がインストールされます。
さらにComposerを利用するためにPhp-gdのモジュールが必要です。 しかし、Remiリポジトリには存在しないため、Epelリポジトリを有効にしてインストールします。
sudo dnf install -y epel-release
sudo dnf config-manager --set-enabled epel
sudo dnf install -y php-gd
必要なパッケージのインストール
次に、その他の必要なパッケージであるNginxやgitなどをインストールします。
sudo dnf install -y nginx git curl unzip wget sudo
sudo dnf install -y mariadb-server
php-fpm
: PHPのFastCGI Process Managerphp-mysqlnd
: MySQLとの接続のためのPHPモジュールphp-xml
,php-mbstring
,php-curl
,php-zip
: BookStackに必要なPHP拡張mariadb-server
: データベース用のMariaDB
データベースの設定
BookStackはデータベースとしてMySQL(MariaDB)を使用します。まず、MariaDBを設定し、BookStack用のデータベースを作成します。
MariaDBの起動と自動起動設定
sudo systemctl start mariadb
sudo systemctl enable mariadb
MariaDBの初期設定
sudo mysql_secure_installation
プロンプトに従い、rootパスワードの設定やセキュリティ設定を行います。 私は最初にrootパスワードを入力後はすべて「n」で進めました。
BookStack用データベースの作成
MariaDBにログインし、BookStack用のデータベースを作成します。
sudo mysql -u root -p
rootユーザのパスワードを入力します。
CREATE DATABASE bookstack;
CREATE USER 'bookstackuser'@'localhost' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON bookstack.* TO 'bookstackuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;
bookstack
: 作成するデータベース名bookstackuser
: BookStack用のユーザー名your_password
: BookStack用のパスワード
BookStackのインストール
次に、BookStackをインストールします。
GitリポジトリからBookStackをクローン
Gitで最新のBookStackをダウンロードしてきます。必ず、releaseのブランチを指定してください。 何も指定しないと
cd /var/www
git clone https://github.com/BookStackApp/BookStack.git --branch release --single-branch bookstack
cd bookstack
PHP依存関係のインストール
Composerを使って、BookStackのPHP依存関係をインストールします。
sudo curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
sudo chmod +x /usr/local/bin/composer
composerが正しくインストールされたことを確認します。
composer --version
Composer version 2.8.4 2024-xx-xx xx:xx:xx
PHP version 8.1.31 (/usr/bin/php)
Run the "diagnose" command to get more detailed diagnostics output.
composerでBookStackを構成します。
composer install --no-dev
.envファイルの設定
BookStackの設定ファイル.env
をコピーし、データベース接続設定を行います。
cp .env.example .env
/var/www/bookstack/.env
ファイルを開き、以下のように設定を変更します。 ※DB_DATABASE
, DB_USERNAME
, DB_PASSWORD
は先ほど作成したデータベースの情報に合わせて変更します。
APP_URL=http://192.168.10.135
DB_CONNECTION=mysql
DB_HOST=localhost
DB_DATABASE=bookstack
DB_USERNAME=bookstackuser
DB_PASSWORD=your_password
アプリを実行するのに必要なパーミッションを設定します。 これをしないとアプリがエラー表示されます。
sudo chown -R nginx:nginx /var/www/bookstack
sudo chmod -R 777 /var/www/bookstack/storage /var/www/bookstack/bootstrap/cache /var/www/bookstack/public/uploads
アプリケーションキーの生成
BookStackのアプリケーションキーを生成します。
php artisan key:generate
マイグレーションとシーディング
データベースのマイグレーションを実行し、初期データを挿入します。
php artisan migrate --seed
Nginx設定
BookStackを公開するために、Nginxを設定します。さらに、HTTPSを有効にするためにSSL証明書を設定します。
Nginxの設定
Nginxの設定ファイルを作成します。
sudo vim /etc/nginx/conf.d/bookstack.conf
以下の内容で設定を追加します。
server {
listen 80;
server_name 192.168.10.135;
root /var/www/bookstack/public;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_pass unix:/var/run/php-fpm/www.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
error_log /var/log/nginx/bookstack_error.log;
access_log /var/log/nginx/bookstack_access.log;
}
。
Nginxの再起動
sudo systemctl restart nginx
sudo systemctl enable nginx
動作確認
すべての設定が完了したら、ブラウザでhttp://192.168.10.135
にアクセスして、BookStackのインターフェースが表示されることを確認します。
初回アクセス時には、BookStackの管理者アカウントを作成する画面が表示されます。
初期ユーザーとパスワードの以下を入力してログオンします。
ID:admin@admin.com
PW:password
ログオンができれば成功です!
これで、AlmaLinux 9.4にBookStackがインストールされ、利用できる状態になりました。
次回は初期セットアップについて説明したいと思います。情報管理の効率化に役立ててください!
今回は以上となります。
コメント