閾ペディアことのは:MediaWikiの改造
このページは、閾ペディアことのはにおけるMediaWikiの改造・プラグイン追加などを記録したものである。
以下、レンタルサーバーhetemlにおける利用状況である。
目次
インストール
- 2007年2月3日、Download/ja - MediaWikiよりmediawiki-1.9.2.tar.gzをダウンロード、解答してそのままアップロード。configディレクトリのパーミッションを777にしてアクセス、設定を入力してインストール完了。config/LocalSettings.phpをmediawikiのルートにコピーして、稼働開始。普通に説明されているとおり。
- 初期設定時、メール関係の機能を全部disable。自分しか使わないので。
バージョンアップ
- とりあえず、いろいろとバックアップを取っておく。データベースは当然として、特に改造したファイルはどれか覚えておくこと(スキンや拡張など)。
- 新しいバージョンをアップロードしていく。本当は全部削除→全部アップロードがよいのだが、上書きインストールでも何とかなりそう(ならなかったらやり直し)。
- アップロードが済んだら、LocalSettings.phpを一旦削除して、設定をし直す。そして、新しいLocalSettings.phpを古いものと比較して必要な設定を復活させる。バージョンが変わると設定の表記も変わることがあるので注意。
- 2009/08/27 ver.1.15.1にバージョンアップ。
LocalSettings.phpの設定変更
Manual:Configuration settings/ja - MediaWiki
- アップロード可能にする
- $wgEnableUploads = true; に変更
- 自分しか編集できなくする……以下の行を追記
- 匿名ユーザの編集禁止
- $wgGroupPermissions['*']['edit'] = false;
- 新規ユーザの登録停止
- $wgGroupPermissions['*']['createaccount'] = false;
- ロゴ画像の変更……以下の行を追記して、同所にロゴ画像アップ
- $wgLogo = "/wiki/images/leavespedia.png";
- Faviconの変更……同じく
- $wgFavicon = "/wiki/favicon.ico";
- タイムゾーン変更
- $wgLocalTZoffset = "+9";
- 条件文を使えるようにするには、Wikipedia:Wikipedia:条件文#インストール参照
各種エラー対応
まずはManual:Errors and Symptoms/ja - MediaWikiを参照すること。
- 画像サムネイルが表示できない
- データベースをMySQL4からMySQL5に移行すると、いわゆる半角英数以外の文字を含む画像のサムネイルが働かなくなる。
- この対処として、ImageMagickを使わない設定にすれば表示されるようになる。
- $wgUseImageMagick = false;
- →最新版バージョンアップ(ver.1.12以降)によって、ImageMagickが使えるようになった。LocalSettings.phpにて
- $wgShellLocale = "en_US.utf8";
- が追加され、これによってImageMagickのエラーが回避されるようになった。
いろんな変更
スキンの変更
- 日本語・中国語を混在させるために、MS UIゴシックを最優先とするフォント指定。これはスキンcssファイル(skins/monobook/main.css)のbody 設定に以下の一行を追加
- font: x-small "ヒラギノ角ゴ Pro W3","Osaka-UI","Osaka","MS UI Gothic","Arial Unicode MS", sans-serif;
Google Sitemapに対応
→2010年1月6日、Extension:ManualSitemap - MediaWikiをインストールした。詳細はExtension:ManualSitemapを参照のこと。
ブックマーク関係ボタンに対応
このサーバー(heteml)では<?php print htmlspecialchars($_SERVER['REQUEST_URI']);?>">を使うことで対処できた。
- <a href="http://b.hatena.ne.jp/entrylist?url=http://www.kotono8.com/wiki/"><img src="http://b.hatena.ne.jp/bc/de/http://www.kotono8.com/wiki/" class="bcounter" alt="閾ペディアことのはのはてなブックマーク数" title="閾ペディアことのはのはてなブックマーク数"></a>
- <a href="http://b.hatena.ne.jp/entry/http://www.kotono8.com<?php print htmlspecialchars($_SERVER['REQUEST_URI']);?>"><img src="http://b.hatena.ne.jp/entry/image/http://www.kotono8.com<?php print htmlspecialchars($_SERVER['REQUEST_URI']);?>"></a><br />
- <a href="http://b.hatena.ne.jp/entry/http://www.kotono8.com<?php print htmlspecialchars($_SERVER['REQUEST_URI']);?>" target="_blank"><img src="http://d.hatena.ne.jp/images/b_entry.gif" width="16" height="12" style="border: none;" alt="このエントリーを含むはてなブックマーク" title="このエントリーを含むはてなブックマーク" />はてなブクマに追加</a><br />
- <a href="http://del.icio.us/1?url=http://www.kotono8.com<?php print htmlspecialchars($_SERVER['REQUEST_URI']);?>" target="_blank"><img alt="del.icio.usに追加" src="http://www.kotono8.com/image/de.png" width="12" height="12" /> del.icio.us に追加</a><br />
- <a href="http://1470.net/mm/memo_form.html?url=http://www.kotono8.com<?php print htmlspecialchars($_SERVER['REQUEST_URI']);?>" target="_blank"><img alt="MM/Memoに追加" src="http://www.kotono8.com/image/mm.png" width="21" height="12" /> MM/Memo に追加</a><br />
- <a href="http://newsing.jp/nbutton?title=<?php $this->data['displaytitle']!=""?$this->html('title'):$this->text('title') ?>&url=http://www.kotono8.com<?php print htmlspecialchars($_SERVER['REQUEST_URI']);?>"><img src="http://www.kotono8.com/image/newsingit_s.gif" width="16" height="16" alt="newsing it!" title="newsing it!" border="0" align="absmiddle" />newsing it!</a><br />
- <iframe src="http://newsing.jp/newsingit?url=http://www.kotono8.com<?php print htmlspecialchars($_SERVER['REQUEST_URI']);?>&title=<?php $this->data['displaytitle']!=""?$this->html('title'):$this->text('title') ?>" scrolling="no" marginheight="0" marginwidth="0" frameborder="0" height="18" width="122" style="margin:0;padding:0;"></iframe>
- <a href="http://buzzurl.jp/entry/http://www.kotono8.com<?php print htmlspecialchars($_SERVER['REQUEST_URI']);?>"><img src="http://buzzurl.jp/static/image/api/icon/add_icon_big_02.gif"></a><a href="http://buzzurl.jp/entry/http://www.kotono8.com<?php print htmlspecialchars($_SERVER['REQUEST_URI']);?>"><img src="http://api.buzzurl.jp/api/counter/http://www.kotono8.com<?php print htmlspecialchars($_SERVER['REQUEST_URI']);?>"></a><br />
- <a href="http://clip.livedoor.com/redirect?link=http://www.kotono8.com<?php print htmlspecialchars($_SERVER['REQUEST_URI']);?>&title=閾ペディアことのは%20-%20<?php $this->data['displaytitle']!=""?$this->html('title'):$this->text('title') ?>" class="ldclip-redirect" title="この記事をクリップ!" target="_blank"><img src="http://parts.blog.livedoor.jp/img/cmn/clip_16_16_b.gif" width="16" height="16" alt="この記事をクリップ!" style="border: none;vertical-align: middle;" /><img src="http://image.clip.livedoor.com/counter/http://www.kotono8.com<?php print htmlspecialchars($_SERVER['REQUEST_URI']);?>" />LivedoorClip</a><br />
- <a href="javascript:location.href='http://bookmark.fc2.com/user/post?url='+encodeURIComponent(location.href)+'&title='+encodeURIComponent(document.title)" title="FC2ブックマークへ追加"><img alt="FC2ブックマーク" src="http://bookmark.fc2.com/images/add-16.gif" width="16" height="16" border="0" />FC2ブックマークへ追加</a>
- 2009/08/27、上記のボタンを「AddClips」に統合してすっきりさせた。
インターリンクをいじる
インターリンクをいじるには、データベースを直接書き換える。
- データベースに使用しているmysqlにログインする。hetemlの場合、phpMyAdminにアクセス可能。
- MediaWikiが使用しているデータベースを選択する。
- インターウィキのテーブル(mw_interwiki……プレフィクスのmwは設定による)に、追加したいサイトの内容を追加する。たとえば……
- インターウィキ名: kotonoha
- サイトURL: http://www.kotono8.com/wiki/(記事名)
- iw_prefixにOthersite、iw_urlにhttp://www.kotono8.com/wiki/$1 、iw_localとiw_transはいずれも0
以下のように変更した。
- wikipedia http://ja.wikipedia.org/wiki/$1
- wikipedia:言語学で日本語wikipedia該当項目へ。
- wikipedia:en:linguisticで英語wikipedia該当項目へ。
- amazon http://amazon.co.jp/o/ASIN/$1/kotonoha0b-22/ref=nosim
- amazon:B000657LF6を書けばアソシエイトつきリンク。
- did http://d.hatena.ne.jp/$1
- did:matsunagaでそのはてなidを持つ人の日記にリンク。
- did:matsunaga/20070212#1171241795も可能だがここまで長かったらあまり意味がないかも。
- インターリンク名は二文字では効かないので3文字以上にする。id:matsunagaやd:id:ではうまくいかない。
- question http://q.hatena.ne.jp/$1
- question:1170718014でその質問番号の人力検索にリンク。
インターフェイス部分の変更
自動Amazon広告を入れる
- amzlshで作成したタグを、skins/MonoBook.phpのどこかに記入。
- Amazon Search 導入支援ツール :: Drk7jpで作成したタグを、skins/MonoBook.phpのどこかに記入。
YouTubeを貼り付け可能にする
<youtube>ZtYe04kB95Y</youtube>
「index.php」が含まれないショートURLにする
hetemlサーバーにおいては少々試行錯誤が必要だった。
LocalSettings.phpと、MediaWikiをインストールしたフォルダの.htaccessに追記する。
- LocalSettings.phpの書き換え
## PHPをCGIモジュールとして使用している場合、厄介なURLを使う $wgScriptPath = "/wiki"; $wgScript = "$wgScriptPath/index.php"; $wgRedirectScript = "$wgScriptPath/redirect.php"; $wgArticlePath = "$wgScriptPath/$1"; </source> もしルートディレクトリにインストールしていて、サブディレクトリを使っていない場合は以下のとおり。 <pre> ## If using php 5.2.4 (cgi) Currently default on 1and1 $wgScriptPath = ""; $wgScript = "$wgScriptPath/index.php"; $wgRedirectScript = "$wgScriptPath/redirect.php"; $wgArticlePath = "$wgScriptPath/$1";
- .htaccessの書き換え
MediaWikiの解説では、まず「wikiをインストールしたディレクトリではなくルートディレクトリ」の.htaccessを書き換えるように指定されているが、hetemlサーバーではうまくいかなかった。したがって、wikiをインストールしたディレクトリの.htaccessに次の記述を加えることで成功した。
RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.+)$ index.php?title=$1 [L,QSA]
表紙に検索ボックスを設置する
表紙右上に検索ボックスを入れようと思ったところ、InputBoxのExtensionが使われていることがわかった。
ファイルを4つアップロードし、LocalSettings.phpの設定を書き換える。ただし、古いバージョンでは作動しないので、MediaWikiそのものを最新版に更新した方がよい。
フォーマットされたソースコードを表現するsourceタグを使えるようにする
フォーマットされたソースコードを表現するsourceタグを追加するために、Extension:SyntaxHighlight GeSHi/ja - MediaWikiプラグインを導入。