EASY PHP を使用して、仮想マシンで PHP でアプリケーションを作成しました (Windows ではなく Linux を使用する必要があることはわかっています:))。現在、プログラムを Linux リアル サーバー (実際、これは私の Synology ディスク ステーションです) に移動しましたが、何も機能しなくなりました。デバッグを行ったところ、curl 関数から何も返されないようです。
私の Windows サーバーでは、curl のバージョンは 7.21 でしたが、現在 Synology のバージョンは 7.26-DEV です。DEV版を使っているせいでしょうか。
これがコードの一部です。私は非常に基本的なカールを使用しているため、カールを有効にするために何かをする必要があるかどうかわかりません。Linux サーバーで phpinfo を実行すると、curl サポートが有効になっていることがわかります。
コード:'
$ch = curl_init();
if ($debug == 1)
{
curl_setopt($ch, CURLOPT_VERBOSE, 1);
}
curl_setopt($ch, CURLOPT_FRESH_CONNECT, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $xml_request);
curl_setopt($ch, CURLOPT_COOKIESESSION, true);
curl_setopt($ch, CURLOPT_COOKIEJAR, './cookie/cookie.txt');
curl_setopt($ch, CURLOPT_URL,$ihcip."ws/AuthenticationService");
curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
if (preg_match('`^https://`i', $ihcip))
{
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
}
if ($debug == 1) {
curl_setopt($ch, CURLOPT_HEADERFUNCTION, 'dbg_curl_data');
curl_setopt($ch, CURLOPT_WRITEFUNCTION, 'dbg_curl_data');
curl_setopt($ch, CURLINFO_HEADER_OUT, true);
}
$result = curl_exec($ch);
if ($debug == 1)
{
echo '<fieldset><legend>request headers</legend> <pre>', htmlspecialchars(curl_getinfo($ch, CURLINFO_HEADER_OUT)), '</pre> </fieldset>';
echo '<fieldset><legend>xml request</legend> <pre>', htmlspecialchars($xml_request), '</pre> </fieldset>';
echo '<fieldset><legend>response</legend> <pre>', htmlspecialchars(dbg_curl_data(null)), '</pre> </fieldset>';
}
'