フォルダへのアクセス権の設定方法を教えてください
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-...)"となってしまいます。
お礼
500 だけではとにかく何もわかりません (たとえば、ライブラリへのパスを外してもこれになる) ので、何か壊れている可能性も考えて、ゼンド フレイムワークのライブラリを消して再セットアップしました。 果たして、状況に変化はありませんでした。 もう少し何かの糸口がつかめる方法があればよいのですが...。ウェブ検索でも不動作の報告があまり見つからないので、困っています。
補足
アパッチのエラ ログ (error_log) のほうは [Wed Oct 03 16:42:00 2007] [error] [client nnn.nnn.nnn.nnn] 500 Internal Server Error - Requested URI: /var/www/html/index.php などとなっているだけで、ウェブブラウザから得られる情報以上のものはありませんでした (あとも日時とファイル名が異なるだけです)。別途設定したものと違い、生ログというものはもっと詳しい情報が得られると思っていただけに、衝撃的です。 /var/www/html/.htaccess の追加記述のほうもおっしゃるとおりに書き換え、念のために httpd を再読込みして試しましたが、同様です。