PHP file_exists 在命令行下有效,但在 cron 下无效

PHP file_exists 在命令行下有效,但在 cron 下无效

我有一个脚本,它从数据库读取文件,在目录中找到它们,然后将它们复制到另一个目录,作为上传系统的一部分。过程如下:1. 用户通过 ftp 将文件上传到 /home/uploaduser 2. 用户将信息输入 mysql 数据库 3. cronjob (download.php) 轮询数据库,找到上传的文件名 4. 同一 cronjob 检查 /home/uploaduser 中的文件名,然后将文件复制到另一个目录

如果我从命令行运行 download.php,脚本可以正常工作。如果我从 crontab 运行它,它无法使用 file_exists() 找到文件。

这是 cronjob:*/1 * * * * php /home/downloads/cron-scripts/download.php >/dev/null 2>&1

我尝试将文件的所有权更改为运行 cronjob 的用户,但没有任何区别。

cronjob 安装后以运行脚本的用户身份运行:crontab -e,运行脚本的用户属于 uploaduser 组,uploaduser 组文件权限为 664。

答案1

您的脚本中是否有某些内容依赖于环境设置? cron 运行的环境通常与您的用户环境不同。

将脚本的输出重定向到日志文件而不是 /dev/null 以获取错误消息。

答案2

  1. 尝试提供 PHP 可执行文件的绝对路径,如 /usr/bin/php
  2. 尝试将输出重定向到某个文件,以便您可以看到输出

相关内容