首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Codeigniter CLI命令与Tsohost不工作

Codeigniter CLI命令与Tsohost不工作
EN

Stack Overflow用户
提问于 2014-03-20 00:05:42
回答 2查看 1K关注 0票数 2

我目前有一个PHP网站构建了代码点火器,我有问题的CLI和cron的工作。

CLI是设置好的,因此运行脚本的控制器可以在服务器上的/application/controllers/scrape中找到(通过ftp查看)--这将是/public_html/application/controllers/scrape,要运行的函数称为all_sites

我使用TSOhost托管,可以通过URL (website.com/index.php/scrape/all_sites)使用浏览器成功地运行命令,但是脚本超时,因此需要使用cron作业来运行脚本。

到目前为止,在尝试让脚本每天运行时,我在TSOhost控制面板中尝试了以下高级模式下的原始cron命令:

TSOhost技术人员设置了这个

代码语言:javascript
复制
03 19 * * * /usr/bin/php-5.3 /var/sites/s/website.com/public_html/application/controllers/scrape.php (didn't work)
0  6  * * * /usr/bin/wget -O /dev/null -o /dev/null http://www.speeddatemate.com/index.php/scrape/all_sites
0  6  * * * /usr/bin/php-5.3 /var/sites/s/speeddatemate.com/public_html/application/controllers/scrape/all_sites
03 19 * * * /usr/bin/php-5.3 /var/sites/s/speeddatemate.com/public_html/application/controllers/scrape.php
03 19 * * * /usr/bin/php-5.3 /var/sites/s/speeddatemate.com/public_html/application/controllers/scrape/all_sites
10 18 * * * /usr/bin/php-5.3 /var/sites/s/speeddatemate.com/public_html/index.php scrape all_sites

左表示:

要引用站点路径,请使用/var/sites/s/website.com 通往PHP 5.2的路径是/usr/bin/php,对于5.3/usr/bin/php-5.3

技术员还说:

“要从CLI运行,您需要找到一种将这些参数输入脚本的方法,它们不能附加到命令中。”

虽然这不是命令的要点吗?

我还尝试通过"make请求“选项运行它,该选项将原始作业创建为:

代码语言:javascript
复制
0 6 * * * /usr/bin/wget -O /dev/null -o /dev/null http://www.speeddatemate.com/index.php/scrape/all_sites

同样,这是行不通的。

我到处搜索,寻找一种方法来实现这个工作,并阅读各种帖子,并尝试了各种方法,但都没有用过。有人能帮忙吗?

EN

回答 2

Stack Overflow用户

发布于 2014-03-23 14:50:01

首先,除非您让cron作业在命令行上工作,否则不要麻烦地设置它。最后,您将混合不同的事情,产生大量不必要的调试可能性,这将进一步混淆您。

现在,你是说

我可以通过URL (website.com/index.php/scrape/all_sites)使用浏览器成功地运行命令,但是脚本超时了

这可能是因为脚本需要超过30秒才能完成,因此在php中命中了php。检查

如果是这样的话,检查并在这里这里上回答,通过增加限制来解决这个问题。

一旦您有了脚本的工作版本,无论是通过浏览器还是通过命令行,您都可以继续调度cron作业,就像您的TSOhost技术支持已经共享的一样。

代码语言:javascript
复制
03 19 * * * /usr/bin/php-5.3 /var/sites/s/website.com/public_html/application/controllers/scrape.php (didn't work)
0  6  * * * /usr/bin/wget -O /dev/null -o /dev/null http://www.speeddatemate.com/index.php/scrape/all_sites

再一次,只在让其他部件工作之后才设置crons。

如果它仍然不起作用,请提供更多有关以下方面的信息:

  1. 剧本到底是做什么的?它下载了什么,备份了什么吗?用它做的任何事情来更新问题。
  2. 它需要什么参数?你是怎么通过网址的?
  3. 日志上写了什么?假设您的you服务器是apache,您通常可以在/var/log/apache2/error.log/var/log/apache2/access.log找到它们。

编辑1

OP在评论中说,php index.php scrape all_sites为他工作。

假设这是从他的应用程序的根开始工作的,index.php的路径可以归为/var/sites/s/website.com/public_html/application/index.php,那么就试试这个cron作业吧。

代码语言:javascript
复制
03 19 * * * cd /var/sites/s/website.com/public_html/application/ && /usr/bin/php-5.3 index.php scrape all_sites

如果可能的话,将其安排在更接近当前时间的时间,而不是19:03的固定作业。

如果这仍然不起作用,并且假设max-execution-time已经得到了处理,那么问题可能在于您的环境变量之一--您的cli环境中有一些您的cron环境中缺少的变量。

在我的经验中,我发现PATH变量造成的麻烦最多,所以在您的shell上运行echo $PATH,如果您得到的路径值是/some/path:/some/other/path:/more/path/values,那么运行您的cron作业类似

代码语言:javascript
复制
03 19 * * * export PATH="/some/path:/some/other/path:/more/path/values" && cd /var/sites/s/website.com/public_html/application/ && /usr/bin/php-5.3 index.php scrape all_sites

如果这不可行,接下来检查所有环境变量。

使用普通shell中的printenv > ~/shell_environment.txt获取shell中设置的所有环境变量。然后使用下面的cron条目* * * * * printenv > ~/cron_environment.txt从cron环境中获取变量。

比较两个- shell_environment.txtcron_environment.txt对于您需要在cron环境中修改的任何未设置变量。

票数 3
EN

Stack Overflow用户

发布于 2014-03-24 11:35:57

首先,确保您的脚本在浏览器中按预期运行。如果是这样,那么您可以尝试从命令行运行它。让我们假设下面是您的控制器。

代码语言:javascript
复制
<?php
class Scrape extends CI_Controller {

    public function all_sites($some_parameter = 'working')
    {
        echo "Its {$some_parameter}!".PHP_EOL;
    }
}
?>

根据您提供的运行命令的信息,您可以运行

/usr/bin/php-5.3 /var/sites/s/website.com/public_html/index.php擦伤all_sites

并将cron设置为

03 19 *** /usr/bin/php-5.3 /var/sites/s/website.com/public_html/index.php擦伤all_sites

如果需要传递参数,则传递如下所示的参数:

/usr/bin/php-5.3 /var/sites/s/website.com/public_html/index.php擦伤all_sites“工作正常”

享受吧!

您可以从代码点火器阅读关于通过CLI运行的参考文档。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22520809

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档