Crontab 不会从 PHP 脚本中保存图像

Posted

技术标签:

【中文标题】Crontab 不会从 PHP 脚本中保存图像【英文标题】:Crontab Won't Save Images From PHP Script 【发布时间】:2013-04-29 04:22:14 【问题描述】:

我有一个 php 脚本,它从 RSS 提要中抓取图像,调整它们的大小,然后保存它们。我通过 crontab 做了一个 cron 作业,它每小时执行一次,但图像没有保存。

我认为这是一个权限错误,文件夹的所有者是 www-data,我设置它的 crontab 用户也是 www-data,所以我不太确定发生了什么。

脚本在浏览器中运行良好。

我使用的 crontab 代码是:

56 * * * * /usr/bin/php5 /home/user/public/site.com/public/script.php

我也尝试了 curl,但没有成功,但我不能 100% 确定我做得对。

其他一切正常,例如它存储文本就好了。它还正确命名图像,只是不保存它们

【问题讨论】:

您真的在脚本中的某个地方产生了错误吗?是否添加了记录fopen()等函数返回值的调试消息(或日志文件)? 以 root 身份从命令行点击脚本,仍然失败? 当我尝试添加日志时,cron 作业根本没有运行。我还尝试查看 /var/log/cron 并且该文件不存在。我也尝试以 root 身份运行。 如果您从 cli 手动运行它会发生什么,即 >php /home/user/public/site.com/public/script.php 好的,我从 CLI 运行并遇到问题,花了一些时间修复它们(路径问题)并通过 CLI 使其正常工作。但我仍然无法让它在 crontab 中工作。 【参考方案1】:

不要忘记以特定用户身份运行 crontab 作业。 cronjob 可能没有像你一样运行。

56 * * * *  <USER_NAME_HERE> /usr/bin/php5 /home/user/public/site.com/public/script.php

【讨论】:

Crontab 不允许这样做,据我所知,我看到这个:m h dom mon dow 命令,所以以我使用的用户身份运行:sudo crontab -u www-data -e【参考方案2】:

解决了。

这一次结果是用户错误(令人震惊)——我没有包含正确的完整路径。谢谢大家的回复。

我想这里的教训是下次我提出问题时包含更多信息,我应该发布更多代码。

【讨论】:

以上是关于Crontab 不会从 PHP 脚本中保存图像的主要内容,如果未能解决你的问题,请参考以下文章

Linux Crontab Shell脚本实现秒级定时任务

PHP/Flash 保存图像停止工作

如何使用Linux的Crontab定时执行PHP脚本的方法

如何创建SSIS脚本任务以从平面文件中删除CR LF

crontab内环境变量问题(crontab定时任务执行脚本异常)

crontab 不执行php脚本问题记录