web-dev-qa-db-ja.com

PHP)でjson_encodeを有効にします

PHPでjson_encode関数を有効にする方法について誰かがアドバイスできますか?

Centos 5.6をクリーンインストールし、Virtualminをインストールしました。

誰かが取るべき次のステップを知っていますか?

8
Rob

http://www.php.net/manual/en/json.requirements.php のように

要件

これらの機能を使用するためにインストールは必要ありません。それらはPHPコアの一部です。

ただ PHP> = 5.2.

編集コメント これも見た

RHEL5/CentOS5で、EPELリポジトリを追加します( http://fedoraproject.org/wiki/EPEL )。

その後、インストールは次のように簡単です。

Sudo yum install php-pecl-json

これがあなたの質問に当てはまるかどうかわかりません、私はCentosサーバーを持っていません...

Ubuntuの場合:

Sudo aptitude install php5-json
11
Fabio

私の場合、PHP will ./configure --disable-allを再コンパイルし、必要な拡張子を個別に追加していたため、この質問に遭遇しました。json_encode()の場合、これはもちろん、JSON拡張機能に含まれています。この拡張機能を有効にするには、configureコマンドにオプション--enable-jsonを追加します。

./configure --disable-all --enable-json ...

(「...」は、有効にしたい他の拡張機能がある可能性があるという事実を指します。)

一般に、任意のPHP拡張機能は、オプション--with-extnameまたは--enable-extname(「extname」は拡張機能の名前)を含めることで有効にできます。 ./configure --help | grep extnameを発行して、これら2つの構文のどちらを使用するかを選択します。もちろん、ライブラリ自体を使用可能にする必要があり、ライブラリが配置されているパスを構成する必要がある場合があります(拡張子とその中にあるかどうかによって異なります)。 「デフォルト」パス)。

2
robguinness

にとって php 7私はjsonをインストールするためにこれを行いました(何時間も苦労した後):

yum install php70u-json
service nginx restart
service php-fpm restart
0
d-_-b

CenotOSおよびその他の* nixシステムでは、PHP-disable-jsonでコンパイルされている場合でも、すべてが失われるわけではありません。最初にもちろん、phpinfo();からの出力を確認し、jsonのオカレンスを検索します。jsonサポートが表示された場合enabledもちろん、json拡張機能が有効になっていますが、有効になっていない場合は、/ etc/php.d/json.ini追加の.iniファイルにリストされているかどうかを確認してくださいparsed。そうすると、このファイルは次のようになります。

; json拡張モジュールを有効にする
; extension = json.so

2行目のコメントを外し、Apacheを再起動します。 Apacheがエラーなしで起動した場合は、phpinfo()をもう一度確認し、これによってjson拡張機能が有効になっているかどうかを確認してください。設定されている場合は、すべて設定されています。設定されていない場合は、php拡張機能が配置されているディレクトリを見つける必要があります。そこにjson.soが表示されている場合は、そのファイルへのフルパスを含めてApacheを再起動する最後の行。 json.soファイルと他のphp拡張子ファイルがない場合は、おそらくその1つの拡張子を再コンパイルする必要があります(PHP全体を再コンパイルする必要はありません。ただし、今回は--enable-json)を使用して、確かに可能です。その後、再試行してください。

また、追加の.iniファイルを解析していない場合は、メインのphp.ini(通常は/etc/php.ini)にこの拡張子を追加してみてください。

0
Derek Gogol