【保存版】Synology NASにプライベートWikiを作る!MediaWikiをwiki.kaylog.ioで公開するまで
はじめに|「あのコマンド、どこに書いたっけ……」問題 PCで開発や環境設定をしながら、こんな経験はありませんか? 「あれ、このエラー、前も解決したはずなんだけど……どこにメモしたっけ?」 そう、僕はずっとこの問題に悩んで …

目次12 items
目次#
- MediaWikiをDSMからインストールする
- セキュリティ警告を完全解決する(.htaccess編集)
- DBエラー「Error 1044」を解消する
- wiki.kaylog.ioで公開するための設定
- WikiTextとMarkdownの違いを知っておく
- まとめ
ステップ① MediaWikiをDSMからインストールする#
まずは基本から。DSMのパッケージセンターを開いて「MediaWiki」を検索してインストールするだけです。
インストールが完了したら、WebステーションでエイリアスとしてMediaWikiを確認できます。デフォルトでは http://[NASのIP]/mediawiki/ みたいなURLでアクセスできる状態になっています。
この段階ではまだセットアップウィザードが走るだけなので、焦らず進めていきましょう。
ステップ② セキュリティ警告を完全解決する(.htaccess編集)#
インストール後、管理画面を開くとこんな警告が表示されました:

「え、インストールしたばっかりなのにもう脆弱性……?」
落ち着いて確認すると、images/ ディレクトリに配置されている .htaccess の設定が古くて、PHPファイルの実行制限が不十分だったのが原因でした。
修正手順#
SSHでNASにログインして(またはFile Stationから)、以下のファイルを編集します:
/volume1/web_packages/mediawiki/images/.htaccess修正前の内容(デフォルト):
<IfModule headers_module>
Header set X-Content-Type-Options nosniff
</IfModule>
<IfModule php7_module>
php_flag engine off
</IfModule>
<IfModule php_module>
php_flag engine off
</IfModule>
RemoveHandler .php
<FilesMatch "\.ph(p[3457]?s?|tml)$">
SetHandler None
</FilesMatch>修正後の内容:
<IfModule headers_module>
Header set X-Content-Type-Options nosniff
</IfModule>
<IfModule php7_module>
php_flag engine off
</IfModule>
<IfModule php_module>
php_flag engine off
</IfModule>
RemoveHandler .php .php3 .php4 .php5 .php7 .phtml .pht .phps
<FilesMatch "\.ph(p[3-8]?s?|tml|t)$">
SetHandler None
<IfModule mod_authz_core.c>
Require all denied
</IfModule>
<IfModule !mod_authz_core.c>
Deny from all
</IfModule>
</FilesMatch>
Options -ExecCGI主な変更点は3つ。RemoveHandler の対象拡張子を増やしたこと、FilesMatch のパターンを最新のPHPバージョンまでカバーするよう拡張したこと、そして Require all denied と Options -ExecCGI でCGI実行自体を無効化したことです。
保存してMediaWikiの管理画面をリロードすると……警告が消えました!! 完全解決です。
ステップ③ DBエラー「Error 1044」を解消する#
セットアップウィザードを進めていくと、次のエラーで止まりました:
Error 1044: Access denied for user 'Kay'@'localhost' to database 'kaylog'
Query: CREATE DATABASE `kaylog` CHARACTER SET utf8「あー、DB作成権限がないやつだ……」
MySQLのユーザー Kay に、データベースを新規作成する権限が付いていなかったのが原因です。Synologyのパッケージ管理では、インストール時に自動でMySQLユーザーを作ってくれるんですが、権限が最小限に絞られていることがあります。
解決方法:phpMyAdminでSQLを実行#
DSMのパッケージセンターから「phpMyAdmin」を開いて、SQLタブで以下を実行します:
CREATE DATABASE `kaylog` CHARACTER SET utf8;
GRANT ALL PRIVILEGES ON `kaylog`.* TO 'Kay'@'localhost';
FLUSH PRIVILEGES;これで kaylog データベースを手動で作成しつつ、Kay ユーザーに必要な権限を付与できます。
その後、MediaWikiのセットアップウィザードに戻って「データベース名:kaylog」「ユーザー:Kay」で再実行 → インストール完了!!
ステップ④ wiki.kaylog.ioで公開するための設定#
ここが今回のハイライトです。QuickConnectのURL(quickconnect.to/xxxx)ではなく、ちゃんとした独自ドメインで公開したかったんです。
前提状況#
kaylog.io(ポート80/443):WordPressがすでに稼働中- MediaWikiはWebステーションのエイリアスとして同居
「WordPressと共存できるの?」 という不安がありましたが、結論から言うと全く問題なしです。Webステーションは仮想ホストで別ポータルを作れるので、ドメインが違えばポート競合しません。
手順#
1. Webステーションで新しいポータルを作成
Webステーション → ポータル → 作成で、wiki.kaylog.io(HTTP 80 / HTTPS 443)を新規追加します。アプリケーションとして「MediaWiki」を割り当てましょう。
2. CloudflareのDNS設定
wiki のAレコードを追加します。ここで重要なのがグレーの雲(DNSのみ) にすること!!
オレンジの雲(プロキシ経由)にしてしまうと、Let’s Encryptの証明書取得時にCloudflareのIPが見えてしまって、NASのIPにDV(ドメイン認証)が通りません。
3. Let’s Encryptの証明書取得
DSM → コントロールパネル → セキュリティ → 証明書 → 追加で、wiki.kaylog.io に対してLet’s Encryptの証明書を取得します。
4. LocalSettings.phpを編集する
ここが404解決の鍵です!!
SSHで以下のファイルを開きます:
/volume1/web_packages/mediawiki/LocalSettings.php以下の2行を修正します:
$wgServer = "https://wiki.kaylog.io";
$wgScriptPath = ""; // ← ここを空文字にする!デフォルトでは $wgScriptPath = "/mediawiki"; になっていますが、これをそのままにしておくと https://wiki.kaylog.io/mediawiki/index.php にリダイレクトされて404になります。独自ドメインのルートで動かす場合は必ず空文字にしましょう。
「これに気づくまで30分溶けた……」
5. 証明書の割り当て設定
DSM → コントロールパネル → セキュリティ → 証明書 → 設定 で、wiki.kaylog.io:80 と wiki.kaylog.io:443 に先ほど取得した証明書を割り当てます。
これで https://wiki.kaylog.io にアクセスすると……証明書警告なし、完璧に表示されました!!
ステップ⑤ WikiTextとMarkdownの違いを知っておく#
Wikiができあがったあと、「よし、いままでNotionに書いてたメモをコピペしよう!」と思ってMarkdownをそのまま貼り付けると……見事に崩れます。
MediaWikiはMarkdownではなく「WikiText」という独自記法を使っています。主な違いはこちらです:
| 要素 | Markdown | WikiText |
|---|---|---|
| 見出し(大) | ## 見出し |
== 見出し == |
| 見出し(小) | ### 見出し |
=== 見出し === |
| 箇条書き | - リスト |
* リスト |
| 番号リスト | 1. 番号 |
# 番号 |
| 太字 | **太字** |
'''太字''' |
| リンク | [text](URL) |
[URL text] |
| URLをそのまま表示 | 自動リンクになることも | <nowiki>URL</nowiki> |
まとめ#
- MediaWikiはDSMのパッケージセンターから簡単にインストールできます:ただしセキュリティ警告とDBエラーはほぼ確実に踏むので、この記事の手順を参考にしてください。
- WordPressと同じNASで完全共存できます:Webステーションの仮想ホスト機能を使えばポート競合しません。既存の
kaylog.ioへの影響もゼロです。 - 独自ドメイン公開の鍵は
$wgScriptPath = "";:ここを空にしないと404地獄に落ちます。Cloudflareはグレーの雲(DNSのみ)でLet’s Encryptを通してから設定しましょう。
締めの一言#
「ナレッジが散らばる問題」、Synology NASを持っているなら完全解決できます。
これからNASの設定手順だけじゃなくて、カメラのセットアップメモ、Lightroomのプリセット管理フロー、機材リストなんかも全部ここに集約していく予定です。「NASが自分専用の脳みそ」 になる感覚、最高ですよ。
Synologyユーザーで同じ悩みを抱えている方、ぜひ試してみてください!!