为什么我的两个实时服务器不运行此 curl 命令,但我的本地测试服务器却运行了?

为什么我的两个实时服务器不运行此 curl 命令,但我的本地测试服务器却运行了?

我有三台服务器。两台是托管互联网网站的实时服务器。一台是本地测试服务器,在更大的互联网上不可见。

我正在努力奔跑发布到 Twitter 的 PHP 脚本,并且它依赖于 curl。当我在本地测试机器上运行脚本时,它运行完美。当我尝试在我的任何一台实时服务器上运行它时,它会失败并出现以下错误:

PHP Fatal error: Call to undefined function Abraham\TwitterOAuth\curl_init()

在我的本地机器上,当我运行时php --info | grep -i curl,我收到以下响应:

/etc/php5/cli/conf.d/20-curl.ini,
curl
cURL support => enabled
cURL Information => 7.35.0

我只能通过 SSH 访问我的一台实时服务器(另一台是付费托管服务,限制更多),当我在该服务器上运行相同的命令时,没有得到任何响应。命令提示符没有任何响应。但是,如果我转到/etc/php5/cli/conf.d/实时服务器上的目录,那里有一个20-curl.ini文件。

所有服务器都是基于 Ubuntu 的,我已经apt-get install php5-curl curl在所有服务器上运行过,它们都说它们运行的​​是最新版本。

这是最后一个令人困惑的细节,在所有服务器上,如果我在我的任何服务器、本地测试服务器和两个实时服务器上运行此 PHP 脚本,我都会得到肯定的响应。这是代码:

echo 'Curl: ', function_exists('curl_init') ? 'Enabled' : 'Disabled';

...当我运行它时,我得到了这个输出:

卷曲:已启用

总而言之,似乎所有三台服务器上都安装了 curl,但我的两台实时服务器上的安装都有问题。

我该如何诊断和解决为什么我的实时服务器无法运行本地测试服务器可以运行的 PHP 脚本?

答案1

您很可能在服务器上缺少这个库:https://github.com/abraham/twitteroauth

PHP 错误显示它正在尝试从 TwitterOAuth 加载一个函数,但由于缺少库而无法工作。

另一种可能性是您的脚本包含某种自动加载器库,它在您的实时服务器环境中无法正常工作(在错误的路径中查找该库)。

相关内容