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

cPanel中Cron Job无法运行PHP脚本生成缓存文件问题排查

排查Cron Job未生成缓存文件的问题

一、脚本本身问题排查

  1. 移除不必要的前端依赖
    脚本开头引入的header.php是前端模板文件,Cron Job运行在CLI命令行环境,不需要加载HTML相关内容,这可能引发错误。直接删除该行:

    require_once(__DIR__ . '/../templates/site/header.php');
    
  2. 检查目录与文件权限

    • 确认../public/cache/目录存在,且Cron执行用户通常是你的cPanel用户名对该目录有写入权限。手动创建并设置权限的命令参考:
      mkdir -p /home/你的cpanel用户名/public_html/public/cache
      chmod 755 /home/你的cpanel用户名/public_html/public/cache
      chown 你的cpanel用户名:你的cpanel用户名 /home/你的cpanel用户名/public_html/public/cache
      
    • 同样要保证../public/error.log文件可写,否则错误日志无法生成,排查会无据可依。
  3. 调试缓存与API逻辑

    • 当前缓存TTL设为24小时,若你之前手动运行过脚本生成了缓存,Cron会直接读取旧缓存,不会触发新的API请求。可以先删除已有的缓存文件,再测试Cron。
    • 增加调试日志,在file_put_contents前后添加日志记录,确认缓存写入流程:
      // 写入缓存前记录
      error_log("准备写入缓存到: {$cacheFile}", 3, __DIR__ . "/../public/debug.log");
      file_put_contents($cacheFile, $jsonResponse);
      // 写入成功后记录
      error_log("缓存写入完成", 3, __DIR__ . "/../public/debug.log");
      

二、Cron Job配置问题排查

  1. 使用完整PHP命令路径
    cPanel中Cron不能仅用php命令,需使用完整路径。获取路径的方法:

    • 进入cPanel的终端,执行which php,得到类似/usr/local/bin/php的路径。
    • Cron命令示例:
      * * * * * /usr/local/bin/php /home/你的cpanel用户名/public_html/你的脚本路径/script.php > /home/你的cpanel用户名/public_html/cron_log.log 2>&1
      
      末尾的> ... 2>&1用于将Cron的输出和错误信息写入日志,方便排查执行问题。
  2. 匹配PHP版本
    确保Cron使用的PHP版本与你的网站一致:

    • 在cPanel的选择PHP版本中确认网站使用的PHP版本。
    • 替换Cron命令中的PHP路径为对应版本,比如PHP7.4的路径可能是/usr/local/bin/php74。
  3. 手动测试脚本执行
    先在cPanel终端手动运行脚本,验证脚本本身是否能正常生成缓存:

    /usr/local/bin/php /home/你的cpanel用户名/public_html/你的脚本路径/script.php
    

    如果手动运行失败,优先解决脚本自身问题,再配置Cron。

三、其他验证点

  • API密钥有效性:确认$li库ID和$lk访问密钥正确,可通过Postman等工具手动调用BunnyCDN API,验证是否能返回视频数据。
  • 脚本执行时长:当前脚本单次执行耗时应该较短,但如果视频列表过大,需确认是否会超过Cron的执行超时限制,可通过日志记录脚本开始和结束时间排查。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 15:47:13