1

我开始对 PHP EWS 的一个问题失去理智。

现在,我有一个客户的服务器是 Ubuntu 11.10 和 CURL 7.21.6(我对此无能为力)和我的开发服务器是 Windows Server 2008 R2 和 CURL 7.30.0。

在两台服务器中,我都使用 PHP-EWS 库配置了两个 Exchange 帐户。

一种是 Exchange 2010 服务器。

另一种是在线交换。

Exchange Online 帐户在两台服务器上都能完美运行。

Exchange 2010 帐户可在我的 Windows 服务器上运行,但不能在远程 Ubuntu 服务器上运行。

由于我无法进行调试(我只有一个用于测试的网页),我只能进行假设。

旧服务器上的旧 CURL 版本会不会有问题?还是操作系统本身是?

4

1 回答 1

0

我之前已经解决了这个问题,它确实是我的 Ubuntu 服务器上过时的 cURL 库。它可以在我运行 XAMPP 的 Windows 机器上正常工作,但是一旦放在生产服务器上,简单的身份验证就会失败。

您需要将 cURL 更新到至少 v7.23 - 这实际上是 php-ews 自述文件中列出的要求。此版本似乎添加了 NTLM 身份验证协议,或对其进行了修复。除非您可以不进行身份验证,否则无法解决这个问题。

更新 cURL 非常简单,不需要重新启动服务器。您应该能够使用以下命令对其进行更新。

sudo apt-get update
sudo apt-get install php5-curl
sudo /etc/init.d/apache2 restart

需要重新启动网络服务器(上面假设为 Apache2),但只需要一秒钟。自己运行这些命令后,我的脚本立即开始在我的生产服务器上运行。

于 2015-04-10T23:40:14.677 回答