I came across this issue on Saturday, and I’m totally stumped. I’ll explain the issue and maybe someone can confirm that I’m not losing my mind. I’ve set up two web servers on a LAMP stack; one public facing and the other internal used for testing. The site gets data from Salesforce and uses their SOAP API. In the configuration file, I reference the username, password, and location of the WSDL file as a URL. It’s been working fine for the past few months, up until Saturday night. The error I receive is.
PHP Fatal error: SOAP-ERROR: Parsing WSDL: Couldn't load from 'http://domain.com/soapclient/partner.wsdl.xml' Failed to load external entity "http://domain.com/soapclient/partner.wsdl.xml" in /var/www/soapclient/SforceBaseClient.php on line 57
This error shows up on the public facing server. I verified that the file still exists, and that nothing unexplainable took place on the system. I also accessed the XML file directly using the same URL with no issues. However, the error indicates that it can’t load the file.
I quickly logged into the internal server to see if the issue is affecting both systems, and turns out the internal server is working perfectly.
The configuration file references the XML file with the link:
I modified the link to use the local path on the server:
Upon making this change, services were restored normally and the site, which worked fine for months, was now back online. Is there something I am overlooking here?