インストール終わった後に、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を
インストールしないといけないと思うのですが
インストール方法などわかりますでしょうか?
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 を持っているから、そっちを使え」みたいな回答になっています。
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自体はプログラム動いております。
which php
/usr/bin/php
でしたたね、
pecl install zip-1.10.2.tgz
などは通常に出来るんですよね・・
jsonだけはまってます。
http://www.orsp.net/blog/archives/1842
php-develが入ってないんでしょうか。
リンク先はdebian系なので
centOSだとyum install php-develとか?
いろいろ、回答ありがとうございます。
PHPはソースからビルドしたので、yumで
develは特に入れてないです。
むしろ、yumで勝手に古い、phpをインストールされるので
実行出来ないかもですね。
ありがとうございます。
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 を持っているから、そっちを使え」みたいな回答になっています。
いろいろ、検証および調査ありがとうございました。
こちらで問題なく完了しましたー。
いろいろ、検証および調査ありがとうございました。
こちらで問題なく完了しましたー。