无法使用cronjob触发PHP Codeigniter

时间:2013-01-19 18:18:58

标签: php mysql codeigniter cron

我在Codeigniter网站上有一个电子邮件解析脚本,我想用cronjob每天触发。我对cronjobs或远程服务器上的命令行没有多少经验。

我在mysite.com/public_html/application/controllers/cronJobs上有一个cronJobs控制器。它是一个parseMail方法。我也使用mod_rewrite从URLS中删除index.php。

当我通过我的浏览器“正常”通过MYSITE.com/cronJobs/parseMail点击控制器时,parseMail方法工作。有一个DB插件熄灭。

但是要用cronjob触发它,我尝试了>>>

wget http://MYSITE.com/cronJobs/parseMail

我收到了通知邮件..但我不确定如何解释它。它找到了脚本?没有错误?无论如何,parseMail都不会触发。

--2013-01-19 12:00:02-- http://MYSITE.com/cronJobs/parseMail
Resolving MYSITE.com... xx.xx.xx.xxx
Connecting to MYSITE.com|xx.xx.xx.xxx|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 0 [text/html]
Saving to: `parseMail.203'

0K 0.00 =0s

2013-01-19 12:00:03 (0.00 B/s) - `parseMail.203' saved [0/0]

我也试过

-q wget http://MYSITE.com/cronJobs/parseMail

收到“/ bin / sh:get:command not found”

然后我也试过这个变种..

/usr/local/bin/php -q /public_html/index.php cronJobs parseMail
/usr/local/bin/php -q /public_html/ cronJobs parseMail
/usr/local/bin/php -q home/myusername/public_html/index.php cronJobs parseMail
/usr/local/bin/php -q home/myusername/public_html/ cronJobs parseMail

通过这些方法我甚至无法击中控制器。我的电子邮件通知只是说“无法打开输入文件”。

我对这些错误并不是很熟悉。所以我不知道如何磨练解决方案。

任何人都可以给我任何提示如何前进吗?

2 个答案:

答案 0 :(得分:3)

<强>解决

经过大量谷歌搜索后,我找到了适合我的解决方案。这是我使用的(我在我的第一次尝试中是如此接近......只是没有使用绝对路径。然后当我开始使用下面评论中的一些建议时,php路径是不同的,我做了不注意)

这是正确的版本。

/usr/local/bin/php /home/myusername/public_html/index.php cronJobs parseMail

答案 1 :(得分:1)

你的路径都不是真正的路径。所有这些都是无效的(/public_html个)或相对的(home/myusername个)。以下应该做。

/usr/bin/env php  /home/myusername/public_html/index.php cronJobs parseMail

您可能需要先将目录更改为文档根目录。在这种情况下,使用此,

(cd /home/myusername/public_html/ &&  /usr/bin/env php index.php cronJobs parseMail)