【问题标题】:Problem running Cake shell in cronjob在 cronjob 中运行 Cake shell 的问题
【发布时间】:2010-12-08 04:07:31
【问题描述】:

我按照http://book.cakephp.org/view/1110/Running-Shells-as-cronjobs 上的说明进行操作 我在运行我的shell时仍然遇到了一个奇怪的问题 定时任务。

当我尝试在 shell 中使用模型时出现错误:

致命错误:在第 600 行调用 /home/cake1.3.6/cake/libs/model/datasources/dbo/dbo_mysql.php 中未定义的函数 mysql_query()

如果我手动启动它,shell 运行良好。
为什么 PHP 在 shell 中通过 cronjob 执行时看不到 mysql_query()?

我发现我可以通过调用 php 来解决这个问题 cake/console/cake 中的绝对路径:

发件人:

exec php -q ${LIB}cake.php -working "${APP}" "$@"

收件人:

exec /usr/local/bin/php -q ${LIB}cake.php -working "${APP}" "$@"

但是,我不喜欢那个解决方案,因为它改变了 Cake 核心。

有人知道吗?

编辑 早些时候有人回答,我回答说我确定有一份 PHP 二进制文件,但结果证明我错了!刚刚消失的那个答案怎么了?不管是谁,请把答案放回去,我会给你点。谢谢!

【问题讨论】:

  • cron 和 cli 的环境可能不同,这可能会导致问题
  • @ajreal:OP 希望您恢复您的答案。

标签: php bash cron cakephp-1.3


【解决方案1】:

相对路径可以参考其他 PHP 二进制文件。
你可以做一个测试

php -m | grep mysql -i

/usr/local/bin/php -m | grep mysql -i

如果第一个不匹配,它会解释为什么会出现未定义的致命错误。

【讨论】:

  • 它们都显示 mysql 和 mysqli。我也很肯定我在 /usr/local/bin 中编译的 php 二进制文件只有一份副本。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-14
  • 2011-05-17
  • 1970-01-01
  • 2013-11-14
  • 2023-02-07
  • 1970-01-01
相关资源
最近更新 更多