• 締切済み

phpのファイル操作について

ファイル操作について、上手く作動しなくて困っています。 PHPは今勉強している最中で、ほとんど初心者です。 ページを開いたときに、テキストファイルに書き込む操作をしたいのですが、うまくいきません。 ローカルホストで試したときには、きちんと書き込むことができるのですが、 借りているサーバーで試すと、”ファイル書き込み失敗”と出てしまいます。 http://ribbon.to/ こちらのサーバーを借りています。 原因がわからないので、少しでもいいのでお力をいただきたいです。 よろしくお願いします。 ここからPHPです $folder = "hoge"; if (!file_exists($folder)) { mkdir($folder,0733); } $filename = "$folder/".date("m").".txt"; $fh = @fopen($filename, "a"); if ($fh == FALSE) { exit("ファイル書き込み失敗"); }else { // 排他ロック flock($fh, LOCK_EX); // メッセージ作成 $msg = date("Y/m/d H:i:s"); // 書き出し fputs($fh, $msg); // ロックを解除 flock($fh, LOCK_UN); // ファイルを閉じる fclose($fh); }

みんなの回答

  • t_ohta
  • ベストアンサー率38% (5241/13712)
回答No.2

mkdir($folder,0733) は $folder で指定したディレクトリを 733 のパーミッションで作成する命令です。 この場合、新しいディレクトリのパーミッションは 733 になります。 新しいディレクトリを作成する場所(親ディレクトリ)には、Webサーバの実行ユーザーに実行権限が必要になります。 Webサーバは通常、httpユーザーとかnobodyユーザーで実行されています。 その実行ユーザーが親ディレクトリに、どのような権限を持っているかでコマンドが実行できるか決まります。

  • t_ohta
  • ベストアンサー率38% (5241/13712)
回答No.1

ファイルを書き込もうとしているディレクトリに、Web Serverの実行ユーザーの書き込み権限がありますか?

hanayoyo
質問者

お礼

mkdir($folder,0733) この部分は、権限を指定する命令?ではないのでしょうか…? FFFTPから、権限を指定できました。 回答ありがとうございます。

関連するQ&A