1

我需要运行一个php script来生成一些网站的使用snapshots,我从数据库中获取网站的地址,然后在生成截图后删除这条记录。我用 它没有用,但如果我使用它访问同一个文件工作正常,如果使用它的命令运行这个脚本也工作正常。然后我刚刚创建了另一个文件并使用; 将此文件添加到它几天后运行良好,但现在这种方法也行不通。我不知道发生了什么。我没有更改任何这些文件。我还尝试了访问该 url 的命令,但未能获得所需的输出。我的 crontab 现在看起来像这样 CutyCaptcrone job*/5 * * * * /usr/bin/php -f /path/generate.phpcrone jobbrowserphpcommand linefile_get_contentscrone jobwget*/5 * * * * wget "http://www.mysite.com/generate.php" -O /dev/null

奇怪的是,crone 作业执行得很好,它从数据库中获取数据并删除记录,但不更新图像。

权限或类似问题是否有任何问题阻止它使用 cron 作业生成图像,但在使用浏览器访问时不会。

请帮助我卡住了。

4

2 回答 2

0

此页面上是否有任何用户凭据,例如基本身份验证?如果是这样,您必须在 wget 请求中定义用户名和密码,例如

wget  --http-user=user --http-password=password "http://url" ?

并通过从 php 命令行运行 yor 脚本尝试另一种解决方案,这样您的 crontab 可能看起来像

*/5 * * * * /usr/bin/php -f /path/to/generate.php 

试试这个解决方案,它会起作用,它比点击服务器对你的数据执行后台操作要好

我希望这会有所帮助

于 2012-04-26T17:31:30.373 回答
0

我不知道您的脚本在内部做什么,但请记住,用户的 cron 作业不会继承用户环境。因此,如果您的 php 脚本正在运行任何 shell 命令,您可能会遇到 PATH 问题。

如果您从脚本运行 shell 命令,请尝试在您的 php 脚本中设置 PATH 环境变量,看看是否有帮助。

于 2012-04-26T17:29:49.460 回答