おはよう!私は壁に当たった。PHP/Windows Server/IIS別のサーバーのフォルダへのシンボリックリンクを介してPHP経由でファイルにアクセス
私はPHPを別のサーバー上のフォルダからロードしようとしていますが、多くの方法とバリエーション(IIS/PHPがWindows認証を使用)を試していますが、解決策はまだありません。私はとても近く、私はそれを味わうことができます。
ファイルは、他のサーバー上のフォルダにあります。 \\otherServer\my_photos
私はこれにアクセスするために、PHPサイトをホストしているサーバー上にシンボリックリンクを作成しました。
私は、例えば、ページがアクセス権を持っているかどうかを判断するために様々なテストをしていますC:\my_photos > \\otherServer\my_photos
:
$path = 'C:\\my_photos';
$isReadable = is_readable($path);
var_dump($isReadable);
上記リターンTRUE
。
$path = 'C:\\my_photos\photo_1.jpg';
$isReadable = is_readable($path);
var_dump($isReadable);
それはFALSE
を返します。私はこれを行う場合は、
。
ファイルphoto_1.jpg
のアクセス権は、my_photos
というフォルダと同じです。そのため、他のサーバーのファイルへのアクセスに影響を与える何らかのセキュリティなどの原因が考えられますが、アイデアがありません。私はいかなる援助にも感謝の気持ちで報い、個人的なメッセージであなたに絵を描くことさえ喜んでいます。
UPDATE: 我々は(ApplicationPoolIdentityの下で実行されている)、それはa)のそれはいくつかの混乱クロスサーバセキュリティの問題ではないことを示唆しているように思われ、作品およびb)の問題が日にWindows認証オフと匿名認証を切り替えた場合PHP/fastCGIがWindowsユーザーを偽装する方法にもっと関連しています。 Windows認証に戻り、テストを続行します!
コマンドプロンプトまたはイメージビューアからイメージを開くことはできますか?そうでない場合はまずこれを解決してください。 – Nic3500
他のサーバーにWebサーバーを置くことはできませんか? HTTPだけが必要な場合、人生ははるかに簡単です – icc97
\\ otherServer \ my_photosをサーバー上のドライブ文字にマップしてみませんか?シンボリックリンクよりも優れています。また、フォルダ自体だけでなく、すべてのファイルに対して正しいアクセス権が必要です。それらは必ずしも同じではありません。何らかの種類のパススルー認証を使用しようとしている場合を除き、通常、アプリケーションが実行されているアカウントには、リソースにアクセスするユーザーのアカウントではなく、アクセス許可を与える必要があります。 – ADyson