• 締切済み

phpにてjsonの利用ができなくなりました

phpにてjsonの利用ができなくなりました yum phpインストール後 peclにてjsonをインストールし動いておりました。 ある時点よりPHPのjsonのエラーが出るようになり、プログラムが動かなくなりました。 解決方法わかる方いらっしゃいましたら、ご教授お願い致します。 エラー: PHP Fatal error: Call to undefined function json_encode() やってみたこと:  yum php やphp-devel、pecl でjsonを入れなおしたり、  php.ini php.d/json.ini を記述してみたり、  jsonのtar.gzを落としてコンパイルしておいてみたり  としたのですが、動きません. その他状況: ・php -m にてjsonが表示されますが ・phpinfo()ではjsonの項目が表示されません 怪しい点: 利用できなくなった前後で yum update で全てのアップデートを行っています。 よろしくお願いいたします。

  • PHP
  • 回答数2
  • ありがとう数6

みんなの回答

回答No.2

phpinfo()で表示される情報の、最初のほうの表の中に「Loaded Configuration File」という項目があると思いますが、これが現在実行しているPHPが参照しているphp.iniファイルになるのですが、 そのphp.ini内で、extensionを読むように記述されていますか? また、記述があるということだったら、今度はCentOSだと違うかもしれませんが、 /var/log あたりに保存されるApacheのエラーログとかを見てみて、なんか文句言われていないか確認してみてはいかがでしょう。

qpworuei
質問者

お礼

ご回答ありがとうございました。 遅くなりましたが、 php.iniにextension記述はありました。 またエラーログには特に出力はなく・・。 その他お気づきになられた点あればお願い致します!

  • samdeco
  • ベストアンサー率30% (6/20)
回答No.1

jsonではなくmysqlで同じような現象に悩んだことがあって その経験から言いますので外れてるかもですが、 パスが通っているディレクトリにphp.iniが2つ存在していませんかね? たとえば /etc配下と/usr配下にそれぞれあるとか。 #updatedb #locate php.ini とかで確認してみてください。

qpworuei
質問者

お礼

回答ありがとうございます! #updatedb #locate php.ini やってみたのですが、/etc の下に一つだけでした。 その他にも何か施せる術があればご教授お願いします。 CentOSなのですが、最悪、php5.2へアップデートを試みてみようかと考え中です。

