BookStack(Wiki)は共用ホスティング(レンタルサーバー)はサポートしていませんが、Xserverには普通にインストールできました。ほかのレンタルサーバーでもやってみればいけるかも。
ただしいろいろと設定が必要なので、メモしておきます。
Wikipediaにも使われているMediaWikiなら小難しい設定抜きでインストールできたので、ユーザーごとに閲覧制限をしたいといった理由がなければそちらでもよさそうです。
BookStackとは
オープンソースのWikiソフトウェアの一つです。
PHPとMySQLで動きます。
本棚、ブック、章、ページといった風に、サイトを本に見立てて管理するのが特徴です。
ページ構造が直感的でページ編集にWYSIWYGとMarkdownどちらも使えるので、PCに慣れていないメンバーがいる場合にもおすすめです。
他のWikiにはあまりない機能として、ユーザーに権限を設定して見れないページを作れる点があります。
現在でも頻繁にアップデートが行われています。
有志の方により日本語化がされています。
BookStack動作環境
- PHP >= 7.4
- MySQL >= 5.7 or MariaDB >= 10.2
- For the storage of BookStack content and data.
- Single Database (All permissions advised since application manages schema)
- Git Version Control
- For application of updates when following our standard process.
- Composer >= v2.0
- For installation and management of our PHP dependencies.
※BookStackのバージョンアップで変わっている可能性があるので、公式サイトで確認が必要です。
Xserverの下準備をする
Xserver管理画面でMySQLとPHPのバージョン設定
- Xserver管理画面にログイン。
- Xserver管理画面のサーバー管理のMySQL設定で、MySQLデータベースを作り、そのデータベースにMySQLユーザーを追加します。
作ったデータベースの名前とユーザー名、パスワードをメモしておきます。 - 「PHP Ver.切替」でBookStackをインストールしたいドメインを選び、7.4以上のバージョンのPHPに切り替えておきます。ここではPHP8.0に切り替えるものとします。
PHPを切り替え
まずはSSHでXserverにログインします。
php -v
を実行してPHPのバージョンを確認します。
おそらく管理画面で設定したバージョンとは異なるものとなっているはずです。
その場合まずはmkdir $HOME/bin
を実行しbin
ディレクトリを作り、ln -s /usr/bin/php8.0 $HOME/bin/php
を実行して、Xserver管理画面で設定したバージョンであるPHP8.0のシンボリックリンクを作成します。次にSSHで使うPHPのバージョンを切り替えるために
vi ~/.bashrc
を実行して.bashrc
を開きます。
以下の行を追記し、パスを通します。
PATH=$HOME/bin:$PATH
(.bashrc
をそのままにしておきたい人はサブディレクトリにでも.bashrc
を作ってそちらをsource
コマンドで読み込んでください。)source ~/.bashrc
を実行して.bashrc
を再読み込みします。php -v
を実行してPHPのバージョンを確認して、PHP8になっていれば大丈夫です。
Composerをアップデート
引き続きComposerをアップデートしていきます。一度SSHをログアウトしていたならsource ~/.bashrc
でSSHで使うPHPを切り替えてください。
composer -V
でComposerのバージョンを確認して、動作環境より低いバージョンならアップデートする必要があります。Composerのダウンロードページを開きます。
下記コマンドでサーバーの設定に合った
composer.phar
を生成してくれます。
Composerのバージョンアップ等でハッシュ値が変わる可能性があるので、必ず公式ページからコピペしてください。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.pharファイルが作成されますので、
mv composer.phar $HOME/bin/composer
を実行してbinディレクトリに移動します。source ~/.bashrc
を実行して.bashrc
を再読み込みします。composer -V
を実行してComposerのバージョンを確認して、BookStackの動作条件を満たしていることを確認します。
Gitのインストール
XserverはGitが元から入っています。
BookStackをインストールする
いよいよBookStackをインストールしていきます。
ここから先は公式サイトの手動インストール手順とだいたい同じです。
まずは
cd ~/
でホームディレクトリに移動します。git clone https://github.com/BookStackApp/BookStack.git --branch release --single-branch
でBookStackのGitHubからプロジェクトをCloneします。
BookStack
ディレクトリが作られているはずです。cd BookStack
でBookStack
ディレクトリに移動。composer install --no-dev
を実行してBookStackに必要なパッケージをインストールします。
BookStackの環境設定ファイルとデータベースの設定
そのままBookStack
ディレクトリで設定ファイルを作成していきます。
cp .env.example .env
を実行して.env.example
ファイルを.env
ファイルにコピーします。php artisan key:generate
を実行して一意のアプリケーション キーを生成します。
これにより.env
ファイル内のAPP_KEY
定数が自動的に更新されます。vi .env
でファイルを開き、メモしておいたデータベースの詳細と、APP_URL
には公開予定のURL、メールの詳細も設定します。
適時自分の環境に合わせて書き換えてください。APP_URL=https://your-domain.com DB_HOST=mysql***xserver.jp DB_DATABASE=Database name DB_USERNAME=Database user DB_PASSWORD=Database password MAIL_DRIVER=smtp MAIL_FROM_NAME="BookStack" MAIL_FROM=info@your-domain.com MAIL_HOST=sv***.xserver.jp MAIL_PORT=465 MAIL_USERNAME=info@your-domain.com MAIL_PASSWORD=Mail password MAIL_ENCRYPTION=ssl
同じディレクトリにある
.env.example.complete
ファイルにはその他設定できる項目が書かれています。APP_LANG=ja APP_TIMEZONE=Asia/Tokyo
あたりは設定しておくとよさそうです。
php artisan migrate
を実行してデータベースを更新します。
BookStack用にディレクトリを設定
chmod u+w ~/BookStack/storage ~/BookStack/bootstrap/cache
を実行して、これらのディレクトリをWebサーバーによって書き込み可能にします。public
ディレクトリを公開予定のドメインのディレクトリのpublic_html
ディレクトリに移動させます。
今回はyour-domain.com
が公開予定のドメインで、その直下にインストールするとします。
移動させる前にpublic_html
からindex.html
ファイル等は削除しておいてください。
mv ~/BookStack/public/* ~/BookStack/public/.htaccess ~/your-domain.com/public_html
を実行して必要なファイルを移動させます。chmod u+w ~/your-domain.com/public_html/uploads
を実行してuploads
をWebサーバーによって書き込み可能にします。
公開ディレクトリのファイルを書き換え
cd ~/your-domain.com/public_html
を実行して、公開ディレクトリに移動します。vi .htaccess
を実行してRewriteEngine On
の下の行にRewriteBase /
を追記します。
※もしBookStackの公開ディレクトリがサブディレクトリの場合、例えばインストール先がdir
ならRewriteBase /dir/
としてください。vi index.php
を実行して、いくつかの書き換えをしてください。
/../..
のところはBookStackの公開ディレクトリがサブディレクトリだったりするなら、その分/../../..
といった風に階層を深くします。18行目あたり
if (file_exists(__DIR__ . '/../storage/framework/maintenance.php')) { require __DIR__ . '/../storage/framework/maintenance.php'; } ↓以下に変更 if (file_exists(__DIR__ . '/../../BookStack/storage/framework/maintenance.php')) { require __DIR__ . '/../../BookStack/storage/framework/maintenance.php'; }
37行目あたり
require __DIR__ . '/../vendor/autoload.php'; ↓以下に変更 require __DIR__ . '/../../BookStack/vendor/autoload.php';
51行目あたり
$app = require_once __DIR__ . '/../bootstrap/app.php'; ↓以下に変更 $app = require_once __DIR__ . '/../../BookStack/bootstrap/app.php';
BookStackにログイン
これでBookStackのインストールができたはずです。
ブラウザで公開URLにアクセスして、デフォルトの管理者admin@admin.com
とパスワードpassword
でログインできます。
セキュリティ上の理由から、初回ログイン直後にログイン情報を変更してください。
参考にしたサイト
Installing BookStack Wiki on cPanel Shared Hosting - WarpConduit Computing