首页 > 解决方案 > 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 相关的内容?

标签: phplinuxcroncpanel

解决方案


当您通过 Web 服务器执行脚本时,CWD(当前工作目录)就是您所期望的。

当 cron 执行该作业时,它不会发生在同一位置。您需要确保它调用cd更改到您期望文件所在的位置。

编辑:这是您的 cron 作业的示例:

cd /home/pbjwbh0mgv9o/public_html && /usr/local/bin/php -q buildlistings.php


推荐阅读