[owner] タイムスタンプを更新しない時にエラー

修正

「タイムスタンプを更新しない」にチェックして更新をかけたページについて、ファイルの owner がPHPのものではないとき、可能であれば(そのファイルが収められているディレクトリに、適切な書き込み権限があるならば) ファイルを再作成することによって owner を自動的に修正する。なお、ファイルのタイムスタンプは修正前のものを維持する。


メッセージ

データファイルのオーナーがウェブサーバーの実行ユーザーではない時に凍結、凍結 解除、タイムスタンプを更新しないにチェックして更新すると以下のようなエラーが 出て終了してしまいます。

Touch failed for: 46726F6E7450616765.txt

レンタルサーバー等でパーミッションの変更は可能でも、オーナーを変更出来ない場 合が考えられるので lib/file.php の 1.13 -> 1.14 は戻しておいたほうが良いと思 いますがどうでしょうか?このチェックはチョット厳し過ぎるんじゃないかなぁ…な んて (^^;



(touch()のために)ファイル所有者の自動修正


「タイムスタンプを更新しない」にチェックして更新をかけたページについて、ファイルの owner がPHPのものではないとき、可能であれば(そのファイルが収められているディレクトリに、適切な書き込み権限があるならば) ファイルを再作成することによって owner を自動的に修正する。なお、ファイルのタイムスタンプは修正前のものを維持する。


touch() の第三引数と マウント時の noatime オプション (r1.18)

<?php
       $stat = stat(__FILE__);
       var_dump($stat);
       echo '<br>';
       var_dump(touch('test.txt', $stat[9], $stat[8]));
?>

apt-get source にてソースを引っ張り出しました。

該当のエラーを吐いている所:

./php4-4.1.2/Zend/zend_API.c:   zend_error(E_WARNING, "Wrong parameter count for %s()", get_active_function_name(TSRMLS_C));

PHP touch()関数だろう所:

./php4-4.1.2/ext/standard/filestat.c:PHP_FUNCTION(touch)
/* {{{ proto bool touch(string filename [, int time])
  Set modification time of file */
PHP_FUNCTION(touch)
{
       <snip>
       int ac = ZEND_NUM_ARGS();

       if (ac == 1 && zend_get_parameters_ex(1, &filename) != FAILURE) {
            <snip>
       } else if (ac == 2 && zend_get_parameters_ex(2, &filename, &filetime) != FAILURE) {
            <snip>
       } else {
               WRONG_PARAM_COUNT;
       }



chown



*1 GWって食べられるのかなぁ…(遠い目 orz

トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2007-10-20 (土) 12:04:22
Site admin: PukiWiki Development Team

PukiWiki 1.5.4+ © 2001-2022 PukiWiki Development Team. Powered by PHP 8.2.12. HTML convert time: 0.393 sec.

SourceForge