人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

現在、CentOs5.5でPHP5.3.6をインストールしたのですが
インストール終わった後に、php -v を行うと
PHP Warning: PHP Startup: json: Unable to initialize module
Module compiled with module API=20060613
PHP compiled with module API=20090626
These options need to match
in Unknown on line 0

となってしまいます。
pecl install json を実行したのですが、
downloading json-1.2.1.tgz ...
Starting to download json-1.2.1.tgz (17,780 bytes)
......done: 17,780 bytes
11 source files, building
running: phpize
Cannot find config.m4.
Make sure that you run '/usr/bin/phpize' in the top level source directory of the module
ERROR: `phpize' failed
となってしまいます。
php -m で見ると、jsonは1.2.1でインストールされているのですが
PHP Warning:の表示をされないようにするのは、json.soを
インストールしないといけないと思うのですが
インストール方法などわかりますでしょうか?


●質問者: hopefully
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:11 API Building config Download
○ 状態 :終了
└ 回答数 : 4/4件

▽最新の回答へ

1 ● JULY
●14ポイント

PECL - The PHP Extension Community Library [dozo dokuwiki.php]

上記ページの「PECL ハマリポイント」-「PHPのバージョンアップ」に書かれている問題(php.ini の extension_dir に関する問題)のように思われますが、どうでしょうか?

◎質問者からの返答

pecl install zip-1.10.2.tgz

で、やったら、

PHP Warning: PHP Startup: zip: Unable to initialize module

Module compiled with module API=****

PHP compiled with module API=****

These options need to match

in Unknown on line 0

は解消されました。

推測で申し訳ないのですが、jsonも問題は

Module compiled with module APIとPHP compiled with module API

の日付が一致してないのが駄目なのかなって思うのですが。。

コマンドから実行するときや、apache再起動時に

メッセージが上がってくるのです。

PHP自体はプログラム動いております。


2 ● la-la-land
●29ポイント

http://se-suganuma.blogspot.com/2008/07/phpjsondecode-jsonencode.html

ここは参考になりませんか

◎質問者からの返答

which php

/usr/bin/php

でしたたね、

pecl install zip-1.10.2.tgz

などは通常に出来るんですよね・・

jsonだけはまってます。


3 ● la-la-land
●1ポイント

http://www.orsp.net/blog/archives/1842

php-develが入ってないんでしょうか。

リンク先はdebian系なので

centOSだとyum install php-develとか?

◎質問者からの返答

いろいろ、回答ありがとうございます。

PHPはソースからビルドしたので、yumで

develは特に入れてないです。

むしろ、yumで勝手に古い、phpをインストールされるので

実行出来ないかもですね。

ありがとうございます。


4 ● JULY
●56ポイント ベストアンサー

Scientific Linux 6 で、標準パッケージに含まれるの PHP(Ver 5.3.2。PEAR は 1.9.0)で試してみた所、同じ現象になりました。


で、json-1.2.1.tgz を展開して、その上で phpize を実行する分には、正常に実行されます。


で、なぜ pecl install json で失敗するのかを調べてみたのですが、分かったのは、pecl install json とした場合、phpize が呼び出された時点では、何故か package.xml しか展開されていませんでした。


確認方法は、phpize(実態はシェルスクリプト)の最初の方に「ls -al >/tmp/ls_result」という行を加えて pecl install json を実行し、/tmp/ls_result の中身を確認しました。


ファイルのダウンロードや展開は、PEAR 側の処理のようで、その部分は追っていないのですが、どうも、PEAR 側のバグのように思えます。ただ、json のパッケージが 2006 年と古いため、悪いのは PEAR 側なのか、json 側なのかは微妙です。


The open-source code library for PHP

英語ですが、上記ページに同様の現象が報告されていて、それに対する回答としては、「今時の PHP は自前で json を持っているから、そっちを使え」みたいな回答になっています。

◎質問者からの返答

いろいろ、検証および調査ありがとうございました。

こちらで問題なく完了しましたー。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