我在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
通过这些方法我甚至无法击中控制器。我的电子邮件通知只是说“无法打开输入文件”。
我对这些错误并不是很熟悉。所以我不知道如何磨练解决方案。
任何人都可以给我任何提示如何前进吗?
答案 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)