【发布时间】:2016-06-20 09:38:22
【问题描述】:
我是 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。当我运行应用程序时,我收到以下错误:
致命错误:在第 2563 行调用 /var/www/myapp/myapp.main.drupal/includes/common.inc 中未定义的函数 json_encode()
我查看了https://github.com/phpbrew/phpbrew#variants,它说我可以安装变体。设置 Ubuntu、phpbrew 和最后的应用程序花了很长时间(抱歉我最近进入了 PHP 世界)。
我担心如果我只使用 phpbrew install 5.3.29 +json 安装 JSON 变体,它会是全新的安装,我的所有设置都会被清除吗?
如果我应该遵循一种安装 JSON 的方法(如果我真的错过它)而不影响现有设置,请建议我!
谢谢。
编辑
如果我理解正确的话,当我使用 phpbrew 安装 PHP 时,由于某种原因它编译时没有使用 JSON,尽管我使用了 phpbrew install +default?
编辑 #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:"日历";b:1;s:3:"cli";b:1;s:5:"ctype";b: 1;s:3:"dom";b:1;s:8:"fileinfo";b:1;s:6:"过滤器";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:{}}
但是,在授予文件夹写入权限后,我再次继续安装扩展程序,然后我得到了这个(对不起,它很长:():
subrara@subrara-desktop:~$ phpbrew ext install json stable
===> 正在安装 json 扩展...
日志存储在:/home/subrara/.phpbrew/build/php-5.3.29/ext/json/build.log 将目录更改为 /home/subrara/.phpbrew/build/php-5.3.29/ext/json
===> 运行 make clean: /usr/bin/make -C '/home/subrara/.phpbrew/build/php-5.3.29/ext/json' --quiet 'clean'
===> Phpize...
===> 正在配置...
===> 建筑...
===> 运行 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
===> 正在安装...
===> 运行 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
===> 扩展已安装。
===> 创建配置文件 /home/subrara/.phpbrew/php/php-5.3.29/var/db/json.ini.disabled PHP 警告:mkdir():第 95 行 phar:///usr/bin/phpbrew/src/PhpBrew/Extension/ExtensionManager.php 中的权限被拒绝
警告:mkdir():第 95 行 phar:///usr/bin/phpbrew/src/PhpBrew/Extension/ExtensionManager.php 中的权限被拒绝 PHP警告:file_put_contents(/home/subrara/.phpbrew/php/php-5.3.29/var/db/json.ini.disabled):无法打开流:phar:///usr/中没有这样的文件或目录bin/phpbrew/src/PhpBrew/Extension/ExtensionManager.php 在第 109 行
警告:file_put_contents(/home/subrara/.phpbrew/php/php-5.3.29/var/db/json.ini.disabled):无法打开流:phar:/// 中没有这样的文件或目录usr/bin/phpbrew/src/PhpBrew/Extension/ExtensionManager.php 在第 109 行
===> 启用扩展 json 未安装 json 扩展。建议: $ phpbrew ext 安装 json
【问题讨论】: