php - PHP 脚本在浏览器中以交互方式取消链接文件,但不是作为 cPanel cron 作业
问题描述
以下执行语法实际上在 cron 作业中运行:
/usr/local/bin/php -q /home/pbjwbh0mgv9o/public_html/buildlistings.php
然而,我在 error_log 中得到以下信息:
[05-May-2018 21:53:00 UTC] PHP 警告:取消链接(property_a.xml):第 63 行的 /home/pbjwbh0mgv9o/public_html/buildlistings.php 中没有此类文件或目录
[05-May-2018 21:53:05 UTC] PHP 警告:取消链接(property_map.xml):第 215 行的 /home/pbjwbh0mgv9o/public_html/buildlistings.php 中没有此类文件或目录
脚本的以下部分再次在浏览器中完美执行,下面附上目录截图:
unlink('property_a.csv');
unlink('property_a.xml');
unlink('property_map.xml');
我是否错误地格式化了 cron 作业命令,或者在我的脚本中缺少与 Linux 相关的内容?
解决方案
当您通过 Web 服务器执行脚本时,CWD(当前工作目录)就是您所期望的。
当 cron 执行该作业时,它不会发生在同一位置。您需要确保它调用cd
更改到您期望文件所在的位置。
编辑:这是您的 cron 作业的示例:
cd /home/pbjwbh0mgv9o/public_html && /usr/local/bin/php -q buildlistings.php
推荐阅读
- java - 给定数组中不同数组的数量
- java - 查看目前加载的所有 Spring 配置文件
- visual-studio - 如何通过单击开始在解决方案中构建所有项目?
- c++ - 如何找到列表中列的平均值?
- python - 为什么 True 被击中但没有返回到主函数
- javascript - 如何避免'未捕获的引用错误:?是未定义的'?
- r - 从起源以来的分钟数转换为普通人的日期时间(“yyyy-mm-dd HH:MM:SS”)?
- android - 摆脱原生反应中的测试错误
- sql - SQL:内存不足错误 | Heroku Postgres + Hasura GraphQL
- accessibility - 屏幕阅读器在元素展开时阅读内容