2016-06-20 6 views
1

私はPHP/Apacheワールドの初心者です。 Ubuntu 14.04のhttps://askubuntu.com/questions/550191/install-php-5-4-on-ubuntu-14-04-lts-without-compilingの指示に従い、phpbrewをインストールし、私が作業しなければならないアプリケーションがこのバージョンで開発されているため、PHPのバージョン5.3.29に切り替えました。 Apache Virtual Hostを設定し、hostsファイルを変更して、アプリケーションをlocal.myapp.comとしてロードしました。未定義の関数を呼び出すjson_encode - Ubuntu 14.04とphpbrewのDrupalサイトの設定

Fatal error: Call to undefined function json_encode() in /var/www/myapp/myapp.main.drupal/includes/common.inc on line 2563

は私がバリアントをインストールすることができます言うhttps://github.com/phpbrew/phpbrew#variantsに見えた:私は、アプリケーションを実行しているとき、私は次のエラーを取得しています。 Ubuntu、phpbrew、そして最後にアプリケーションの設定には長い時間がかかりました(申し訳ありませんが、私は最近PHPの世界に足を踏み入れました)。

phpbrew install 5.3.29 +jsonを使用してJSONバリアントをインストールすれば、まったく新しいインストールになり、すべての設定が消去されるのではないかと心配です。

既存の設定に影響を与えずにJSONをインストールする方法がある場合は、私に提案してください。

ありがとうございます。

EDIT

私はphpbrew install +defaultを使用altoughそれはJSONなしでコンパイル何らかの理由phpbrewを使用してPHPをインストールしたとき、私は、右理解している場合は?

編集#2 phpbrew.variantsファイルを確認しました。これは、JSONが有効であることを示しています。

/home/subrara/.phpbrew/php/php-5.3.29/phpbrew.variants a:3:{s:16:"enabled_variants";a:27:{s:4:"intl";b:1;s:3:"xml";b:1;s:6:"bcmath";b:1;s:3:"bz2";b:1;s:8:"calendar";b:1;s:3:"cli";b:1;s:5:"ctype";b:1;s:3:"dom";b:1;s:8:"fileinfo";b:1;s:6:"filter";b:1;s:3:"ipc";b:1;s:4:"json";b:1;s:7:"mbregex";b:1;s:8:"mbstring";b:1;s:5:"mhash";b:1;s:6:"mcrypt";b:1;s:5:"pcntl";b:1;s:4:"pcre";b:1;s:3:"pdo";b:1;s:4:"phar";b:1;s:5:"posix";b:1;s:8:"readline";b:1;s:7:"sockets";b:1;s:9:"tokenizer";b:1;s:4:"curl";b:1;s:7:"openssl";b:1;s:3:"zip";b:1;}s:17:"disabled_variants";a:0:{}s:13:"extra_options";a:0:{}}

はしかし、私は、フォルダへの書き込み権限を与えた後、拡張機能をインストールするために、再度先に行って、その後、私はこの(申し訳ありませんが、その長い:()を得た:

[email protected]:~$ phpbrew ext install json stable

===> Installing json extension...

Log stored at: /home/subrara/.phpbrew/build/php-5.3.29/ext/json/build.log Changing directory to /home/subrara/.phpbrew/build/php-5.3.29/ext/json

===> Running make clean: /usr/bin/make -C '/home/subrara/.phpbrew/build/php-5.3.29/ext/json' --quiet 'clean'

===> Phpize...

===> Configuring...

===> Building...

===> Running make all: /usr/bin/make -C '/home/subrara/.phpbrew/build/php-5.3.29/ext/json' 'all' >> '/home/subrara/.phpbrew/build/php-5.3.29/ext/json/build.log' 2>&1

===> Installing...

===> Running make install: /usr/bin/make -C '/home/subrara/.phpbrew/build/php-5.3.29/ext/json' 'install' >> '/home/subrara/.phpbrew/build/php-5.3.29/ext/json/build.log' 2>&1

===> Extension is installed.

===> Creating config file /home/subrara/.phpbrew/php/php-5.3.29/var/db/json.ini.disabled PHP Warning: mkdir(): Permission denied in phar:///usr/bin/phpbrew/src/PhpBrew/Extension/ExtensionManager.php on line 95

Warning: mkdir(): Permission denied in phar:///usr/bin/phpbrew/src/PhpBrew/Extension/ExtensionManager.php on line 95 PHP Warning: file_put_contents(/home/subrara/.phpbrew/php/php-5.3.29/var/db/json.ini.disabled): failed to open stream: No such file or directory in phar:///usr/bin/phpbrew/src/PhpBrew/Extension/ExtensionManager.php on line 109

Warning: file_put_contents(/home/subrara/.phpbrew/php/php-5.3.29/var/db/json.ini.disabled): failed to open stream: No such file or directory in phar:///usr/bin/phpbrew/src/PhpBrew/Extension/ExtensionManager.php on line 109

===> Enabling extension json json extension is not installed. Suggestions: $ phpbrew ext install json

答えて

3

Debianは、以前に削除しましたライセンス紛争PHP 5.5rc2のようJSON拡張。

sudo apt-get install php5-json 

は、あなたのhttpサーバを再起動することを忘れないでください。


phpbrewの場合は、+jsonでビルドを再構築する必要があります。

単純な方法:
PHPの設定をバックアップして、書き換えを防止してください。その他


phpbrew ext install json最後にWiki

+0

お返事ありがとうございました!質問は私が 'phpbrew'を使ってPHPをインストールしたため' apt-get'がインストールされているので、私の現在のPHPバージョンにパッケージを追加してコンパイルしますか?そしてこれは 'phpbrew'で行われたすべての設定をそのまま維持しますか?またすみません。私はおそらく多くの幼稚な質問をしています。私の初心者の状態を考えてください! –

+0

私は申し訳ありませんが、 'phpbrew'の点について尋ねました –

+0

私は5.3.29(' sudo phpbrew switch php-5.3.29')に切り替え、 'phpbrew ext install json stable'を試しましたが、** WARNING:curlデータを取得するために拡張が必要な​​場合があります。 エラー:PHPBREW_PHP環境変数が定義されていません。 この拡張コマンドでは、ビルドリストからPHPバージョンを指定する必要があります。 PHPBrewでビルドされたビルドからバージョンに切り替わっていないようです。 提案:好きなバージョンのPHPを少なくとも1つインストールして、それに切り替えてください。** –

1

JSON拡張モジュールを使用してみてくださいはphpbrew ext install jsonのコマンドでインストールされます。このオプションについて私に知らせてくれたvp_arthに感謝します!

ステップ1:インストーラはPHP-5.3.29は/ var /デシベル/ json.ini.disabledを作成できるようにのphp-5.3.29フォルダの完全なアクセス権を与えることをsudo chmod 777 /home/subrata/.phpbrew/php/php-5.3.29蘭。当初は許可の問題で、これらのフォルダとファイルはphp-5.3.29フォルダ内に書き込めませんでした。

ステップ2:ユーザーとグループを現在のユーザーに変更するには、Ran sudo chown $USER:$USER /home/subrata/.phpbrew/php/php-5.3.29を入力します。

手順3:もう一度Ran phpbrew ext install jsonと拡張機能がインストールされました。

これを行う別の方法があるかもしれませんが、上記は私のために働いた。

関連する問題