странно работает fileatime()

M.Chitalkin

Новичок
странно работает fileatime()

заметил странность при использовании функции fileatime(). исходные данные:
на одном сервере, в разных папках(A и B) лежит по несколько сотен файлов изображений. папка A и картинки в ней созданы больше года назад, B - на прошлой неделе. картинки активно используются и просматриваются посетителями.
пользуюсь таким скриптом:
PHP:
clearstatcache(); 
foreach(glob('*.jpg') as $filename){ 
    echo $filename . " size:" . filesize($filename) . " mtime:" . date('d M Y H:i:s', filemtime($filename)) . " atime:" . date('d M Y H:i:s', fileatime($filename)) . "<br>\n"; 
}
проверяю время создания и последнего доступа ко всем файлам. в папке B все отображается правильно, та же проверка в папке A показывает, что время доступа fileatime равно времени создания файла filemtime, хотя файл 100% просматривается. однако, если вызвать файл скриптом:
PHP:
header("Content-Type: image/jpeg");
readfile('picture.jpg');
то время последнего доступа к picture.jpg апдейтится и отображается верно.
от чего это может происходить и как лечить?
спасибо.
 

tony2001

TeaM PHPClub
я лично ничего не понял.
так atime апдейтится или нет? если апдейтится readfile(), то какие проблемы?
партишен с директорией ("папкой") А не примонтирован ли с noatime?
 

M.Chitalkin

Новичок
atime апдейтится только если запрашивать файл через скрипт, через readfile(). если смотреть его напрямую (именно так его смотрят посетители) http://domain.com/A/picture.jpg - atime не апдейтится. то есть проблем в том, что atime апдейтится не при каждом обращении.
 

tony2001

TeaM PHPClub
"напрямую" == ? прокси, кэш между пользователями и веб-сервером есть?
запрашивается ли вообще картинка с сервера? какой конкретно веб-сервер?
с какой целью вообще это делается? какая разница когда конкретно пользователь скачал картинку?
 

M.Chitalkin

Новичок
спасибо за ответы и вопросы :)

Автор оригинала: tony2001
"напрямую" == ? прокси, кэш между пользователями и веб-сервером есть?
запрашивается ли вообще картинка с сервера? какой конкретно веб-сервер?
с какой целью вообще это делается? какая разница когда конкретно пользователь скачал картинку?
напрямую - через web, так:
http://domain.com/A/picture.jpg
(ненапрямую - через скрипт, упомянутый выше.)
по логам апача(сервер апач) картинка запрашивается и показывается с 200 ответом.
100% все работает и показывается. сам смотрю, картинки вижу.
прокси, кэша между пользователями и веб-сервером нет.
задача - удалить файлы, к которым нет обращения в течении недели.

может ли зависеть работа функции fileatime() от прав доступа?
 
Сверху