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回まで
  • 13歳以上
  • 登録:2010/04/20 12:12:32
  • 終了:2010/04/20 15:06:22

回答(1件)

id:Bombastus No.1

ホーエンハイム回答回数409ベストアンサー獲得回数522010/04/20 12:51:42

ポイント60pt

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

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

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

id:goodbabies

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

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

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

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

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

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

2010/04/20 13:14:56

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

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

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

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

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません