Проблема с архитектурой API Dropbox


У меня возникла проблема при использовании API dropbox, и я не смог найти никаких решений. Я использую пример кода с их сайта и у меня возникли проблемы.

<?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-битную систему... вот мой вывод без имени...

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

Author: Rell3oT, 2013-06-10

2 answers

Похоже, что версия PHP, которую вы используете, поддерживает только 32-разрядные целые числа, но для Dropbox SDK требуются 64-разрядные целые числа.

Смотрите этот пост для получения дополнительной информации: https://stackoverflow.com/a/864402

Используете ли вы стандартный пакет PHP Ubuntu? При моей установке Ubuntu стандартный PHP поддерживает 64-разрядные целые числа. Введите which php в командной строке, чтобы увидеть, какой двоичный файл PHP вы используете.

 1
Author: Kannan Goundan, 2017-05-23 11:59:02

В моем случае проблема была решена, когда я установил пакет php5-curl. Я использую:

$php --version 

PHP 5.6.1 (cli) Авторское право (c) 1997-2014 Движок Zend группы PHP
v2.6.0, Авторское право (c) 1998-2014 Zend Technologies

$ php -r 'echo PHP_INT_MAX;'

9223372036854775807

 0
Author: Takava, 2015-11-09 14:46:17