人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PHPのアップロードで困っています。

アップロードして保存したファイルがなぜか apache権限になってしまい、
いちいちSSHを使わないと消せません。

FancyUpload というアップロードスクリプトを使っています。
http://digitarald.de/project/fancyupload/

FlashとJavascript、PHPを併用したアップロードスクリプトです。

通常はPHPからファイルを保存するとftp権限と同じになると思うのですが
FlashやJavascriptなどのクライアントサイドのスクリプトからPHPを動かすと
apache権限になってしまうことがあるのでしょうか?

また、これを回避する方法はありますか?


ちなみに、PHPはカスタマイズして保存できるようにしてあります。
// ファイルを移動
$senddir = IMG_FILE_DIR . $goods_admin_id . "/";
if( !is_readable($senddir) ) mkdir( $senddir, 0707 );
$sendpath = $senddir . $_FILES['photoupload']['name'];
if( move_uploaded_file($file, $sendpath)){
chmod($sendpath,0606);
}

●質問者: shotets
●カテゴリ:ウェブ制作
✍キーワード:Apache FLASH FTP JavaScript name
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● pahoo
●60ポイント ベストアンサー

通常はPHPからファイルを保存するとftp権限と同じになると思うのですが

いいえ。通常、PHPを動かしている Apache がオーナー(所有者)になります。

オーナーを変更するには chown 関数を用います。


ただし、レンタルサーバをご利用の場合は、この関数が利用できないこともあります。その際は、レンタルサーバの管理者にご相談ください。場合によっては、オーナーを Apache からユーザーに変更してくれるかもしれません。

◎質問者からの返答

昔自分が作ったプログラムのログなどを見てみると、確かにapache権限になっていました。権限を606から644に変更したところftpソフトでも削除できるようになりました。

それで削除するプログラムをもう一度よく確かめてみたところ、

unlink( $file );

exec('rm '.$file);

どちらを使っても削除できなかったのですが、$fileに渡しているパスが絶対パス(http://?)だったためでした。相対パス(/www/host/?)にしたら削除できました。


どうもありがとうございました!

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