PHP 5.6(RH6)でうまく動作するsoapClient呼び出しがあります。システムをPHP 7(前回と同じ設定のRH7)にアップグレードしていますが、同じ呼び出しが機能しません。SoapClient呼び出しは、PHP 5.6では動作しますが、PHP 7では動作しません。
これは、私はそれが動作CURLを使用して電話をかける場合、私はPHP 7下に入るエラーが
PHP Fatal error: Uncaught SoapFault exception: [HTTP] Could not connect to host
である私のコード
$wsdlUrl = "https://THE_URL_I_AM_CALLING/repository/soap/2.1?wsdl";
$sslClientCert = "../../app/config/ssl/ssl_cert.crt";
$sslClientKey = "../../app/config/ssl/ssl_cert.key";
$proxy = 'proxy_http';
$port = 8080;
$contextOptions = [
'ssl' => [
'local_cert' => $sslClientCert,
'local_pk' => $sslClientKey,
'SNI_enabled' => true,
'SNI_server_name' => 'THE_URL_I_AM_CALLING'
]
];
$options= [
"soap_version" => SOAP_1_2,
"features" => SOAP_SINGLE_ELEMENT_ARRAYS,
"stream_context" => stream_context_create($contextOptions),
'proxy_host' => $proxy,
'proxy_port' => $port
];
$client = new SoapClient($wsdlUrl, $options);
try {
// execute the search
$searchResults = $client->searchDocuments([
"text" => "myText",
"hint" => "document"
]);
}
catch (Exception $e) {
echo $e->getMessage();
}
です。
私は人生を楽にするために、むしろclientSoapを使用します。
「php7」に「soap」を有効にしていることを確認してください。 – urfusion
チェックしました。有効になっています – Jon
あなたはアップグレードしていると言いますが、有効な内線番号と設定を5.6と7の間で比較しましたか?ホストに接続できないため、SSL関連の問題のように聞こえます。 'openssl'拡張が有効であることを確認してください。また、 'dirname(dirname(__ DIR__)) 'を使うほうが、相対URIをcertファイルに変更しようとします。それ以外の場合は、 '' ssl "=> array( 'verify_peer' => false、 'verify_peer_name' => false)'を 'contextOptions'に追加して、' 'app/config/ssl /証明書の問題。あなたのphp.iniに 'curl.cainfo'と' openssl.cafile'を定義する必要があるかもしれません。 – fyrye