興味深い PHP/SOAP エラーに出くわしました。検索しても納得のいく説明が見つかりませんでした。助けていただければ幸いです。背景は次のとおりです。
私は PHP/ CodeIgniterで構築されたサイトを持っています。これは、SOAP を使用して SSL を介して、サードパーティ (罪のない人を保護するために「X 社」と呼びましょう) が提供するバックエンド システムと通信します。優れた MVC の精神に則り、そのデータ ソースとのやり取りに固有のコードを別のモデル ( system/application/models/company_x.php
) に入れました。私は自分の Mac で MAMP を使用してローカルで開発を行ってきましたが、テストと開発を通じてほぼすべてが比較的スムーズでした。SSL を介した X 社の Web サービスの呼び出しを含みます。おそらく、彼らの Web サービスには、PHP 5 の SOAP が好まない奇妙な WSDL が含まれていたことに言及する必要があります。そこになかった必須パラメータのようなもの。SOAP メソッドを非常に明示的に呼び出すのは少し奇妙でしたが、私はそれを実行し、テストを通じて機能しました。モッソ、そして私はそれがそこでもしばらくの間機能したと断言できた.
SOAP Web サービスへのすべての呼び出しで次のようなエラーが発生し始めたときの驚きを想像してみてください。
PHP エラーが発生しました 重大度: 警告 メッセージ: SoapClient::__doRequest() [soapclient.--dorequest]: 警告: URL foropen アクセス ファイル名: models/company_x.php ライン番号: 86
エラー ログには、サーバー上のモデル ファイルへのフル パス以外の情報はありませんでした。ローカルで動作し、以前は Mosso でも動作すると思っていました。Mosso が設定を変更し、SOAP か何かを無効にしたのかもしれません。少しphpinfo()
後、彼らは十分すぎるほど持っています。おそらく、私の Mac は SSL 証明書に対してより耐性があるのではないかと思いました。結局のところ、これは GoDaddy の *.domain.com 証明書であり、fopen
取得に問題がある可能性があります。SSL 経由で接続するためのテスト ファイルを作成し、それを Mosso に配置したところ、動作しました。
fopen
SOAP のアクセスが突然問題になるのはなぜでしょうか。突然これを困難にしているのはモッソの何ですか?php.ini
一部の設定をオーバーライドする必要がありますか? このような役に立たないエラーがよくあるように、まったく別のものでしょうか?
更新: phpinfo() からの構成コマンドは次のとおりです。
'./configure' '--build=x86_64-redhat-linux-gnu' '--host=x86_64-redhat-linux-gnu' '--target=x86_64-redhat-linux-gnu' '--program-prefix=' '--prefix=/usr' '--exec-prefix=/usr' '--bindir=/usr/bin' '--sbindir=/usr/sbin' '--sysconfdir=/etc' '--datadir=/usr/share' '--includedir=/usr/include' '--libdir=/usr/lib64' '--libexecdir=/usr/libexec' '--localstatedir=/var' '--sharedstatedir=/usr/com' '--mandir=/usr/share/man' '--infodir=/usr/share/info' '--cache-file=../config.cache' '--with-libdir=lib64' '--with-config-file-path=/etc' '--with-config-file-scan-dir=/etc/php.d' '--disable-debug' '--with-pic' '--disable-rpath' '--without-pear' '--with-bz2' '--with-curl' '--with-exec-dir=/usr/bin' '--with-freetype-dir=/usr' '--with-png-dir=/usr' '--enable-gd-native-ttf' '--without-gdbm' '--with-gettext' '--with-gmp' '--with-iconv' '--with-jpeg-dir=/usr' '--with-openssl' '--with-png' '--with-pspell' '--with-expat-dir=/usr' '--with-pcre-regex=/usr' '--with-zlib' '--with-layout=GNU' '--enable-exif' '--enable-ftp' '--enable-magic-quotes' '--enable-sockets' '--enable-sysvsem' '--enable-sysvshm' '--enable-sysvmsg' '--enable-track-vars' '--enable-trans-sid' '--enable-yp' '--enable-wddx' '--with-kerberos' '--enable-ucd-snmp-hack' '--with-unixODBC=shared,/usr' '--enable-memory-limit' '--enable-shmop' '--enable-calendar' '--enable-dbx' '--enable-dio' '--with-ming' '--with-mime-magic' '--with-sqlite=shared' '--with-libxml-dir=/usr' '--with-xml' '--with-system-tzdata' '--with-apxs2=/usr/sbin/apxs' '--without-mysql' '--without-gd' '--without-odbc' '--disable-dom' '--disable-dba' '--without-unixODBC' '--disable-pdo' '--disable-xmlreader' '--disable-xmlwriter' '--disable-json'
注:以下の私のコメントphpinfo()
は、ファールが許可されていることを報告しています。変!