1

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

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

当我通过浏览器在 MYSITE.com/cronJobs/parseMail 上“正常”点击控制器时,parseMail 方法确实有效。有一个数据库插入关闭。

但是要使用 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

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

我只是对这些错误中的任何一个都不熟悉..所以我不知道如何磨练解决方案。

谁能给我任何提示如何前进?

4

2 回答 2

3

解决了

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

这是正确的版本。

/usr/local/bin/php /home/myusername/public_html/index.php cronJobs parseMail
于 2013-01-19T21:19:38.970 回答
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)
于 2013-01-19T18:38:29.253 回答