【问题标题】:Kohana 3 and CRON always accessing index.php (not following the URI argument)Kohana 3 和 CRON 总是访问 index.php(不遵循 URI 参数)
【发布时间】:2011-01-29 06:54:58
【问题描述】:

好的,我希望这是我关于 CRON 作业和 Kohana 3 的最后一个问题。注意:其他不是重复的,只是其他问题。

这是我的 CRON 工作(在 cPanel 中设置)

php /home/user/public_html/index.php --uri=properties/update

根据this answer

我已经设置好了,所以它通过电子邮件将输出发送给我。它每 5 分钟运行一次。

不幸的是,它总是通过电子邮件向我发送我网站主页的来源(index.php 或 /)。

我可以在浏览器中正常访问该 URL,即http://www.example.com/properties/update,它可以正常工作并正常工作。我可以告诉 Cron 永远不会命中脚本,因为我有一个 file logger

这和 .htaccess 有什么关系吗?

以前有人遇到过这种情况吗?他们是如何解决的?

非常感谢。

更新

如果有人感兴趣,这是我在bootstrap.php 的家路线。

Route::set('home', '')
    ->defaults(array(
    'controller' => 'home',
    'action' => 'index'
    ));

这是定义的第一条路线。

另一个更新

还有一点很奇怪,当从 CRON 发送电子邮件时,var_dump(Kohana::$is_cli); 会生成 false

【问题讨论】:

  • 它与 .htaccess 没有任何关系 - 这是 Apache 的文件,不会影响任何内容,因为您直接运行 PHP。
  • @jimyi 是这样想的。仍在学习 Crons,所以虽然我会澄清这一点。
  • 如果您想以与浏览器“完全相同的方式”运行脚本,使用 wget 是一个不错的选择。如果它在您的服务器上可用。我想如果你抑制了 index.php(在 htaccess + bootstrap.php 中)并尝试从命令行使用 php 执行 index.php,你会遇到一些问题。例如,您的 URL::site() 将不再起作用。

标签: php cron kohana kohana-3 cpanel


【解决方案1】:

万一其他人有这个问题,在花了几个小时试图解决它之后,我最终发现不是使用(使用你的例子)

php /home/user/public_html/index.php --uri=properties/update

我不得不使用

/usr/local/bin/php -q /home/user/public_html/index.php --uri=properties/update

php 的确切路径可能会有所不同,但如果不使用它,它就没有使用 CLI,虽然我不完全确定,但我认为它是卷曲它。

我还发现,在调用索引操作时,我也必须明确说明这些操作;它们没有被称为控制器的默认操作(尽管奇怪的是,before() 调用了)。

【讨论】:

    【解决方案2】:

    更新您的路线:

    Route::set('home', '<>')
        ->defaults(array(
        'controller' => 'home',
        'action' => 'index'
        ));

    或:

    Route::set('home', 'properties/update')
        ->defaults(array(
        'controller' => 'home',
        'action' => 'index'
        ));

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-19
      • 2017-04-27
      • 2012-10-07
      • 1970-01-01
      相关资源
      最近更新 更多