レンタルサーバーにBookStackをインストールする
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