macOS + nginx + php上でDokuWikiを動かす

## 背景
先日、業務上必要に迫られて`Linux (Ubuntu) + nginx + php`を構築しました。
nginxがmacOSでも動作するということがわかり、ついでにmacOS (Sequoia）上で`nginx + PHP`もやってみました。

次は`DokuWiki`というウィキソフトウェアを動かす必要が出てきました。
PHPが入っていれば動くということなので、客先のシステムとは違いますが、自宅のmacOSでも動くのでは...ということで、やってみました。

## DokuWikiのダウンロード
[こちら](https://www.dokuwiki.org/ja:dokuwiki)に日本語でDokuWikiの解説がされています。ここからダウンロードもできます。
![スクリーンショット 2025-02-03 22.35.27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/202602/7a843cde-2ad9-df6d-c42e-5c1e2dcb6f5e.png)

ダウンロードサイトへ行くと、VersionやLanguagesなどの選択肢があります。
![スクリーンショット 2025-02-03 22.36.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/202602/b208d44e-a101-b179-3b58-eb452e279f32.png)

Versionは`Stable (Recommended)`が良さそうです。
Languagesは`Ja - 日本語`だけで十分でしょう。`en - English`は必須で、常に選ばれた状態になっています。
Popular Pluginsは`Upgrade Plugin`と`Wrap Plugin`を選択するのがおすすめのようです。
## インストール
`dokuwiki-*****.tar`ファイルがダウンロードされるので、展開します。
すると、`dokuwiki`というフォルダが現れますので、これをlocalhostなどのバーチャルウェブサーバの適切なディレクトリへコピーします。
![スクリーンショット 2025-02-03 22.43.26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/202602/e08c8a8e-7315-093d-a7f6-a8c49a319d48.png)

DokuWkiのインストールを開始するため、ウェブブラウザで下記のphpファイルへアクセスします。
```
http://localhost/dokuwiki/install.php
```
インストール画面がウェブブラウザに表示されます。
![スクリーンショット 2025-02-03 22.50.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/202602/8234fe9a-3506-c613-e273-3350205487ac.png)

英語表記で表示されますが、日本語への変更もできます。
![スクリーンショット 2025-02-03 22.53.09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/202602/e65293c3-e64c-32bc-eae9-efa521718354.png)

WIKIの名称、スーパーユーザーの必要項目を入力します。
保存ボタンを押すことでインストール作業が完了します。

## トップページを作る
DokuWikiのしきたりのようで、トップページは`start`という名称がいいようです。
下記にWebブラウザでアクセスします。
```
localhost/dokuwiki/doku.php?id=start
```

すると、ページが存在しないというメッセージが表示されます。
`文書の作成`ボタンをクリックすると、`start`ページが作成されます。
![スクリーンショット 2025-02-03 23.00.06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/202602/97ead203-99d1-840f-450a-43f687708a21.png)

テキストの編集エリアの中に、DokuWikiのマークダウンを使って、ページの内容を記述していきます。

![スクリーンショット 2025-02-03 22.58.16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/202602/0fc90fd2-ec58-7320-7cf3-7c75079c1e46.png)

## 好きな名前空間でページを作る
作りたい名前空間、ページ名をウェブブラウザに入力します。
例えば、mypageという名前空間にstart等ページを作る場合はこちら。
```
localhost/dokuwiki/doku.php?id=mypage:start
```
このページも存在しないため、`文書の作成`ボタンを押せばページが作成されます。
サイトマップで確認すると、mypage:startが作られています。
![スクリーンショット 2025-02-03 23.35.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/202602/780f86cf-70e2-9195-ea01-3d35dcef0d49.png)

DokuWikiの記法は[こちら](https://www.dokuwiki.org/ja:syntax)で解説されています。

## 管理
### 管理者メニュー
管理者メニューでは
- アクセスコントロール管理
- サイト設定
- テンプレートのスタイル設定
- ユーザー管理
- ログを見る
- 拡張機能管理
- 復元管理
- 利用状況調査
- 追加プラグイン〜Wikiのアップグレード

のメニューがあります。
このページで全ての設定ができそうです。

### サイト設定
管理者メニューからGUIを使って設定することができます。
DokuWiki用のテンプレートや、拡張機能のインストール、管理ができます。

![スクリーンショット 2025-02-03 23.08.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/202602/b8fde394-edc9-8bf2-8019-642c8a03634f.png)

私は[typowiki Template](https://www.dokuwiki.org/template:typowiki)というテンプレートが気に入りました。
sidebarがページの目次の下に配置されるので、横幅が節約できてスマートです。

### アクセスコントロール管理
管理ページでアクセスコントロール管理が簡単にできます。
![スクリーンショット 2025-02-03 23.06.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/202602/ee42f474-20bf-710f-1d98-acf03bc65b6f.png)

デフォルトでは全てのユーザー`@ALL`に削除以外の編集権が付与されています。
`@ALL`は読取が適切かと思います。
`@user`には運用に適した権限を付与すればいいと思います。
WIKIの機動性を活かすには、削除以外の権利を与えるのが適切でしょう。


### macOS上のファイルのアクセス権
状況によっては、アクセス権がなくてファイルの編集や保存ができなくなる時があります。
強引ですが、dokuwikiフォルダ以下のアクセス権を777に変更します。
```
chmod -R 777 dokuwiki/
```
## おすすめのカスタマイズ
### WIKIのアイコン
DokuWikiのメディアマネージャーを使って、名前空間`wiki`の中に
- logo.png
- favicon.ico

を入れればアイコンとファビコンがカスタマイズできます。
![スクリーンショット 2025-02-03 23.28.21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/202602/946f58a3-f8c5-b98f-e5a1-6ca70dc2c58b.png)

### テンプレート
#### TypoWiki
https://www.dokuwiki.org/template:typowiki

sidebarがページの目次の下に配置されるので、横幅が節約できてスマートです。

### プラグイン
#### Cleanup Plugin
https://www.dokuwiki.org/ja:plugin:cleanup

ページやメディアの改訂履歴を定期的に削除してくれます。
WIKIサイトが改訂で肥大化しているときには有効かもしれません。
保存の期間は`サイト設定`のページで編集できます。

![スクリーンショット 2025-02-05 11.10.37.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/202602/a94cad3b-47a6-36fb-e6e9-a8004ada0e50.png)

設定値が`秒`なので、数式で入れるとわかりやすいですね。
![スクリーンショット 2025-02-05 11.09.07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/202602/cd9ef1f6-ff6a-2425-2827-0f0036e79106.png)
#### History Cleanup Plugin
https://www.dokuwiki.org/plugin:clearhistory

とってもお手軽な履歴削除のプラグインです。

![スクリーンショット 2025-02-05 11.19.02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/202602/8c9b84a7-facf-91c2-28ed-e40fc47f8b66.png)

設定はチェックボックスだけです。
一日一回履歴を消してくれます。

![スクリーンショット 2025-02-05 11.19.13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/202602/573f70c0-16da-e43d-2976-d0ef787893e6.png)


## 無事動作
これでDokuWikiがローカルサイト上に構築できました。
LAN上にある複数のMacからWIKIを編集することができます。
今回は自宅でこの環境を構築しましたが、職場で簡単な技術サイトを構築したりするときも便利そうですね。