We are ACORN!

プログラムやサーバーの設定など、技術的な記事を載せております。

PHP Salesforce プログラミング

PHP Toolkit のSoapClientが接続できない

投稿日:2019-01-19 更新日:

クライアントがPHPのバージョンを5.4から5.6にアップデートしたそうです。
(そういう時は前もって連絡ください(怒)

その際、エラーが出るというのです。
ログを見ると、
SoapClientの__doRequestでCould not connect to hostが出ています。

何となくSSL関連じゃないの? と思いながらGoogle先生にお尋ねしていたんですが、「これ!」という結果が見つからず難渋しました。
解決するのに時間が掛かったので、忘備録として残しておきます。

PHPは5.6になってSSLの検証がデフォルトで働くそうなのですが、SSLの検証で失敗するので接続できないようです。
それで、そのSSLの検証を使用しないようにすることで通信できます。

本来はCAバンドルを上書きする必要があるようですが、この辺りはよくわかりません(笑)
(参考)http://php.net/manual/ja/migration56.openssl.php

実際opensslで接続してみると、エラーが報告されます。
openssl s_client -connect login.salesforce.com:443
> Verify return code: 20 (unable to get local issuer certificate)

■修正前

$sfClient = new SforcePartnerClient();
$sfClient->createConnection($wsdl);

■修正後

$opts = array(
  'ssl' => array('verify_peer'=>false, 'verify_peer_name'=>false)
);

$sfClient = new SforcePartnerClient();
$sfClient->createConnection($wsdl, null,
  array(
    'stream_context' => stream_context_create($opts)
  )
);

転写しただけなので、よく分かってないのですが、これでいいみたいです。

-PHP, Salesforce, プログラミング


comment

メールアドレスが公開されることはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

関連記事

Google Bookmarksを利用するChrome拡張機能

暇なときにGoogle Bookmarksを利用するプラグインを作ってみました。 最低限のことしか出来ないのですが、自分で使う分にはこれで必要十分です。 Gブックマーク もしよろしかったら使ってみてく …

【PHP】 全角記号のときmb_strwidthが1を返す

PHPで全角の判断に、mb_strwidthを使っていました。 mb_strwidth == (mb_strlen*2) だったら全角文字、みたいな。 そうしたら、「◎」を入れたらうまくいかないとクラ …

PHPからsyslogを書く

忘備録です。 PHPでシステム回りを作っているんですが、syslogに出力出来たらなー、と思っていました。 調べたら簡単♪ function logger($mes) { exec("/bi …

【PHP】ビルトインウェブサーバーで楽々テスト環境

teratailで質問に答えるようになったら、以外にサーバー立てずにテストして、ローカル制限に引っかかっている人が多いので、簡単に立てられるローカルサーバーの構築方法を書いておこうと思います。 まず、 …

【HTML5】 FormDataオブジェクトがログに出力されない(出力方法追記)

どうも仕様みたいですね。 どうやっても、無理でした。 隠ぺいされたオブジェクトっていうのも気持ち悪いですね。 それをajaxで送る、っていうのも気持ち悪い。 var fd = new FormData …