phpのfopenで質問です。permission deniedが出るときと出ない時があるのですが、可能性として、どんなことが考えられますでしょうか?

常にpermission deniedが出るのであれば、ファイルやフォルダに対するアクセス権がそもそも無いのだと思うのですが、たまにpermission deniedが出るくらいなので、原因が分からず困っています。
これだけだと原因究明に対する情報が足りないようであれば、他にどんな情報があれば良いか教えてください。

回答の条件
  • 1人1回まで
  • 登録:
  • 終了:2019/01/18 11:17:56
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:pyopyopyo No.1

回答回数377ベストアンサー獲得回数98

ポイント99pt

情報が少ないので当てずっぽうですが
1) そのファイルを開く処理は一箇所だけですか?
2) 別の処理で一時的にパーミッションを変えるようなコードが入っていませんか?
3) ディスクの空き容量は十分にありますか?
4) サーバー上で,ファイルを開きすぎていませんか?
あたりは確認されましたか?

1)2)については
別の処理でも,そのファイルを読み書きするようになっている場合は
排他処理の代わりに一時的にファイルのパーミッションを変更する方法があります
(実際には,排他処理のつもりで書かれた,排他処理になっていないバグのあるプログラムの場合がほとんどですが)

cronでの別処理とかがあるなら,そのコードもチェックした方がいいとおもいます

3)4) については ディスクがパンクしている場合,システム上でファイルを開きすぎている場合
などに,OSがpermission denied のエラーを出す場合があります


OSの種類も,サーバーの種類もわからないのですが
とりあえず思いついたことを書きました.参考になれば幸いです.

id:MrB

ありがとうございます。
OSはwindowsになります。
処理は1ヶ所で同じ処理ですが、関数にしてるので、複数の場所から呼ばれる可能性はあります。
ただ、パーミッション周りを変更するようなコードは全く書いてはいないです。
3)は問題なさそうですが、
4)は可能性としてはありそうなのですが、どうやって調べたら良いでしょうか?

2019/01/16 08:42:31

その他の回答1件)

id:pyopyopyo No.1

回答回数377ベストアンサー獲得回数98ここでベストアンサー

ポイント99pt

情報が少ないので当てずっぽうですが
1) そのファイルを開く処理は一箇所だけですか?
2) 別の処理で一時的にパーミッションを変えるようなコードが入っていませんか?
3) ディスクの空き容量は十分にありますか?
4) サーバー上で,ファイルを開きすぎていませんか?
あたりは確認されましたか?

1)2)については
別の処理でも,そのファイルを読み書きするようになっている場合は
排他処理の代わりに一時的にファイルのパーミッションを変更する方法があります
(実際には,排他処理のつもりで書かれた,排他処理になっていないバグのあるプログラムの場合がほとんどですが)

cronでの別処理とかがあるなら,そのコードもチェックした方がいいとおもいます

3)4) については ディスクがパンクしている場合,システム上でファイルを開きすぎている場合
などに,OSがpermission denied のエラーを出す場合があります


OSの種類も,サーバーの種類もわからないのですが
とりあえず思いついたことを書きました.参考になれば幸いです.

id:MrB

ありがとうございます。
OSはwindowsになります。
処理は1ヶ所で同じ処理ですが、関数にしてるので、複数の場所から呼ばれる可能性はあります。
ただ、パーミッション周りを変更するようなコードは全く書いてはいないです。
3)は問題なさそうですが、
4)は可能性としてはありそうなのですが、どうやって調べたら良いでしょうか?

2019/01/16 08:42:31
id:kaoato No.2

回答回数236ベストアンサー獲得回数86

ポイント1pt

>OSはwindowsになります。

・ファイル名が、Windowsで使えない文字、文字列が入ってる
Windowsでは予約デバイス名が入ってるファイル名は使えなかったと思う

・パスの指定が、Windows形式でない

id:MrB

ありがとうございます。
質問にも書いてますが、エラーが出ないことのほうが多いので、上記ではないかとは思います。
(普通は問題なくて、ごくまれにエラーになる感じです。)

2019/01/18 11:16:18
id:MrB

質問者から

MrB2019/01/28 15:57:25

まだ解決はできてませんが、終了時間になりましたので、一旦終了しておきます。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません