1

我已经使用 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>';
   }

'

4

0 回答 0