【保存版】Synology NASにプライベートWikiを作る!MediaWikiをwiki.kaylog.ioで公開するまで

Synology

はじめに|「あのコマンド、どこに書いたっけ……」問題

PCで開発や環境設定をしながら、こんな経験はありませんか?

「あれ、このエラー、前も解決したはずなんだけど……どこにメモしたっけ?」

そう、僕はずっとこの問題に悩んでいました。NotionにメモしたりAppleメモに書いたり、Slackの自分チャンネルに投げてみたり……「どこに書いたか迷子」 状態が慢性化していたんです。特にNASの設定手順とか、カメラのRAWワークフローとか、技術的なTipsは後から絶対見返すのに、散らばりすぎて見つからない!!

そこで思ったわけです。「自分専用のWikiを作ればいいじゃないか」 と。

Synology NASにはもともと「MediaWiki」をインストールできるパッケージが用意されていて、WordPressと共存させながら独自ドメインで公開することも全然できます。しかも外部から https://wiki.kaylog.io でアクセスできるので、外出先でもサッと参照できる。完全に自分だけのナレッジベースですよ、これは。

今回は、MediaWikiのインストールから、セキュリティ警告の対処、DBエラーの解消、独自ドメイン公開まで、実際にハマったポイント込みで全部解説します。保存版でどうぞ!


目次

  1. MediaWikiをDSMからインストールする
  2. セキュリティ警告を完全解決する(.htaccess編集)
  3. DBエラー「Error 1044」を解消する
  4. wiki.kaylog.ioで公開するための設定
  5. WikiTextとMarkdownの違いを知っておく
  6. まとめ

ステップ① MediaWikiをDSMからインストールする

まずは基本から。DSMのパッケージセンターを開いて「MediaWiki」を検索してインストールするだけです。

インストールが完了したら、WebステーションでエイリアスとしてMediaWikiを確認できます。デフォルトでは http://[NASのIP]/mediawiki/ みたいなURLでアクセスできる状態になっています。

🔍 Kay’s Check: WebステーションはDSM 7.2以降の場合、「Web Station」アプリから確認できます。「仮想ホスト」と「PHPプロファイル」が正しく紐付いているかも確認しておきましょう。

この段階ではまだセットアップウィザードが走るだけなので、焦らず進めていきましょう。


ステップ② セキュリティ警告を完全解決する(.htaccess編集)

インストール後、管理画面を開くとこんな警告が表示されました:

警告:アップロードの既定ディレクトリ /volume1/web_packages/mediawiki/images/ に、任意のスクリプト実行に関する脆弱性があります。

「え、インストールしたばっかりなのにもう脆弱性……?」

落ち着いて確認すると、images/ ディレクトリに配置されている .htaccess の設定が古くて、PHPファイルの実行制限が不十分だったのが原因でした。

修正手順

SSHでNASにログインして(またはFile Stationから)、以下のファイルを編集します:

/volume1/web_packages/mediawiki/images/.htaccess

修正前の内容(デフォルト):

apache

<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>

修正後の内容:

apache

<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 deniedOptions -ExecCGI でCGI実行自体を無効化したことです。

保存してMediaWikiの管理画面をリロードすると……警告が消えました!! 完全解決です。

🔍 Kay’s Check: .htaccess の編集はFile Stationのテキストエディタでできないので、SSH(sudo vi)を使うか、一旦ダウンロードしてテキストエディターで編集してアップロードするのがおすすめです。バックアップを取ってから編集しましょう。


ステップ③ 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タブで以下を実行します:

sql

CREATE DATABASE `kaylog` CHARACTER SET utf8;
GRANT ALL PRIVILEGES ON `kaylog`.* TO 'Kay'@'localhost';
FLUSH PRIVILEGES;

これで kaylog データベースを手動で作成しつつ、Kay ユーザーに必要な権限を付与できます。

