先日ドコモの 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 が思い浮かんだのでグラフィック系かと思いましたが、違うようです。
とりあえずこれを入れたら動いたので一件落着。