php5-fpmでjson_encode()エラーを解決する方法

このQ&Aのポイント
  • 質問文章では、php5-fpmでjson_encode()エラーが発生している問題を解決するための方法を尋ねています。
  • 質問者はphpのインストールと設定について事前に行い、json.soの設定も行っていますが、エラーが解消されないようです。
  • 質問者は詳細なエラーメッセージやphpinfo()の結果を提示しており、回答者はこれらの情報を基に適切な解決策を提供することが求められています。
回答を見る
  • ベストアンサー

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
  • 回答数1
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
noname#244856
noname#244856
回答No.1
hogeokwave
質問者

お礼

代替案で解決できました ありがとうございます 後から気づいた自分のミスですが $ sudo aptitude install php5 php5-cgi php5-cli php5-mysql php5-gd php-apc php5-fpm php5-curl php5-dev $ sudo apt-get install php5-json としていた可能性がありました 全部aptitude でinstallしたら問題なくできました

関連するQ&A

  • 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
  • [PHP]php.iniが読み込まれない

    php.iniを変更しても反映されません。 読み込んでいるファイルが違うのかとも思い、php.iniを削除してコマンドを実行すると以下のようになりました。 ■php -i | grep php.ini [結果] Configuration File (php.ini) Path => /etc しかし、phpinfo();で表示した場合、以下のように削除前の情報を保持したままです。 本当はLoaded Configuration Fileの結果が(None)となるはずだと思うのです。 ■phpinfo();の結果 [結果] Configuration File (php.ini) Path: /etc Loaded Configuration File: /etc/php.ini ちなみに削除前は以下の通りです。 ■php -i | grep php.ini [結果] Configuration File (php.ini) Path => /etc Loaded Configuration File => /etc/php.ini ■phpinfo();の結果 [結果] Configuration File (php.ini) Path: /etc Loaded Configuration File: /etc/php.ini キャッシュかとも思いキャッシュを削除してみましたが変わりませんでした。 上記の理由なのかtimezoneを設定してみても同じです。 ■php -i | grep timezone [結果] Default timezone => Asia/Tokyo date.timezone => Asia/Tokyo => Asia/Tokyo ■phpinfo();の結果 [結果] Default timezone:UTC PHPは5.6でnginxで動かしています。 アドバイスをお願いします。

    • 締切済み
    • PHP
  • PHPでpostgreSQLと接続しようとすると「call to undefind function pg_connect」というエラーが出る

    表題の件で質問させて下さい。 いろいろネットで調べると、php.ini の extension_dir="phpインストールフォルダのextフォルダ" extension=php_pgsql.dllのコメントをはずす で大抵は解決しているようなのですが、その対応をしてもどうも解決しません。 以下、わかる範囲で確認してみた項目です。 ・phpinfoで確認してみても、postgreSQLの項目は表示されていませんでした。 ・phpinfoの 「Loaded Configuration File 」のphp.iniのパスもあっています。 ・ためしに、extension=php_mbstring.dll のコメントをつけたりはずしたりすると、phpinfoではちゃんと反映されていました。 ・もちろん、extension_dirに設定しているディレクトリには、php_pgsql.dllがありました。 ちょっと何が原因なのか見当がつきません。 どなたかお分かりになる方がいらっしゃいましたらご教授願えませんでしょうか。 環境は windowsXP apache/2.2.9 PHP/5.2.6 です。 よろしくお願い致します。

    • 締切済み
    • 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
  • PHP+Linuxについて質問です

    現在CentOS+PHP5.2.1の構成でプログラムを組んでいるのですが、 今までwindowsローカルにxamppを入れて組んでいたので、Linuxに 環境移動しなければならなくなりました。 pearやらgdなどはすべてxamppがやってくれてたのを自分でやらなければなりません(当然ですがw) で、smartyや、pearのライブラリまでは入れ終わったのですが、zip関数を使うのにpecl系のzipライブラリの入れ方がどうしてもわかりません。 php.iniを見た限りでは、/etc/php.d/にある各extension用のiniファイルを読んで、/php/module/野中にあるsoファイルをextensionとして見に行ってるみたいです。 なのでxamppで使っていたextension_zip.dllファイルを/php/module/ に移してphp.iniに、extension=php_zip.dll と苦し紛れに書き込んでリコンパイルしてみましたが、やはり意味なかったらしく。 普段使っているのがdllファイルなのに対し、今回はsoファイルなので、どうすればいいか検討がつきません。どうやったらこれをインストールできれば教えていただければと思います。 ちなみに、私が使いたいと思っているのは、こちら↓ http://php.tonnikala.org/manual/ja/ref.zip.php です。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • PHP 再インストールで

    PHPにimapを入れようと PHPを再インストールしたのですが php -mでは表示され php -i >phpinfo.html で出力させてもちゃんと登録されているみたいなんですが phpinfo();をAPACHE経由で呼び出すと 前の設定とまったく変わってないのですが ちなみに cp ./php.ini-dist /usr/local/lib/php.ini apachectl restart もしました どうすれば反映されるのでしょうか?

    • ベストアンサー
    • PHP
  • 泣きそうです>< PHPでSQLite3が使えない

    こんばんは 何をどうやっても進まないのでここで質問させてください。 Windows 8にwamp (Apache 2.2.22, PHP 5.4.3) を入れています。 SQLite3を使いたいのですが、sqlite_open 関数に対して「undefined function」というエラーが出てしまいます。 php.ini の内容は次のようになっています。 ;ここから extension_dir = "c:/wamp/bin/php/php5.4.3/ext/" (中略) extension=php_pdo_sqlite.dll ;extension=php_sqlite.dll extension=php_sqlite3.dll (中略) [sqlite] ; http://php.net/sqlite.assoc-case ;sqlite.assoc_case = 0 [sqlite3] sqlite3.extension_dir = "c:/wamp/bin/php/php5.4.3/ext/" ;ここまで 実際、エクステンションディレクトリには php_pdo_sqlite.dll php_sqlite.dll php_sqlite3.dll があります。 phpinfo(); では PDO drivers:mysql, sqlite SQLite Library:3.7.7.1 [sqlite3] SQLite3 support:enabled SQLite3 module version:0.7 SQLite Library:3.7.7.1 sqlite3.extension_dir:c:/wamp/bin/php/php5.4.3/ext/ いったい何が行けないのでしょうか、iniの値を変えるとphpinfo()も変わるので誤った設定ファイルをいじっているのではないと思います。 バージョンなどは冒頭に記載しています。 よろしくお願いします。

  • PHP拡張モジュールが読み込めない?

    環境 OS:windowsXP Apache ver 2.2 PHP ver 5.1.4 問題の発端はphpからMySQLを呼び出す時に下記のエラーが出た事に始まりました。 Call to undefined function mysql_connect() 恐らくextensionファイルがうまく読み込めてないものと思われるのですが、php.iniの設定でしょうか? extension関連の設定は以下になっています。 extension_dir = "C:\php\ext" extension=php_mysql.dllのコメントアウトをはずす。 phpinfo()で確認してみましたが、表示されるのはConfiguration PHP Core まででその他の設定は表示されません。 extension_dirの項目は変更すると反映されるみたいですので、php.iniは読み込めていると思うのですが…。 GD2モジュールのサンプルも動かしてみましたが、やはり駄目でした。 ApacheのhttpdconfでPHPIniDirを設定しても結果は同じでした。 どなたか、原因の解る方いらっしゃいますでしょうか?

    • ベストアンサー
    • PHP
  • php.iniが認識されません

    php5、MySQL5、Apache2.2を使おうと思っているWindowsXP利用の初心者です。 それぞれは動作しているのは確認できたのですが、phpinfo()を表示させると、MySQLがSTARTしているのに、MySQLの項目が表示されません。 c:\Windowsにあるphp.iniにはextension=php_mysql.dll等を記述しているのですが、php.iniを削除しても、phpinfo()の結果が変わらないので、php.iniが認識されていないような気がします。 申し訳ありません、どなたかお助けいただけないでしょうか。

    • ベストアンサー
    • PHP