You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:解决filemtime(): stat failed报错的代码修复问题

排查filemtime() stat failed报错的解决办法

你说得没错,这个报错确实和文件路径/文件状态密切相关,filemtime()函数需要能读取目标文件的元数据,一旦做不到就会抛出这个警告。我给你整理几个常见的排查方向:

  • 先确认文件是否真实存在
    直接去服务器上核对路径:/var/www/vhosts/example.tk/httpdocs/manager/css/general.css,可以用命令行执行ls -l /var/www/vhosts/example.tk/httpdocs/manager/css/general.css,看看输出里有没有这个文件。也可以在代码里加个前置判断快速验证:

    // 在第49行之前加入
    if (!file_exists($temp_path)) {
        error_log("目标文件不存在:" . $temp_path);
        // 或者临时输出调试信息
        echo "文件找不到:" . $temp_path;
        exit;
    }
    

    如果真的不存在,要么是路径拼写错误,要么是文件被误删了,补全文件或者修正路径即可。

  • 检查文件和目录的权限
    就算文件存在,Web服务器的运行用户(比如Apache的www-data、Nginx的nginx用户)可能没有读取这个文件的权限。用ls -l命令查看文件权限:

    ls -l /var/www/vhosts/example.tk/httpdocs/manager/css/general.css
    

    确保输出里的权限位包含读权限(比如-rw-r--r--),且文件所有者或组是Web服务器用户。如果权限不对,可以执行:

    # 给文件添加读权限
    chmod 644 /var/www/vhosts/example.tk/httpdocs/manager/css/general.css
    # 或者修改文件所有者为Web用户(以www-data为例)
    chown www-data:www-data /var/www/vhosts/example.tk/httpdocs/manager/css/general.css
    
  • 核对路径的大小写和完整性
    Linux系统的路径是严格区分大小写的!如果实际文件名是General.css,但代码里写的是general.css就会报错。另外可以临时把$temp_path的值输出来看看,确认变量拼接的路径完全正确:

    var_dump($temp_path); // 输出后就能看到实际的路径字符串
    exit;
    
  • 排查符号链接或文件系统异常
    如果这个文件是符号链接,要确认链接指向的真实文件存在且有权限。极端情况下可能是磁盘文件系统出问题,可以尝试重新创建这个文件,或者用fsck命令检查磁盘状态(注意执行前最好备份数据)。

内容的提问来源于stack exchange,提问作者Orkhan Orkhan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 09:40:52