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 脚本中保存图像的主要内容,如果未能解决你的问题,请参考以下文章