我已经使用 EASY PHP 在虚拟机中用 PHP 编写了一个应用程序(我知道我不应该使用 Windows,而是使用 Linux :))。现在我已经将我的程序移到了一个 linux 真实服务器(事实上,这是我的 Synology 磁盘站),并且没有任何工作了。我做了一些调试,似乎我没有从 curl 函数中得到任何回报。
在我的 windows 服务器中,curl 版本是 7.21,现在在群晖上,版本是 7.26-DEV。也许是因为我使用的是DEV版本?
这是代码的一部分,我使用的是非常基本的 curl,所以我不知道是否需要做一些事情来激活 curl。当我在我的 linux 服务器上执行 phpinfo 时,我可以看到启用了 curl 支持。
代码:'
$ch = curl_init();
if ($debug == 1)
{
curl_setopt($ch, CURLOPT_VERBOSE, 1);
}
curl_setopt($ch, CURLOPT_FRESH_CONNECT, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $xml_request);
curl_setopt($ch, CURLOPT_COOKIESESSION, true);
curl_setopt($ch, CURLOPT_COOKIEJAR, './cookie/cookie.txt');
curl_setopt($ch, CURLOPT_URL,$ihcip."ws/AuthenticationService");
curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
if (preg_match('`^https://`i', $ihcip))
{
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
}
if ($debug == 1) {
curl_setopt($ch, CURLOPT_HEADERFUNCTION, 'dbg_curl_data');
curl_setopt($ch, CURLOPT_WRITEFUNCTION, 'dbg_curl_data');
curl_setopt($ch, CURLINFO_HEADER_OUT, true);
}
$result = curl_exec($ch);
if ($debug == 1)
{
echo '<fieldset><legend>request headers</legend> <pre>', htmlspecialchars(curl_getinfo($ch, CURLINFO_HEADER_OUT)), '</pre> </fieldset>';
echo '<fieldset><legend>xml request</legend> <pre>', htmlspecialchars($xml_request), '</pre> </fieldset>';
echo '<fieldset><legend>response</legend> <pre>', htmlspecialchars(dbg_curl_data(null)), '</pre> </fieldset>';
}
'