cocoスペース レンタルサーバーを使っていますが、PHPでファイル生成を実行した時に以下のエラーが出ました。

【スクリプト】
<?PHP
umask(0);
$file="index.html";
$string="テスト";
$file=trim($file);
$file_dat=fopen($file,"w+");
flock($file_dat, LOCK_EX);
fputs($file_dat, $string);
flock($file_dat, LOCK_UN);
chmod($file,0666);
?>
【エラー】
Warning: fopen(index.html) [function.fopen]: failed to open stream: Permission denied in ... on line 10
Warning: flock() expects parameter 1 to be resource, boolean given in ... on line 11
Warning: fputs(): supplied argument is not a valid stream resource in ... on line 12
Warning: flock() expects parameter 1 to be resource, boolean given in ... on line 13
Warning: chmod() [function.chmod]: No such file or directory in ... on line 14
全く同じスクリプトを、さくらレンタルサーバーで実行すると、ファイルが正常の生成されます。
色々調べてみて、実行権限がないからというのはわかってきたのですが・・
sudo exec
を使うのかな~、でもアパッチをいじらないといけないんですよね??
権限について何かやってみたことがないので、さっぱりわかりません!

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2010/04/20 15:06:22
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答1件)

id:Bombastus No.1

回答回数409ベストアンサー獲得回数52

ポイント60pt

そのスクリプトを設置しているディレクトリに書き込み権限がないため、fopen関数でエラーが発生して、それに引きずられて以降のエラーが発生しています。

PHPがどの権限で実行されているか分からないので、そのディレクトリのパーミッションをとりあえず '777' にしてみてください。

余談ながら、fopen関数の戻り値のエラーチェックは必須かと存じます。

id:goodbabies

さっそくの回答ありがとうございます。

さきほどPHPファイルのパーミッションFFFTPで777にしてみました。

が、エラー内容は全く一緒でした・・・。色々パーミッションについては試してみたのですが・・・。

あ、ちなみに自分はPHP初心者なので分からないのですが、

>余談ながら、fopen関数の戻り値のエラーチェックは必須かと存じます。

とは、例えばどのようにされるのですか??

2010/04/20 13:14:56

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

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

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

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

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