ramiismail / dopresskit

presskit() - spend time making games, not press.
GNU General Public License v3.0
133 stars 50 forks source link

500 internal server error when adding 'promoter' #62

Open Vixxd opened 7 years ago

Vixxd commented 7 years ago

I am adding the following to the bottom of my already existing and implemented data.xml for my game project, before

    <promoter>
        <product> ... </product>
    </promoter>

This causes that particular project page not to load with 500 internal server error. I checked the error_log and there is nothing that isn't normally there (PHP Warning: Module 'zip' already loaded in Unknown on line 0).

Do I need to reinstall the press kit and enable a particular setting? I have changed a number of links from http to https within sheet.php (things like youtube embed or the j-query library links), however even removing that/implementing it for the Promoter line made no change:

$promoterxml = simplexml_load_file('https://promoterapp.com/dopresskit/'.$promotercode);

Thanks, Vicky

Vixxd commented 7 years ago

Bump :(

Vixxd commented 7 years ago

I've stopped using Promoter over this :(

ker0chan commented 7 years ago

Same here, one of our presskit() page stopped working. After looking around, it seems loading the XML file from Promoter is problematic. Everything runs fine on a local server, but once it's uploaded to our web hosting it stops working.

I enabled the error display with

error_reporting(E_ALL);
ini_set('display_errors', 1);

And this is what I got:

Warning: simplexml_load_file(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed in /home/****/sheet.php on line 182

Warning: simplexml_load_file(): Failed to enable crypto in /home/****/sheet.php on line 182

Warning: simplexml_load_file(https://www.promoterapp.com/dopresskit/****): failed to open stream: operation failed in /home/****/sheet.php on line 182

Warning: simplexml_load_file(): I/O warning : failed to load external entity "https://www.promoterapp.com/dopresskit/****" in /home/****/sheet.php on line 182

Apparently our web hosting server can't verify Promoter's SSL certificate. PHP 5.6 now verifies the peer's certificate by default when using SSL (see: http://php.net/manual/en/migration56.openssl.php). Using a SSL certificate checker (like https://www.sslshopper.com) shows us that Promoter's certificate is indeed valid, so it should work fine. Now, disabling this check could solve the problem, but as pointed in this article: https://snippets.webaware.com.au/howto/stop-turning-off-curlopt_ssl_verifypeer-and-fix-your-php-config/ it is a terrible idea. Thankfully there's a solution, given in this same article (TL;DR: update your CA root certificate bundle).

I don't have access to this configuration on my side, so I'll write a support ticket to my hosting provider.

Promoter might have updated its SSL certificate, or enabled HTTPS redirection in the past months. Or maybe our hosting provider (and yours/your server) updated to PHP 5.6 recently. In any case, this should get solved pretty easily, but apparently, it has nothing to do with presskit().

Cheers!