我在使用EASY PHP的虚拟机中用PHP编写了一个应用程序(我知道我不应该使用Windows而是使用Linux :))。现在我已将程序移动到Linux真实服务器(实际上,这是我的synology diskstation)并且没有任何工作了。我做了一些调试,似乎我没有从curl函数中得到任何回复。
在我的Windows服务器中,curl版本是7.21,现在在synology上,版本是7.26-DEV。也许是因为我使用DEV版本?
以下是代码的一部分,我使用非常基本的卷曲,所以我不知道是否需要做一些事情来激活curl。当我在我的linux服务器上执行phpinfo时,我可以看到启用了卷曲支持。
编码:'
$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>';
}