2008年12月24日

PHP OpenIDで…というよりcURLで…というよりPHPで。

PHP OpenIDをwindowsで試してみました。バージョンは2.1.2。
PHPは5.2.3。

\examples\consumerを試して見ましたが、livedoorのOpenIDではそのままでは認証できませんでした。

いろいろなサイトを参考にして、Yahoo!とかlivedoorとかはてなとかで試してみたら、はてなはこんなにしたら認証できた!



<?
if (!strncmp(PHP_OS, 'WIN', 3)) {
define('Auth_OpenID_RAND_SOURCE', NULL);
}
define('Auth_Yadis_CURL_OVERRIDE', '1');

require_once "common.php";

でもはてなだけ。livedoorはダメ。Yahoo!もダメ。

なんだろう?

結局

define('Auth_Yadis_CURL_OVERRIDE', '1');

は関係なかった。

これはPHPでcURLが使えない場合こうしたら…という事だったのですが、はてなには無関係でした。あらら?

PHPのcURL関数のマニュアル(PHPのその他のサービスの下ね)をみると、「windowsの場合はlibeay32.dllが…」のようなめんどくさそうな事が書いてあったので、使わない方法というのを試してみたわけですが、関係ありませんでした。あと、マニュアルに書いてあることは別に面倒くさいことではなくて、他にどこかからライブラリを持ってくる必要はないですよ!という事が言いたかったようです。libeay32.dllとssleay32.dllはc:\phpに元々入っているのです。


ではcURL関数を使えるようにすれば他のOpenIDも?と思ってマニュアルにあるように

  • libeay32.dll、ssleay32.dllをPATHの通った所に置く

  • php.iniの;extension=php_openssl.dllの先頭のコロンを削除する


とするわけです。

php.iniを修正して、apacheの再起動をしたですよ。そうすればphpinfo()で、cURLの項目が出るはずです。が、出てきませんでした。

c:\phpにPATHは通っているしなぁと思ってふと

which libeay32.dll

を実行したら(cygwinて便利ですね!)、別にインストールしていた

C:\ruby\bin\libeay32.dll

が出てきてしまいました!

これだ!と思って、PATHの順番を

C:\ruby\bin;.....C:\php;...

から

C:\php;...C:\ruby\bin;.....

に入替えて、PCを再起動して、phpinfo()でどうだ!と思ったら、まだ出てきませんでした。一体これは???


で、ここにいたってapacheのerror.logをもう一度見てみることにしたら、こんな事に!!

PHP Warning: PHP Startup: curl: Unable to initialize module\nModule compiled with module API=20050922, debug=0, thread-safety=1\nPHP compiled with module API=20060613, debug=0, thread-safety=1\nThese options need to match\n in Unknown on line 0

実は他にエラーが出ている所があって、それは別にいいやって放っておいたのがあったのです。こんなの

[Wed Dec 24 15:18:45 2008] [error] python_init: Python version mismatch, expected '2.5', found '2.5.1'.

で、cUrlのワーニングは先頭に日時とかが出ないので、このエラーの続きだと思ってしまっていて無視していたわけです。あぁ。


それで、これは何だという事になるのですが、c:\phpのフォルダを見ると、他のdllと全然日付が違うのです。どうやら古いバージョンのphpに上書きしてインストールしたらこうなった??昔の事だから覚えていない…。PHPの今使っているバージョンのzipをダウンロードして(ここから)、libeay32.dllとssleay32.dllとext\php_curl.dll、ext\php_openssl.dllを解凍してc:\phpとc:\php\extに上書きしてapacheを再起動してphpinfo()にcURLの項目が出るようになりました。

curl
+------------------+------------------------------------------+
| cURL support | enabled |
| cURL Information | libcurl/7.16.0 OpenSSL/0.9.8e zlib/1.2.3 |
+------------------+------------------------------------------+

でも、相変わらずlivedoorとYahoo!は認証してくれませんでした。


続く…。
posted by ほえ at 15:38| Comment(0) | TrackBack(0) | PHP | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:


この記事へのトラックバック
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。