Code

BookStackをAlmaLinux 9.4にインストールする手順

Code

BookStackは、オープンソースのナレッジ管理およびドキュメント作成ツールです。
非常に見た目がよいことと、整理された情報を共有することができるため、個人やチームでの情報整理に非常に役立ちます。
特に、記事に画像をそのままコピペできることや、作画ツールであるDrow.ioがBookStackに内包されているたため、ほかのツールに比べて画像や図なども含めて一元で管理することができます。

主なメリットは以下の通りです:

  1. 使いやすいインターフェース:
    シンプルなドラッグ&ドロップでページ作成や整理ができ、直観的に使うことができます。
  2. 階層的な構造:
    ページを「本」「章」「ページ」という階層で整理できるため、大規模なドキュメントも管理しやすい。
  3. 検索機能:
    強力な検索機能で、必要な情報を素早く見つけることができます。
  4. アクセス管理:
    ユーザーやグループ単位で権限を設定できるので、プライベートな情報を保護できます。
    LDAP認証もできるためユーザ管理もやりやすいです。
  5. オープンソース:
    無料で利用でき、カスタマイズも可能です。

今回は、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 Manager
  • php-mysqlnd: MySQLとの接続のためのPHPモジュール
  • php-xmlphp-mbstringphp-curlphp-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_DATABASEDB_USERNAMEDB_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がインストールされ、利用できる状態になりました。
次回は初期セットアップについて説明したいと思います。情報管理の効率化に役立ててください!

今回は以上となります。

コメント

タイトルとURLをコピーしました