2013-12-12 111 views
0

我正在嘗試連接到HTTPS location。目前我收到Could not connect to host錯誤。我正在測試兩臺Ubuntu服務器。這個錯誤發生在一個不在現場的Ubuntu服務器上。現場開發服務器上的其他服務器正常工作。我搜索了服務器文件,並且尚未在系統中找到會導致此類問題的任何差異。我還沒有找到有類似問題的人,並嘗試了許多與同一錯誤消息相關的不同解決方案(例如,禁用wsdl緩存等)。爲什麼無法連接到HTTPS?

  • HTTP工作正常,兩臺服務器上
  • HTTPS工作在一臺服務器上
  • 的php.ini文件中啓用phpinfo();(HTTP的工作原理相同
  • OpenSSL和肥皂節目,所以我認爲肥皂是罰款)
  • wget https://exampleurl.com/services/SessionService服務器收到錯誤

我應該看看下一步做什麼上正常工作?

我可以做什麼測試?

如何獲得有關錯誤的附加信息?

$sessionService = new SessionService('/path/to/local/file/SessionService.wsdl', array(
      'location' => "https://exampleurl.com/services/SessionService" 
    )); 

try { 
    // throws SoapFault error 
    $token = @Login($sessionService, $username, $password); 
} 
catch (SoapFault $sf) { 
    //echo $sf->getMessage()); 
    //echo $sf; 
} 

SessionService類:

class SessionService extends SoapClient { 

    private static $classmap = array(
     'login' => 'login', 
     'loginResponse' => 'loginResponse', 
     ... 
    ); 

    public function SessionService($wsdl = "http://localhost:8080/services/SessionService?wsdl", $options = array()) { 
     foreach (self::$classmap as $key => $value) { 
      if (!isset($options['classmap'][$key])) { 
       $options['classmap'][$key] = $value; 
      } 
     } 
     parent::__construct($wsdl, $options); 
    } 


    //fails here 
    public function login(login $parameters) { 
     return $this->__soapCall('login', array($parameters), array(
      'uri' => 'http://example.url.com', 
      'soapaction' => '' 
      ) 
     ); 
    } 

    //... other functions 

} 

回答

1

WireSharktcpdump或類似的工具可能是你最好的選擇這裏,瞭解什麼是與HTTP請求(一個或多個)會錯。您無法從PHP中的客戶端代碼中調試實際的http請求,因爲這些都在SOAP擴展中(用C語言編寫)。

0

確保您在php.ini中啓用了openssl擴展。

;for windows 
extension=php_openssl.dll 
;for unix 
extension=openssl.so 
相關問題