PHP curl mis d'erreur 500

J'ai un curl mis requête qui fonctionne très bien sur mon localhost, mais sur le serveur live il jette en arrière une erreur 500. Voici mon code:

public static function send( $xml )
{
    $xml = str_replace( "\n", "", $xml );

    //Write to temporary file
    $put_data = tmpfile();
    fwrite( $put_data, $xml );  
    fseek( $put_data, 0 );

    $options = array(
            CURLOPT_URL => 'http://*****************/cgi-bin/commctrl.pl?SessionId=' . Xml_helper::generate_session_id() . '&SystemId=live',
            CURLOPT_RETURNTRANSFER => 1,
            CURLOPT_HTTPHEADER => array( 'Content-type: text/xml' ),
            CURLOPT_PUT => TRUE,
                CURLOPT_INFILE => $put_data,
            CURLOPT_INFILESIZE => strlen( $xml )
        );

        $curl = curl_init();
        curl_setopt_array( $curl, $options );
        $result = curl_exec( $curl );
        curl_close( $curl );

        return $result;
    }

J'ai curl est activé sur le serveur!

Quelqu'un a une idée pourquoi il ne fonctionne pas sur le serveur? Je suis en hébergement mutualisé si cela aide.

J'ai aussi activé les rapports d'erreur en haut du fichier, mais pas d'erreurs spectacle après la boucle est terminée. Je viens d'obtenir le générique de la page d'erreur 500.

Grâce

Mise à JOUR:

J'ai été en contact avec le client et ils ont confirmé que l'information qui est envoyé est reçu par eux et inséré dans leur système de back-office. Donc, il doit être quelque chose à voir avec la réponse qui en est la cause. C'est un petit bloc de code xml qui est supposé être retourné.

UNE AUTRE MISE À JOUR

J'ai essayé le même script sur un serveur différent et heroku et j'obtiens toujours le même résultat.

UNE AUTRE MISE À JOUR

Je pense que j'ai peut-être trouvé la route de la question. Le script semble expirer à cause d'un timeout sur FastCGI et parce que je suis sur un hébergement mutualisé, je ne peux pas le changer. Quelqu'un peut-il confirmer cela?

DERNIÈRE MISE À JOUR

Je suis entré en contact avec mon fournisseur d'hébergement et ils ont confirmé que le script a été expirer en raison de la valeur de délai d'expiration sur le serveur et non pas celui que je peux y accéder avec n'importe quel fonction PHP ou la fonction ini_set().

L'erreur 500 est généré sur le serveur, ici http://************/cgi-bin/commctrl.pl?SessionId=..., il n'est pas généré par la boucle. Ce que vous devez faire est de regarder dans le journal des erreurs sur votre éloignés de l'hôte, et non pas sur celui qui exécute le script curl.
Merci pour les commentaires, comment se fait-il fonctionne sur mon localhost? Ne serait-il pas renvoyer une erreur 500, peu importe où je y accéder???
Est-ce que votre non-serveur local ont curl lib installé?
Oui, c'est fait, j'ai parlé dans le post
vous avez die( $result ); avant le return $result;

OriginalL'auteur David Jones | 2013-11-18