2

我在使用 Dropbox API 时遇到问题,我找不到任何解决方案。我正在使用他们网站上的示例代码并遇到问题。

<?php
require_once "../../dropbox/lib/Dropbox/autoload.php";
use \Dropbox as dbx;
$appInfo = dbx\AppInfo::loadFromJsonFile("../../key.json");
$dbxConfig = new dbx\Config($appInfo, "PHP-Example/1.0");
$webAuth = new dbx\WebAuth($dbxConfig);
list($requestToken, $authorizeUrl) = $webAuth->start('http://example.com');
?>

这段代码在最后一行给了我一个错误和一个异常。这是例外

PHP Fatal error:  Uncaught exception 'Exception' with message 'The Dropbox SDK at least a 64-bit build of PHP, but it looks like we're running a 32-bit build    (PHP_INT_MAX=2147483647).  Library: "/var/dropbox/lib/Dropbox/RequestUtil.php"' in /var/dropbox/lib/Dropbox/RequestUtil.php:15
Stack trace:
#0 /var/dropbox/lib/Dropbox/autoload.php(27): require_once()
#1 [internal function]: Dropbox\autoload('Dropbox\Request...')
#2 /var/dropbox/lib/Dropbox/WebAuth.php(73): spl_autoload_call('Dropbox\Request...')
#3 /var/www/home/index.php(12): Dropbox\WebAuth->start('http://example....')
#4 {main}
  thrown in /var/dropbox/lib/Dropbox/RequestUtil.php on line 15

我不知道该怎么做,因为我很确定我使用的是 64 位系统……这是我的 uname 输出……

Linux me 3.2.0-45-generic #70-Ubuntu SMP Wed May 29 20:12:06 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

关于我为什么会收到此错误或如何安装 64 位版本的 php 的任何想法或见解...?如果有帮助,这是我的 php -v 输出

root@me:/var/www/home# php -v PHP 5.4.6-1ubuntu1.2 (cli) (built: Mar 11 2013 14:54:18) Copyright (c) 1997-2012 The PHP Group Zend Engine v2.4.0, Copyright (c) 1998-2012 Zend Technologies

4

2 回答 2

1

看起来您使用的 PHP 版本仅支持 32 位整数,但 Dropbox SDK 需要 64 位整数。

有关更多信息,请参阅此帖子:https ://stackoverflow.com/a/864402

你使用的是 Ubuntu 的标准 PHP 包吗?在我安装的 Ubuntu 中,标准 PHP 确实支持 64 位整数。在命令行上键入which php以查看您正在运行的 PHP 二进制文件。

于 2013-06-11T21:54:26.973 回答
0

在我的情况下,当我安装 php5-curl 包时问题得到了解决。我用:

$php --version 

PHP 5.6.1 (cli) 版权所有 (c) 1997-2014 The PHP Group Zend Engine
v2.6.0, 版权所有 (c) 1998-2014 Zend Technologies

$ php -r 'echo PHP_INT_MAX;'

9223372036854775807

于 2015-11-09T13:40:33.200 回答