【スクリプト】
<?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
を使うのかな~、でもアパッチをいじらないといけないんですよね??
権限について何かやってみたことがないので、さっぱりわかりません!
そのスクリプトを設置しているディレクトリに書き込み権限がないため、fopen関数でエラーが発生して、それに引きずられて以降のエラーが発生しています。
PHPがどの権限で実行されているか分からないので、そのディレクトリのパーミッションをとりあえず '777' にしてみてください。
余談ながら、fopen関数の戻り値のエラーチェックは必須かと存じます。
さっそくの回答ありがとうございます。
さきほどPHPファイルのパーミッションFFFTPで777にしてみました。
が、エラー内容は全く一緒でした・・・。色々パーミッションについては試してみたのですが・・・。
あ、ちなみに自分はPHP初心者なので分からないのですが、
>余談ながら、fopen関数の戻り値のエラーチェックは必須かと存じます。
とは、例えばどのようにされるのですか??