ドコモのOpenIDログインでエラー

先日ドコモの OpenID を使用したログインシステムを作る機会が有ったのですが。

行き詰まりました。

めちゃくちゃ悩みました。

ネット世界を這いずり回ってようやく答えを見つけたので記録。

まず、症状としては下記のような init って関数が無いってエラーが出る。

Call to a member function init() on a non-object

エラー箇所は「Auth/OpenID/DiffieHellman.php」の 60 行目(バージョンによって行数違うかも)

たぶん php 5.4 以降を使用すると発症すると思われる。

そしてようやく見つけたのが下記のサイト。
⇒ http://dbcls.rois.ac.jp/~yayamamo/fsyl/2010/07/openid-%E3%81%A7-semantic-media-wiki-%E3%81%AB%E3%83%AD%E3%82%B0%E3%82%A4%E3%83%B3/

どうやら curl と DOM の他に GMP というライブラリを必要とするらしい。

しかもこれ、OpenID のドキュメントにちゃんと書いてあるそう・・・

ドコモ関係なく、普通に OpenID のインストールで失敗するというね。

恥ずかしい・・・

手順は ./configer の際にオプションで –with-gmp を付けるだけ。

あとは make して make install して完了。

ちなみに自分は make check しない派です。

紹介してるサイトでは「GMP ライブラリをインストールして」とかやってますが、自分はオプション付けるだけで動きました。

ちなみに GMP は算術に使用される関数ライブラリらしいです。

見た瞬間は GIMP が思い浮かんだのでグラフィック系かと思いましたが、違うようです。

とりあえずこれを入れたら動いたので一件落着。


コメントを残す