PHP - Что может вызвать «новый SoapClient ()» для подключения на локальном, но не на сервере? - PullRequest
0 голосов
/ 27 апреля 2019

Я хочу подключиться к веб-сервису, который отправляет смс. Я хочу подключиться к SoapClient, но он не может подключиться даже к серверу, но работает локально. Что заставляет это не работать?

Мой код был таким:

libxml_disable_entity_loader(false);
try {
    $options = array(
        'cache_wsdl' => WSDL_CACHE_MEMORY,
        'trace' => 1,
        'stream_context' => stream_context_create(array(
            'ssl' => array(
                'verify_peer' => false,
                'verify_peer_name' => false,
                'allow_self_signed' => true
            ),
            'http' => array(
                'user_agent' => 'PHPSoapClient'
            ),
        ))
    );

    $wsdlUrl = 'http://example.com/SendService.svc?wsdl';
    $soapClientOptions = array(
        'stream_context' => $options,
        'cache_wsdl' => WSDL_CACHE_NONE
    );

    $client = new SoapClient($wsdlUrl, $soapClientOptions);

    return $client;
} catch (Exception $e) {
    die($e->getMessage());
}

Но я изменил содержание $options на:

'encoding' => 'UTF-8',
'exceptions' => 1,
'trace' => TRUE,
// This below is the one I've downloaded from https://curl.haxx.se
// But I have set it to /ssl.pem which is my own certificate
// none of them work!
'local_cert' => '/cacert.pem',
// 'passphrase' => $this->passphrase,
//'ssl_method' => SOAP_SSL_METHOD_SSLv2,
'authentication' => SOAP_AUTHENTICATION_DIGEST,
'soap_version'  => SOAP_1_2,
'cache_wsdl' => WSDL_CACHE_NONE,
'stream_context' => stream_context_create([
    'ssl' => [
        'crypto_method' => STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT,
    ]
])

Я думаю, что проблема может быть в этой строке local_cert или должна быть новая строка для cafile. Является ли корневой путь local_cert и cafile от корня, который я установил в virtualhost? Я имею в виду мой корень из /home/mysite/public_html или /home или что-то еще?

С чем это связано и как я могу это исправить?

...