【发布时间】:2014-02-04 17:51:28
【问题描述】:
以下函数在本地运行良好,但在 Ubuntu VM 上调用该函数时会导致空白页。 message_room 在 HipChat.php 中正确定义(同样,它在本地按预期工作)。
require 'HipChat.php';
define('HIPCHAT_APIKEY', 'xxx');
define('HIPCHAT_NAME', 'Assets');
define('HIPCHAT_ROOM', 'Assets');
function hipchatDump ($message) {
$hc = new HipChat\HipChat(HIPCHAT_APIKEY);
try {
$hc->message_room(HIPCHAT_ROOM, HIPCHAT_NAME, $message, false, 'yellow', 'text');
} catch (Exception $e) {
echo 'Caught exception: ', $e->getMessage(), "\n";
}
}
php --version 命令在每台机器上产生以下内容:
Macbook:
PHP 5.4.17 (cli) (built: Sep 12 2013 23:14:23)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies
Ubuntu 虚拟机:
PHP 5.5.3-1ubuntu2.1 (cli) (built: Dec 12 2013 04:24:35)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2013 Zend Technologies
with Zend OPcache v7.0.3-dev, Copyright (c) 1999-2013, by Zend Technologies
try/catch 没有输出任何东西。我已将问题缩小到这一行:
$hc->message_room(HIPCHAT_ROOM, HIPCHAT_NAME, $message, false, 'yellow', 'text');
据我所知,PHP5.5 中的任何更改都不会导致基于 PHP 版本的失败。任何想法为什么这适用于一台机器而不是另一台机器?
更新
最初的问题似乎是没有安装 cURL。安装完并重启apache服务后,Apache日志文件中原来的错误消失了,但现在我看到了:
[Wed Jan 15 17:14:48.767984 2014] [:error] [pid 5886] [client 172.16.3.77:65381] PHP Fatal error: Call to undefined function HipChat\\json_decode() in /var/www/assets/scripts/php/HipChat/HipChat.php on line 240, referer: http://myurl/
我的 Ubuntu 版本是 13.10
【问题讨论】:
-
您可以查看您的 Apache 日志(假设您使用的是 Apache)吗?
-
@Scopey 这是我从 Apache 日志中得到的错误:
[Wed Jan 15 17:01:31.438401 2014] [:error] [pid 27153] [client 172.16.3.77:65162] PHP Fatal error: Call to undefined function HipChat\\curl_init() in /var/www/assets/scripts/php/HipChat/HipChat.php on line 185, referer: http://myurl我在 VM 上安装了 php5-curl,但仍然看到同样的错误。 -
@Scopey 请查看我的最新更新。重新启动 Apache 后,curl 错误消失了,但我现在收到一个错误,说 json_decode 也未定义
-
请检查stackoverflow.com/questions/18239405/…,看看这是否适用于您。 (
sudo apt-get install php5-json可能会为你解决这个问题!) -
@Scopey 确实如此!如果您愿意,请添加答案
标签: php apache ubuntu methods json