フォルダへのアクセス権の設定方法を教えてください
Webサーバ上のプログラムからファイルサーバへアクセスしてフォルダの作成やファイル保存をしたいのですが、フォルダへのアクセス権がないためにエラーになります。
フォルダへのアクセス権の設定方法を教えてください。
■環境等の詳細
■Webサーバ
OS:Windows Server 2016
WORKGROUP
WEB:InternetInfomationServer 10 (IIS 10)
PHP:7.2.1
このサーバのPHPプログラム内からファイルサーバにある共有フォルダへアクセスして、フォルダの作成やファイルの保存を行いたい。
■ファイルサーバ
OS:Windows Server 2016
WORKGROUP
このサーバ上に共有フォルダを作成している。(\\fileserver\work)
Webサーバ上のIISのアプリケーションプールは
名前 :"abcdefg"(DefaultAppPoolから変更してある)
.Net CLRバージョン:v4.0
マネージパイプラインモード :統合
ID :ApplicationPoolIdentity
Webサーバのタスクマネージャでw3wp.exeのユーザ名を見ると"abcdefg"になっている。
WebサーバOSにログインしてからファイルサーバ上の共有フォルダへアクセスすると問題なく閲覧・フォルダの作成・ファイルの作成ができます。
PHPのログに書かれるエラーメッセージ
mkdir(): Permission denied {"userId":6,"exception":"[object] (ErrorException(code: 0): mkdir(): Permission denied at C:\\-(PHPファイルのパス)-XXXXXXX.php:60)
C:\\-(PHPファイルのパス)-XXXXXXX.php(60): mkdir('\\\\\\\\fileserver\\\\work...', 511)
エラーになった箇所のPHPのソースコードはmkdir("\\fileserver\work\123",0777)としてあります。
ちなみに、Webサーバ上に作成した共有フォルダには問題なくアクセスできて閲覧・フォルダの作成・ファイルの作成はできます。
(PHPプログラムのバグではないと思っています。)
ネットでいくつか調べてやってみたのですが、うまくいきません。
https://technet.microsoft.com/ja-jp/library/ee886292.aspx
共有フォルダに対してIISユーザ(abcdefg)の権限が付与されていないのでは?と思い、"IIS AppPool\abcdefg"を設定したのですが、設定後に確認すると追加設定した箇所が"不明なアカウント(s-1-5-82-...)"となってしまいます。
お礼
ご丁寧に画像まで付けていただきありがとうございます。 確認していて気付いたのですが、該当ファイルにインターネットゲストアカウントがついていませんでした。フォルダまでは継承されていたのですが、ファイルまで継承されておらずエラーが出ていました。 お手数をお掛けいたしましたm(_ _)m