ドコモの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が思い浮かんだのでグラフィック系かと思いましたが、違うようです。

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


コメントを残す