私はUbuntu Server 11.10からPHPアプリケーションを実行しようとしています。このアプリはWindowsのApache + PHPの下でうまく動作します。私は2つのOSの間に単に&ペーストをコピーすることができる他のアプリケーションを持っており、両方で動作します。LinuxのPHPカール:Windowsのカールの違いは何ですか?
しかし、これはPHPライブラリの強壮剤(RESTful webservices)を使用し、私たちはPHPのcURLモジュールを作ってくれます。問題は私が問題を見つけるのを不可能にするエラーメッセージを取得していないです。
I NTLM認証を使用する(しなければならない)、これはAuthenNTLM Apacheモジュールで行われます。これらのファイルのみなので
order deny,allow
deny from all
allow from 127.0.0.1
Satisfy any
:カールがAuthenNTLM認証を無効にフェッチする必要が
Order allow,deny
Allow from all
PerlAuthenHandler Apache2::AuthenNTLM
AuthType ntlm
AuthName "Protected Access"
require valid-user
PerlAddVar ntdomain "domainName server"
PerlSetVar defaultdomain domainName
PerlSetVar ntlmsemtimeout 2
PerlSetVar ntlmdebug 1
PerlSetVar splitdomainprefix 0
すべてのファイルを同じサーバーからのcURLによってfectehdを実行すると、アクセスはlocalhostに限定することができます。
可能性のある問題は、以下のとおりです。
のNTLM認証は、cURLの(AllowOverrideのすべてが設定されているにもかかわらず)
カールは、Linux上で動作が異なりますによって要求されたファイルに対して上書きされていない
$ch = curl_init(); curl_setopt($ch, CURLOPT_COOKIE, $strCookie); curl_setopt($ch, CURLOPT_URL, $baseUrl . $queryString); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $html = curl_exec($ch); curl_close($ch);
他?
Apacheのログは言う:[エラー] /myApp/webservice/local/viewList.php
に悪い/ミッシングNTLM /基本認証ヘッダー
しかし、このディレクトリはNTLM認証
をオーバーライドする必要がありますEDIT:
同じリソースにアクセスするための窓からcurlコマンドラインを使用して私が取得:
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html>
<head>
<title>406 Not Acceptable</title>
</head>
<body>
<h1>Not Acceptable</h1>
<p>An appropriate representation of the requested resource /myApp/webservice/myResource could not be found on this server.</p>
Available variants:
<ul>
<li><a href="myResource.php">myResource.php</a> , type application/x-httpd-php</li>
</ul>
<hr>
<address>Apache/2.2.20 (Ubuntu) Server at localhost Port 80</address>
</body>
</html>
この投稿は[sf]にもっと適していると思います – Lix