閾ペディアことのは:MediaWikiの改造
提供: 閾ペディアことのは
このページは、閾ペディアことのはにおけるMediaWikiの改造・プラグイン追加などを記録したものである。
以下、レンタルサーバーhetemlにおける利用状況である。
目次
インストール
- 2007年2月3日、Download/ja - MediaWikiよりmediawiki-1.9.2.tar.gzをダウンロード、解答してそのままアップロード。configディレクトリのパーミッションを777にしてアクセス、設定を入力してインストール完了。config/LocalSettings.phpをmediawikiのルートにコピーして、稼働開始。普通に説明されているとおり。
- 初期設定時、メール関係の機能を全部disable。自分しか使わないので。
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:条件文#インストール参照
いろんな変更
スキンの変更
- 日本語・中国語を混在させるために、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に対応
ブックマーク関係ボタンに対応
このサーバー(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>
インターリンクをいじる
インターリンクをいじるには、データベースを直接書き換える。
- データベースに使用している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]