Bug #31050 [Com]: SOAP class will not parse WSDL file located on a secure HTTPS connection

From: Date: Fri, 20 Jun 2014 12:34:32 +0000
Subject: Bug #31050 [Com]: SOAP class will not parse WSDL file located on a secure HTTPS connection
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-186274@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=31050&edit=1

 ID:                 31050
 Comment by:         66ton99 at gmail dot com
 Reported by:        dylanwoster at mac dot com
 Summary:            SOAP class will not parse WSDL file located on a
                     secure HTTPS connection
 Status:             No Feedback
 Type:               Bug
 Package:            SOAP related
 Operating System:   Mac OS X 10.3.6
 PHP Version:        5.0.2
 Assigned To:        dmitry
 Block user comment: N
 Private report:     N

 New Comment:

It is present in PHP v5.4.29 on mac but it is not a bug. It solves by installing openssl extension;
But would be nice to know why lib can't load external url! Is it connection problem in some
cases or protocol https does not support as in my case.


Previous Comments:
------------------------------------------------------------------------
[2010-09-16 10:32:21] zhb1208 at hotmail dot com

resolve:
I found the problem was related to linux configuration. 

The firewall is enabled on my server: policy type is targeted, enforcing current is checked and
HTTPD scripts to connect to the network were not allowed.

linux:
$setsebool -P httpd_can_network_connect on 

I checked it and it is working now.

------------------------------------------------------------------------
[2010-09-14 12:24:53] zhb1208 at hotmail dot com

SOAP-ERROR: Parsing WSDL: Couldn't load from 'http://192.168.0.14:8080/rpc/soap/jirasoapservice-v2?wsdl'
: failed to load external entity "http://192.168.0.14:8080/rpc/soap/jirasoapservice-v2?wsdl"

------------------------------------------------------------------------
[2009-03-05 12:13:40] ykohut at parallels dot com

I have the same bug on:
# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 5.2 (Tikanga)
# uname -p
i686
# /hsphere/shared/php5/bin/php-cli --version
PHP 5.2.9 (cli) (built: Mar  5 2009 01:52:37)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2009 Zend Technologies
    with the ionCube PHP Loader v3.1.32, Copyright (c) 2002-2007, by ionCube Ltd., and
    with Zend Extension Manager v1.2.2, Copyright (c) 2003-2007, by Zend Technologies
    with Zend Optimizer v3.3.0, Copyright (c) 1998-2007, by Zend Technologies

The SOAP is loaded as external extension via corresponded .ini file:
#cat php.d/soap.ini
; Enable soap extension module
extension=soap.so

The extension is successfully loaded, which is reported php_info():
soap
Soap Client 	enabled
Soap Server 	enabled

Directive	Local Value	Master Value
soap.wsdl_cache	1	1
soap.wsdl_cache_dir	/tmp	/tmp
soap.wsdl_cache_enabled	1	1
soap.wsdl_cache_limit	5	5
soap.wsdl_cache_ttl	86400	86400

and with # php-cli -i:
# /hsphere/shared/php5/bin/php-cli -i|grep soap
Configure Command =>  './configure'  '--localstatedir=/var/hsphere/php'
'--with-bz2=/hsphere/shared' '--enable-ctype' '--enable-dba'
'--enable-ftp' '--with-gettext=/hsphere/shared'
'--enable-mbstring=all' '--with-gd' '--with-mhash=/hsphere/shared'
'--with-mcrypt=/hsphere/shared' '--with-openssl=/usr'
'--enable-overload' '--enable-posix' '--enable-session'
'--enable-sockets' '--enable-standard' '--enable-tokenizer'
'--with-xml=/hsphere/shared' '--with-xsl=/hsphere/shared'
'--with-zip=/hsphere/shared' '--with-zlib=/hsphere/shared'
'--with-zlib-dir=/hsphere/shared' '--with-freetype-dir=/hsphere/shared'
'--with-png-dir=/hsphere/shared' '--with-jpeg-dir=/hsphere/shared'
'--with-expat-dir=/hsphere/shared' '--with-iconv-dir=/hsphere/shared'
'--with-libxml-dir=/hsphere/shared' '--enable-gd-native-ttf'
'--with-ttf' '--enable-mbstr-enc-trans'
'--with-expat-dir=/hsphere/shared' '--with-xslt-sablot=/hsphere/shared'
'--with-gnu-ld' '--with-curl=shared,/hsphere/shared' '--with-curlwrapper!
 s' '--with-dom=shared,/hsphere/shared' '--with-dom-xslt=/hsphere/shared'
