HowtoForge Forums | HowtoForge - Linux Howtos and Tutorials

HowtoForge Forums | HowtoForge - Linux Howtos and Tutorials (http://www.howtoforge.com/forums/index.php)
-   Installation/Configuration (http://www.howtoforge.com/forums/forumdisplay.php?f=27)
-   -   SOAP Error: Could not connect to host (http://www.howtoforge.com/forums/showthread.php?t=60623)

minddigger 20th February 2013 14:19

SOAP Error: Could not connect to host
 
Hi, I want to use the API of ISPConfig 3.0.4.6 and therefore I have made a test script (using example), simply to connect to the SOAP server.
It runs on a Ubuntu 12.04.2 LTS precise server.
I have to mention that I had for about 4 months ago a working script, but now, after I have upgraded the server, it no longer works.

The script is very common:

$username = 'remoteusr';
$password = 'password';


$soap_location = 'https://myserverip:8080/remote/index.php';
$soap_uri = 'https://myserverip:8080/remote/';


$client = new SoapClient(null, array('location' => $soap_location,
'uri' => $soap_uri,
'trace' => 1));

// ini_set('soap.wsdl_cache_enabled',0);
// ini_set('soap.wsdl_cache_ttl',0);

try {
//* Login to the remote server
if($session_id = $client->login(trim($username),trim($password))) {
echo 'Logged into remote server sucessfully. The SessionID is '.$session_id.' - <br>';
}

//* Logout
if($client->logout($session_id)) {
echo "Logout for session ".$session_id;
}

} catch (SoapFault $e) {
var_dump($client->__getLastRequest())."<br>";
var_dump($client->__getLastResponse())."<br>";

echo "<br>Please contact the server administator<br>";
die('SOAP Error: '.$e->getMessage());
}


The getLastRequest gives me the username and password back
The getLastResponse gives me NULL

I don't get what is wrong here, especially where it did work before!!

till 20th February 2013 14:48

The error "SOAP Error: Could not connect to host" indicates that either $soap_location or $soap_uri are incorrect so that sopa could not reach a server under that url.

minddigger 20th February 2013 15:18

Yes that could be possible, but... The $soap_location AND the $soap_uri are right. They are besides the /remote part the same as what I use to login to my ISPConfig. Offcourse the 'myserverip' should be replaced by the IP or URL of the real server, but I will not encourage anyone to hack my server at this moment ;-)

When I enter the whole URL in a browser, I get a blank screen as well. I think at least it should display something...

till 20th February 2013 15:31

Quote:

When I enter the whole URL in a browser, I get a blank screen as well. I think at least it should display something...
No, it has to be blank. When you connect to a soap server with a web borwser, then nothing gets displayed.

Did you run the browser on the same server that you run the php script on, so the connection is made from same network interface and IP?

minddigger 20th February 2013 15:35

Yes, I developped it on my Desktop PC and call the servers SOAP from there. It did work in the past as I did mention earlyer and I was able to add a user as well in the API, but now it does not work anymore. As far as I can see nothing has changed, besides the upgrade of the (Ubuntu) server OS.

till 20th February 2013 15:46

maybe the php soap extension is not installed of the server anymore. You can e.g. check that with the phpinfo() function if soap is available.

minddigger 20th February 2013 17:57

Nope, this have I already checked. SOAP is available.

minddigger 22nd February 2013 07:35

It even getting stranger: When I use the script on a different server, or from my home location, where 'myserverip' is my server IP address or my server URL like this :

$soap_location = 'https://myserverip:8080/remote/index.php';
$soap_uri = 'https://myserverip:8080/remote/';

I got a SOAP Fault.

When I run the same script on the SOAP server itself using
$soap_location = 'https://localhost:8080/remote/index.php';
$soap_uri = 'https://localhost:8080/remote/';

it works fine!!!

When I call the SOAP servers ISPConfig admin screen from a different server, using
'https://myserverip:8080' or 'https://myserverURL:8080' I got the login screen of ISPConfig, so it could not be a DNS problem.
I'm confused because I have tried it on different servers with ISPConfig and everywhere got the same result....


All times are GMT +2. The time now is 16:27.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2014, vBulletin Solutions, Inc.