Extension:OpenIDをxreaで動かす

提供: 何かしら図書館

Extension:OpenIDを導入することでMediaWikiでもOpenIDを使用することが出来ます。ここではxrea(coreserver)でExtension:OpenIDを使用する手順を紹介します。

注意
ここでは、MediaWiki 1.14.0 + Extension:OpenID 0.8xを使用しています。最新Ver.での動作は保証しません。

目次

[編集] インストール

[編集] Extension:OpenIDを入れる

ここから自分が使用しているMediaWikiのバージョンに合うextensionをダウンロードしてください。Development version(trunk)は使用しちゃだめ。動かないと思う(それっぽいことが起こっていた)。
ダウンロードしたファイルを解凍すると、OpenIDという名前のフォルダが出てきます。それをMediaWikiのルートディレクトリにあるextensionフォルダに入れてください。
また、OpenIDフォルダに入っているopenid_table.sqlをデータベースにインポートしてください。その後で、LocalSettings.phpに以下を追記してください。

require_once("$IP/extensions/OpenID/OpenID.setup.php");


[編集] PHP OpenIDを入れる

ここからLatest Releasesの2.x.xをダウンロードしてください。ファイルを解凍したあと、そのフォルダ内にAuthというフォルダがあります。
これをフォルダごとMediaWikiのインストールディレクトリに入れてください。
PHP OpenIDで使用するのはAuthのみです。


[編集] 仕上げ

$wgOpenIDConsumerStorePath$wgOpenIDServerStorePathをLocalSettings.phpに追記してください。 たとえば、こんな感じに。この場合、MediaWikiのインストールディレクトリにtmpというディレクトリを使用する、ことになります。

$wgOpenIDConsumerStorePath = 'tmp/openid-consumer/';
$wgOpenIDServerStorePath = 'tmp/openid-store/';


ちなみに、OpenID.setup.phpにある該当項目を編集すれば、LocalSettings.phpに追記する必要はなくなります。
ここから重要
先ほど指定したtmp/openid-consumer/, openid-storeはあらかじめ作っておきます。また、openid-consumer下にassociations, nonces, tempの3つのディレクトリを作成し適切なパーミッション(707くらい)を設定してください。これをしないままにログインしようとすると、認証に失敗することになり更にはディレクトリがapache側で生成され自分で弄れなくなるという事態に発展します。


[編集] Special:OpenIDConvertを使えるようにする

Special:OpenIDConvertとは、既存のMediaWikiアカウントと外部のOpenIDとを関連づけるものです。これを利用することでユーザーページ(利用者:***)に関連づけたOpenID URLが表示されます。なお、一度OpenIDでログインした場合、そのOpenIDアカウントは関連付けることが出来ません。


$wgOpenIDServerStorePath = 'tmp/openid-store/';

このディレクトリが使用されます。使えるようにするには、associations, nonces, tempの3つのディレクトリを作成し適切なパーミッションを設定します。consumerとまったく同じです。

[編集] $wgOpenIDClientOnly

$wgOpenIDClientOnlyとは、MediaWikiのユーザーページをOpenIDとして利用できるようにするか否かを設定するものです。デフォルトではfalseとなっており、このままだとhttp://example.com/User:UserID(利用者ではなくUser)がOpenID URLとして使えるようになります。trueにするとOpenIDとして使用できなくなります。


[編集] mixi OpenIDを使えるようにする

-mixi OpenIDのサンプルコードをPHP OpenID Libraryを使って動かしてみた(訂正) ここの<サーバーのroot権限がない方>が楽。 また、ParanoidHTTPFetcher.phpを開いて、以下をcurl_exec($c);の直前(2カ所あります)に挿入すること。

if ($this->isHTTPS($url)) {
 curl_setopt ($c, CURLOPT_SSL_VERIFYPEER, true);
 curl_setopt ($c, CURLOPT_CAINFO, 'mixi.jp.crtのパス');
}
ブラウザ
Google AdSense
個人用ツール