
下記スクリプトを実行すると、『Warning: rename(./aaa/bbb.send,./aaa/bbb.send.gz) [function.rename]: Permission denied in ...line 31←renameの行数』というエラーになります。
===========
<?php
$dir = opendir("./aaa");
$latestfile=0;
while ($fnm = readdir($dir)) {
if($fnm == "." || $fnm == "..") continue;
$ftime = filemtime("./aaa/$fnm");
if($latestfile < $ftime){
$latestfile = $ftime;
$latestfilename =$fnm;
$filename = "./aaa/$latestfilename";
$fp = fopen($filename, "rwb+");
fread($fp, 18); //18バイト読み飛ばす
ftruncate($fp, 0);
$warn = '';
while (!feof($fp)) {
$warn .= fread($fp, 8192);
}
rewind($fp);
fwrite($fp, $warn);
rename($filename,"$filename.gz");
fclose($fp);
}
}
closedir($dir);
?>
=============
renameの手前でchmodを実行させ、aaaディレクトリ及びファイル自身(./aaa/$filename)にパーミッション0777を与えても現象は変わりません。renameする$filenameにつきましても./aaa/$filenameとしたり、./aaa/$latestfilenameとしてみましたがやはり変わりませんでした。
解決策があればご教授願います。
No.2ベストアンサー
- 回答日時:
fclose する前に、rename しようとしているからじゃないですか
No.1
- 回答日時:
./aaaに対してパーミッションのあるユーザでスクリプトを実行していますか?
そうでないとchmod自身も動かないと思いますが・・・
ためしに,ルートで./aaaディレクトリ以下すべてに
0777のパーミッションを事前に設定してしまえば動くと思いますが・・・それでいいかは疑問ですが・・
この回答への補足
./aaaに対してパーミッションのあるユーザーにて実行しているんです。
rename...のところを、
touch("./aaa/newfile.gz")で実行すると
aaaディレクトリにnewfile.gzフィルが作成されます。
※なお補足ですが、renameのすぐ上の行(fwrite($fp, $warn);)までは正常に実行されています。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Subversionのリポジトリの削除
-
FTPコマンドでディレクトリごと...
-
makefile でファイルをコピーす...
-
JAVA内で複数のファイルを削除...
-
絶対パス?絶対アドレス?意味...
-
CFileDialogの最初のディレクト...
-
ディストリビューションウィザ...
-
FTPでのファイルとディレクトリ...
-
VB2008でFTPでのディ...
-
DLL のロードの順序
-
[ ディレクトリ '.' は書き込み...
-
C言語でのディレクトリ作成につ...
-
rmdirでフォルダが消せません
-
バッチを用いたフォルダの自動移動
-
preg_match関数で正規表現の複...
-
Linuxで画像がアップロードでき...
-
Smartyでキャッシュ無効なのにt...
-
ツリーメニューを縮小させたい
-
VB.NET 最下位のディレクトリ名...
-
Subversionで、ファイルをリネ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
FTPコマンドでディレクトリごと...
-
Subversionのリポジトリの削除
-
CFileDialogの最初のディレクト...
-
makefile でファイルをコピーす...
-
現在位置より2つ上のディレク...
-
visualstudioでc#のdllができない
-
JAVA内で複数のファイルを削除...
-
rmdirでフォルダが消せません
-
バッチを用いたフォルダの自動移動
-
glob関数で日本語文字が取得で...
-
Subversionで、ファイルをリネ...
-
Makefile.inとMakefile.am
-
O/Rマッパーの選定
-
WSHやVBSについて
-
DLL のロードの順序
-
絶対パス?絶対アドレス?意味...
-
LoadLibraryの戻り値(HMODULE)...
-
ツリーメニューを縮小させたい
-
wordpressの記事をカスタマイズ...
-
アプリケーション・ディレクト...
おすすめ情報