PHPの質問です。ファイルに更新日時をセットしたいのですが上手くいきません。


$mtime にはUNIXタイムスタンプが入っています。
touch(”data/filename.dat”,$mtime);

すると、次のようなエラーになります。
Warning: utime failed: Operation not permitted
エラー行は上記の命令を指しています。

filename.dat のパーミッションは606です。
レンタルサーバ(PHPのバージョンは4.2.4)を使用しています。
ローカル(バージョン4.3.4)のテストではエラーにならなかったので、その辺に原因があると思うのですが、解決策をご存じの方、お願いします。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2004/05/13 19:59:59
  • 終了:--

回答(4件)

id:aki73ix No.1

aki73ix回答回数5224ベストアンサー獲得回数272004/05/13 20:03:43

ポイント15pt

URLはダミーです、リモートから実行すると webuser権限になって 真ん中の数字がパーミッションになりますつまり 666にしないと動作しません

あと、上位フォルダも確認してみてください

フォルダが 777もしくは555(読み込みのみ)になってないとアクセスできませんよ

id:wintarsnow

ありがとうございます!

しかし、早速filename.datのパーミッションを666にし、dataフォルダを777にして再試行してみたのですが、状況が変わりません。

2004/05/13 20:15:08
id:akimasa2000 No.2

akimasa2000回答回数276ベストアンサー獲得回数02004/05/13 20:29:58

ポイント15pt

一度消してから、再作成すると、解決した人がいるそうです。

id:wintarsnow

ありがとうございます。

一度削除してから、またアップロードしてみたのですが変わりませんでした。

2004/05/13 20:44:23
id:toramaru666 No.3

toramaru666回答回数7ベストアンサー獲得回数02004/05/13 20:34:36

ポイント15pt

上記ページに同じような質問と回答がありました。

「37 Link部分について。」というところ。

これが参考になると思います。

id:wintarsnow

ありがとうございます。

すみません、37ではなく36ですよね?

2番の回答と同じですね。

2004/05/13 20:48:44
id:aki73ix No.4

aki73ix回答回数5224ベストアンサー獲得回数272004/05/13 20:53:39

ポイント25pt

http://php.s3.to/man/features.safe-mode.functions.html

セーフモードにより制限を受けるか無効となる関数

もう一つ思い当たることがありました

ローカルでファイル作成した場合、

ファイル所有者の問題でtouchが実行できない場合があります

・chownでローカルから web実行ユーザの名前にかえる(ユーザ名はサーバによって異なりますが、リモートでファイルを作成してやれば、そのユーザ名になるので分かると思います。一般的にはnobodyやwebuserかと)

・filename.dataをCGIでアップロードする

(自動的にWebからのユーザの所有になります)

http://php.s3.to/man/function.chown.html

ファイルの所有者を変更する

chownについて

id:wintarsnow

一度ファイルを削除し、

・filename.dataをCGIでアップロードする

を試したところ、成功しました!

ありがとうございました。

2004/05/13 22:26:27

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

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

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

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

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