0

ここで問題が発生しています

<?php 
        include('smsconfig.php');
        include("SMTPconfig.php");
        include("dbconnect.php");

        define("SITE_URL", "http://gf2fyu.blah.com");
        $GLOBAL_REST_URL = "gf2fyu.domain.com/organization/";

        $headers = array(
                        'X-MYDOMAIN-Secret:VuFlRQv40SUp0y1AXflMD0hWw8ZiiTu08f9ZXc0AYFc=',
                        'Content-Type: application/json; charset=UTF-8',
                        'Accept: application/json; charset=UTF-8',
        );
        //$json = array2json($ages);
        $curl_handle=curl_init();
        curl_setopt($curl_handle,CURLOPT_URL,$GLOBAL_REST_URL);
        curl_setopt($curl_handle,CURLOPT_CONNECTTIMEOUT,2);
    //    curl_setopt($curl_handle, CURLOPT_POSTFIELDS,$json);
        curl_setopt($curl_handle, CURLOPT_HTTPHEADER, $headers);
        curl_setopt($curl_handle,CURLOPT_RETURNTRANSFER,1);
        $buffer = curl_exec($curl_handle);
        curl_close($curl_handle);
        $getit =  json_decode($buffer, true);
        $smskey =  substr(number_format(time() * rand(),0,'',''),0,5);
        print_r($getit);
?>

上記のコードは、ローカルサーバーとmozila RESTで実行している場合、正常に機能します

クライアントですが、このコードを本番バージョンに配置しようとしているときはいつでも

このコードはRESTサーバーにヒットしていません。

ここで何が問題なのか教えてください。

私はMOzilaで同じヘッダーを使用していますが、これも正常に機能しています

Nginxを実行しています

4

1 に答える 1

1

コメントにはすべてが含まれていますが、順番に並べておきましょう。

1)サーバーのPHPにCurlがインストールされていない可能性があります。確認するには、エラーレポートをオンにします(またはエラーログを確認します)。または、より堅牢な方法は、関数をチェックすることです。コードに以下を追加します(インクルードの直後)

if (!function_exists('curl_init')) {
     die('Curl not installed');
}

解決策:file_get_contentsを試すことができますが、コメントに記載されているように、これも無効になっているため、通常はお勧めしません。ヘッダーを渡す必要がある場合は、「コンテキスト」でこれを行うことができます(呼び出しの3番目のパラメーター-マニュアルを確認してください)。より良いオプションは、curlをインストールすることです(またはそれをインストールするためのサポートを取得します)。

2)ファイアウォールが有効になっている可能性があります。これを確立するには、 curl_getinfo()をチェックし、結果を画面にダンプします(テスト用)。これにより、ブロックされたか、通過したかがわかります。詳細については、マニュアルを参照してください(上記のリンク)。

3)問題を引き起こしているコードの上位にエラーがある可能性があります。エラーログを確認するか、次のコマンドでerror_reportingをオンにします

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

ただし、最終的に本番環境に入るときは、これらの行を削除することを忘れないでください。

于 2012-10-13T10:29:52.490 に答える