我认为这是因为 APC,因为我只使用 APC 系统进行缓存。以下是完整日志:
2013/04/23 19:15:05 [error] 539#0: *1305213 open() "/var/www/cache/e4ce8db565491cdcf27ab61a441xxxx" failed (2: No such file or directory), client: 2.83.130.yyy, server: zzz.com, request: "GET /cache/e4ce8db565491cdcf27ab61a441xxxx HTTP/1.1", host: "zzz.com", referrer: "http://zzz.com/aPHPfile"
配置:nginx,php5-fpm
答案1
此消息来自 nginx — 显然它决定通过返回静态文件来满足请求,但该文件不存在。有问题的缓存位于 PHP 应用程序级别,因为请求 URL 路径以 开头/cache/
— 它不是 nginx 或 APC 中的某种内部缓存。
可能的原因:
也许请求应该传递给 PHP 脚本,但 nginx 中的位置/重写规则对于您的 PHP 框架/CMS 来说不正确。
也许有问题的缓存文件应该由 PHP 代码在处理上一个请求时创建(例如,引用者中模糊的 URL),但由于目录的权限等原因而无法创建
/var/www/cache
。在这种情况下,您应该在 php-fpm 日志中看到一些错误(如果 PHP 代码没有盲目忽略它们)。
无法给出更精确的答案,因为没有关于所使用的 PHP 框架、CMS 或应用程序的信息。
答案2
错误消息显示No such file or directory
。而您说该目录不存在。因此,请创建该目录。