Forum Discussion
iControl - PHP - Errors, only on Linux.
Hi All,
I'm pulling some hair out here trying to use PHP's built-in soapclient against F5 iControl, but it only appears to be when the script is run on it's destined Linux system. Works fine on my dev box which is Windows 7 SP1 (using XAMPP).
The error I get is:
SOAP-ERROR: Parsing WSDL: Couldn't load from 'https:///iControl/iControlPortal.cgi?WSDL=System.SystemInfo' : failed to load external entity "https:///iControl/iControlPortal.cgi?WSDL=System.SystemInfo"
My Script looks like the following, which seems to be standard:
$username = "";
$password = "";
$host = "";
$location = "https://$host/iControl/iControlPortal.cgi";
$client = new SoapClient(sprintf("%s?WSDL=%s", $location, "System.SystemInfo"),array('location'=>$location,'login'=>$username,'password'=>$password));
$systemInformation = $client->get_system_information();
$productInformation = $client->get_product_information();
I have suspected originally it was something to do with SSL verifying peers, allowing self certified certs and so forth, but no amount of stream_contexts makes a difference.
Distributions I've tried running this on Arch, Centos and Ubuntu.
I appreciate this may not be specifically an F5 iControl issue, but I would expect I'm not the only one to run into this issue... Surely?
I can't use iControlREST at this time (I'd love to!) as I still have some pre-11.5.0 BIG-IPs on my estate
Any advice would be greatly received!
Thanks,
JD.
1 Reply
I'm assuming you aren't actually passing through "" as the error indicates and that "" is actually the address of your bigip management interface. If you are passing through a correct hostname and user/pass, then it's most likely due to BIG-IP's self-signed certs. Other tool kits allow you to bypass hostname verification. I found this link that may be helpful to you:
http://stackoverflow.com/questions/8443618/disable-certificate-verification-in-php-soapclient
It shows doing something like this:
$context = stream_context_create(array( 'ssl' => array( 'verify_peer' => false, 'verify_peer_name' => false, 'allow_self_signed' => true ) )); $client = new SoapClient(null, array( 'location' => 'https://...', 'uri' => '...', 'stream_context' => $context ));
Hope this helps...
-Joe
Recent Discussions
Related Content
* Getting Started on DevCentral
* Community Guidelines
* Community Terms of Use / EULA
* Community Ranking Explained
* Community Resources
* Contact the DevCentral Team
* Update MFA on account.f5.com