その後、MediaWikiのセットアップウィザードに戻って「データベース名:kaylog」「ユーザー:Kay」で再実行 → インストール完了!!

🔍 Kay’s Check: FLUSH PRIVILEGES; を忘れずに。これを実行しないと権限変更がすぐ反映されないことがあります。


ステップ④ 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(ドメイン認証)が通りません。

🔍 Kay’s Check: Let’s Encryptの取得が終わったら、オレンジの雲に戻してもOKです。ただし証明書更新のタイミングで同じ問題が起きるので、グレーのままのほうが管理が楽です。

3. Let’s Encryptの証明書取得

DSM → コントロールパネル → セキュリティ → 証明書 → 追加で、wiki.kaylog.io に対してLet’s Encryptの証明書を取得します。

4. LocalSettings.phpを編集する

ここが404解決の鍵です!!

SSHで以下のファイルを開きます:

/volume1/web_packages/mediawiki/LocalSettings.php

以下の2行を修正します:

php

$wgServer = "https://wiki.kaylog.io";
$wgScriptPath = "";  // ← ここを空文字にする!

デフォルトでは $wgScriptPath = "/mediawiki"; になっていますが、これをそのままにしておくと https://wiki.kaylog.io/mediawiki/index.php にリダイレクトされて404になります。独自ドメインのルートで動かす場合は必ず空文字にしましょう

「これに気づくまで30分溶けた……」

5. 証明書の割り当て設定

DSM → コントロールパネル → セキュリティ → 証明書 → 設定 で、wiki.kaylog.io:80wiki.kaylog.io:443 に先ほど取得した証明書を割り当てます。

これで https://wiki.kaylog.io にアクセスすると……証明書警告なし、完璧に表示されました!!

Kay’s Voice: WordPressが動いているNASと同居できて、しかも独自ドメインで証明書付き公開まで無料でできます。Synologyのパッケージ環境、本当によくできていますね。


ステップ⑤ WikiTextとMarkdownの違いを知っておく

Wikiができあがったあと、「よし、いままでNotionに書いてたメモをコピペしよう!」と思ってMarkdownをそのまま貼り付けると……見事に崩れます

MediaWikiはMarkdownではなく「WikiText」という独自記法を使っています。主な違いはこちらです:

要素MarkdownWikiText
見出し(大)## 見出し== 見出し ==
見出し(小)### 見出し=== 見出し ===
箇条書き- リスト* リスト
番号リスト1. 番号# 番号
太字**太字**'''太字'''
リンク[text](URL)[URL text]
URLをそのまま表示自動リンクになることも<nowiki>URL</nowiki>

🔍 Kay’s Check: MediaWiki拡張機能の「VisualEditor」を有効にすると、Wikiを書くのが格段に楽になります。WordのようなGUIで編集できるので、WikiTextを覚えなくてもOKです。パッケージセンターではなくMediaWiki管理画面の「拡張機能」から有効化できます。


まとめ

  1. MediaWikiはDSMのパッケージセンターから簡単にインストールできます:ただしセキュリティ警告とDBエラーはほぼ確実に踏むので、この記事の手順を参考にしてください。
  2. WordPressと同じNASで完全共存できます:Webステーションの仮想ホスト機能を使えばポート競合しません。既存の kaylog.io への影響もゼロです。
  3. 独自ドメイン公開の鍵は $wgScriptPath = "";:ここを空にしないと404地獄に落ちます。Cloudflareはグレーの雲(DNSのみ)でLet’s Encryptを通してから設定しましょう。

締めの一言

「ナレッジが散らばる問題」、Synology NASを持っているなら完全解決できます。

これからNASの設定手順だけじゃなくて、カメラのセットアップメモ、Lightroomのプリセット管理フロー、機材リストなんかも全部ここに集約していく予定です。「NASが自分専用の脳みそ」 になる感覚、最高ですよ。

Synologyユーザーで同じ悩みを抱えている方、ぜひ試してみてください!!

コメント

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