'--with-dom-exslt=/hsphere/shared' '--with-dom=shared,/hsphere/shared'
'--with-fileinfo=shared,/hsphere/shared' '--with-gmp=shared,/hsphere/shared'
'--with-iconv=shared,/hsphere/shared' '--with-imap=shared,/hsphere/shared'
'--with-imap-ssl=shared,/usr' '--with-mcal=shared,/hsphere/shared'
'--with-mysql=shared,/usr' '--with-mysqli=shared'
'--with-pgsql=shared,/usr' '--with-sqlite=shared'
'--enable-sqlite-utf8' '--with-unixODBC=shared,/hsphere/shared'
'--with-xmlrpc=shared' '--enable-htscanner' '--enable-track-vars'
'--enable-trans-sid' '--enable-memory-limit'
'--enable-force-cgi-redirect' '--enable-fastcgi'
'--with-config-file-path=/hsphere/local/config/httpd/php5'
'--with-config-file-scan-dir=/hsphere/local/config/httpd/php5/php.d'
'--enable-magic-quotes' '--with-pear=/hsphere/shared/apache/libexec/php5ext/php'
'--with-mime-magic=/hsphere/local/config/httpd/magic' '--with-inifile'
'--with-flatfile' '--!
 enable-pdo=shared' '--with-pdo-sqlite=shared' '--with-pdo-mysq!
 l=shared' '--with-pdo-pgsql=shared' '--enable-soap=shared'
'--prefix=/hsphere/shared/php5' '--with-apxs=/hsphere/shared/apache/bin/apxs'
'--enable-cli'
/hsphere/local/config/httpd/php5/php.d/soap.ini,
soap
soap.wsdl_cache => 1 => 1
soap.wsdl_cache_dir => /tmp => /tmp
soap.wsdl_cache_enabled => 1 => 1
soap.wsdl_cache_limit => 5 => 5
soap.wsdl_cache_ttl => 86400 => 86400


The is no matter in which mode PHP is running. The problem take place as well on Apache handler
(libphp mode) and CGI/FastCGI modes.


The error looks like in:
 - Apache error_log :
[Wed Mar 11 08:23:34 2009] [error] [client 192.168.128.234] failed to load external entity "https://soap.amazon.com/schemas3/AmazonWebServices.wsdl"

 - php_error.log :
[11-Mar-2009 08:23:34] PHP Fatal error:  SOAP-ERROR: Parsing WSDL: Couldn't load from 'https://soap.amazon.com/schemas3/AmazonWebServices.wsdl'
: failed to load external entity "https://soap.amazon.com/schemas3/AmazonWebServices.wsdl"
 in /hsphere/local/home/web-2/web2.r527/soap.php on line 2

The test script used:
# cat soap.php
<?php
$client = new SoapClient("https://soap.amazon.com/schemas3/AmazonWebServices.wsdl",
array('exceptions' => 0));
$result = $client->__getFunctions();
if (is_soap_fault($result)) {
    trigger_error("SOAP Fault: (faultcode: {$result->faultcode}, faultstring:
{$result->faultstring})", E_USER_ERROR);
}
else {
    var_dump($result);
}
?>



We investigated the problem very close and discovered that the reason is with libxml libraries
statically compiled into PHP.
Details: PHP is compiled with the following XML related options:
--with-xml=/hsphere/shared
--with-libxml-dir=/hsphere/shared
--with-xmlrpc=shared

If libxml2 static library is available in the {prefix} directory (libxml2.a), PHP includes libxml2
library into itself at buildtime.
In that case, soap FAILS to work with https.

If libxml2 shared library is available in the {prefix} directory (libxml2.so), PHP doesn't
includes libxml2 library into itself at buildtime, but seach the library at runtime.
In that case, soap works with https fine.

Please let me know if more details required.
Also please advise the issue solution.

------------------------------------------------------------------------
[2008-07-07 17:29:21] john at soundreal dot co dot uk

I've cracked this, problem was with my php configuration. Needed to 
recompile using

-with-openssl

now working fine on Mac os 10.4.11 with php 5.2.6

------------------------------------------------------------------------
[2008-06-19 14:22:57] trippinbilly25 at gmail dot com

I have solved this problem on Windows XP by replacing the following .dll files in the System32
folder with their versions located in the php folder:

libeay.dll
ssleay32.dll

For some reason an error was logged in my Apache error log that said OpenSSL was not being loaded,
replacing these files solved the problem for me.

------------------------------------------------------------------------


The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at

    https://bugs.php.net/bug.php?id=31050


--
Edit this bug report at https://bugs.php.net/bug.php?id=31050&edit=1


Thread (19 messages)

« previous php.bugs (#186274) next »