関連するQ&A

  • php5-fpmでjson_encode()エラー

    json_encode()を有効にするにはどうしたらいいでしょうか? ・エラーメッセージ Error: Call to undefined function json_encode() File: /var/www/cake.net/lib/Cake/View/Helper.php Line: 516 ・環境 ubuntu13.10 nginx php5-fpm ※cakephpのチュートリアル勉強中です ・やったこと phpのインストール $ sudo aptitude install php5 php5-cgi php5-cli php5-mysql php5-gd php-apc php5-fpm php5-curl php5-json php5-dev $ php /var/www/hoge.com/app/webroot/phpinfo.php Loaded Configuration File→/etc/php5/fpm/php.ini $ sudo vim /etc/php5/fpm/php.ini 最後の行に extension=json.so 追加 $ sudo vim /etc/php5/mods-available/json.ini ; configuration for php json module priority=20 extension=json.so $ sudo service php5-fpm restart $ sudo service nginx restart -- 以上です jsonを扱ったことないので質問の仕方もあっているかどうかわかりませんが ubuntu+nginx環境のphp5-fpmでjsonを扱う場合はどうしたらいいでしょうか? phpinfo()して確認してもjsonの記述はModule Authorsのところにしか出てきません ご回答お待ちしております

    • ベストアンサー
    • PHP
  • php*.iniファイルが見当たらない!?

    こんにちは、kanpoです。 早速質問なんですが。。。 php.iniファイルが見当たりません。(?_?) phpはphp3なので、php3.iniかなと思い探しましたが やっぱりありません。 ただ、php3.ini-distというファイルは発見しました。 こちらを覗いたところphp3.iniファイルそのものの様な気がしたのですが。 こちらを編集し、”/usr/local/lib/"におけばいいんでしょうか? どなたか、ご教示お願いします。 環境: apache_1.3.17.tar.gz php-3.0.18-i18n-ja-2.tar.gz postgresql-7.0.3.tar.gz

    • ベストアンサー
    • PHP
  • phpinfoとphp -vのバージョンが違う

    お世話になります。 CENTOS4でPHP5をYUMからインストールしました。 centplusの値を変更してyumしたのでphp -v で php5.2の最新バージョンになっていました。 しかし、phpinfo.php(中身はphpinfo();)をみてみると、php4のままでした。ただ、php.iniの設定は反映されているらしく、url_fopenをonにしたりoffにしたりすることはできました。 ただ、phpinfoで表示されるものとphp -vで表示されるバージョンが異なるので、どうしたら一致させることができるか教えていただければとお願い申し上げます。

    • ベストアンサー
    • PHP
  • json_encode日本語表示/PHP5.2.5

    PHP5.2.5で、json_encodeした結果を日本語表示させたいのですが、どうすれば良いでしょうか? ・unicodeエスケープされた結果を、JSON形式のまま、元(Unicodeアンエスケープしていない状態)に戻すにはどうすれば良いでしょうか? ・あるいは、json_encodeを利用せず(?)に、ユーザー定義関数を利用する方法でもいけるのでしょうか?、 例えば、下記関数を5.2.5で動作させるには、どうすれば良いでしょうか? ▽PHPでUnicodeアンエスケープしたJSONを出力する関数 - オープンソースこねこね   http://kohkimakimoto.hatenablog.com/entry/2012/05/17/180738

    • ベストアンサー
    • PHP
  • PHPでpostgresql関数が利用できない

    PHPのバージョンアップ(4.1.2→4.3.1)をしたらpotgres関連の関数が利用できなくなりました。 (Fatal error: Call to undefined function: pg_connect() など) というか、phpinfo()でもpgsqlの表示がでません。バージョンアップする前のphpinfo()でConfigureの表示は--with-pgsql=sharedだったので、バージョンアップ時も同様にしてます。 php-pgsql-4.1.2-7.3.6というのがインストールされてるのですが、 これをphp-pgsql-4.3.xxxxxといったものにしなくてはならないのか? しかし、どこにあるのかわかりません・・・ php.iniのextension=pgsql.soが有効になってること、 pgsql.soがextension ディレクトリに存在していること、 コマンドラインからPostgresSQLに接続でいること、 以上の確認と Apache・PostgresSQLの再起動は行いました。 phpからPostgresSQLを利用できるようにする方法を教えてください。 (php-pgsql-4.3.xxxxxをインストールすべきであれば、DLできる場所) 以上、宜しくお願い致します。 【環境】 OS:RedHat7.2 httpd:apache-1.3.27 PostgresSQL:7.2.4

    • 締切済み
    • PHP
  • Fedora 8 PHPインストール先

    os:Fedora 8 php:5.2.4 はじめまして、Linux初心者です。 PHPでエラーがでます。「 PHP Fatal error: Call to undefined function mb_detect_encoding() 」 php.iniを変更しても上手くいきません。 phpinfoを見てもmbstringがありません。 Fedora 8ではPHPは入っていたので自分でインストールしていません。 phpの再インストールをしたいですがどこにインストールされているのか解りません。/usr/share/の中に/phpや/php-cli-5.2.4がありますが、/usr/share と考えてよろしいでしょうか。 どなたか解る方いたらよろしくお願いします。

  • phpを高速化するためにAPC(Alternatice PHP Cac

    phpを高速化するためにAPC(Alternatice PHP Cache)をインストールしたのですが、事情によりアンインストールすることになりました。 APCをインストールする際に下記もいっしょに入れた記憶があるのですが php-pear、php-devel、httpd-devel、gcc、gcc-c++ これらをすべて削除するにはどのようにしたらいいのでしょうか。 #pecl uninstall APC #uninstall php-pear #uninstall php-devel このような感じでいいのでしょうか?

  • phpで<?= $hoge ?>が動かない

    こんにちは、phpの設定について教えてください。 レンタルサーバ(xreaやロリポップ)で、 index.phpの中に<?= $hoge ?>というソースを埋め込んで、 $hogeの内容が反映されていたのですが、 この度、fedora core 12を入れたのですが、 ホームページのソースを見ると、内容が反映されず<?= $hoge ?>のままでです。 php.iniの設定が必要なのかわからないのですが、 ご存じの方いましたら、教えていただけないでしょうか。 また、 <?php  phpinfo(); ?> はちゃんと動いてくれてます。 fedora12にインストールする手順は、 http://fedorasrv.com/apache.shtmlを参照しました。 [root@fedora ~]# yum -y install httpd [root@fedora ~]# yum -y install php php-mbstring もしかしたら、他にもインストールするものがあるのでしょうか? よろしくお願い致します。

    • ベストアンサー
    • PHP
  • php.iniがない

    たびたびお世話になっております。 <環境> Red Hat Enterprise Linux ES v.4 PHP 4.4.2(cli) この度、Apache2とPHPとMySQLをソースからインストールしました。 どれもインストールが終わって、開発に進んだのですが php.iniのextension_dir の値を変更しようと思ったところ php.iniがありません。 # find / -name "php.ini" -ls で検索しましたが、表示されません。 でも、phpinfo()は表示されています。 ちょっと気になったのが、phpinfo()で表示される Configuration File (php.ini) Path が 「/usr/local/lib」となっていて、php.iniで終わっていないことです。 インストールの方法がまずかったのでしょうか? ご教授よろしくお願いいたします。

  • PHP7のphp.iniが読込みできない

    Windows7 64bitの C:\Apache24にApache2.4をインストールして、 C\php7にPHP7をインストールしました。 (php-7.1.1-Win32-VC14-x64.zipを解凍してできたフォルダをphp7にリネームしてC:\に置きました) それで、Apacheのhttpd.confやphp.iniの必要部分を書き換えて、 C:\Apache24\htdocsに <? phpinfo() ?> と記入したinfo.phpを置いて、Apacheを起動して、 ttp://127.0.0.1/info.phpにブラウザでアクセスしたところ、 phpinfo()の画面が表示されて、インストールできたと思ったのですが、 良く見ると、 php.iniでextension_dir = "c:\php7\ext"と設定しているのに、 extension_dirがC:\php7\extではなく、C:\php\extとなっていて、 mbstringなども読み込まれていないのです。 Loaded Configuration File もnoneとなっていて、php.iniが読み込まれていないようです。 Configuration File (php.ini) Path はC:\windows となっていますが、C:\windows には php.iniは入れていません。 ネットで調べて、httpd.confに PHPINIDir "C:/php7" と記入するといいとあったので、記入してApacheを再起動して info.phpにアクセスしたところ、白紙のページが表示されました。 PHPINIDir "C:/php7"を削除して、Apacheを再起動してinfo.phpにアクセスすると、 phpinfo()の画面が表示されます。 試しに、C:\windowsにphp.iniを入れてみると、また白紙のページになります。 つまり、php.iniを読み込もうとすると白紙にページになっていまうのです。 php.iniにエラーがあるのかと思って、解凍して何も変更していないphp.iniを 使ってみてもだめでした。php.iniの構文チェックができればと思って いろいろ調べたのですがネット上で見つからなかったです。 希望ですが、なんとかphp.iniを読み込んで白紙ではなくページを表示できて、 mbstringなども有効になっていればと思います。 どうぞよろしくお願いします。

    • 締切済み
    • PHP

専門家に質問してみよう