对不起,如果这是一个重复的问题......我已经四处搜索并找到了类似的建议,但没有任何帮助我的确切问题 . 请原谅noob问题,CRON对我来说是个新事物 .
我有一个codeigniter脚本,它抓取另一个站点的html DOM并将其中一些存储在数据库中 . 我想定期运行这个脚本 . 这让我开始研究cron的工作 .
我的页面是myserver.com/index.php/update
我意识到我可以用curl运行一个cron作业并运行这个页面 . 如果我想要更安全一点,我可以在最后放一个字符串,如:
myserver.com/index.php/update/asdfh2784fufds
并在我的CI控制器中检查它 .
这似乎大部分都是安全的,但似乎并不像是“正确”的做事方式 .
我已经研究过从命令行运行CI,并且可以执行以下基本页面:
php index.php mycontroller
但是当我尝试做的时候:
php index.php更新
它不起作用 . 我怀疑这是因为它需要使用HTTP来抓取外部页面的DOM .
所以,我的问题:
How do I securely run a codeigniter script with a cron job that needs HTTP access?
2 回答
你有几个选择 . 最简单的方法是让脚本确保
$_SERVER['REMOTE_ADDR']
在执行之前来自同一台机器 .另一种方法是使用
https
并使用wget或curl使用HTTP身份验证 .究竟出了什么问题?它抛出了什么错误?
我之前从命令行使用过CI没有任何问题 . 不要忘记,如果您不在脚本所在的文件夹上,则需要指定它的完整路径 .
就像是
您也可以在控制器上添加 .
只有当php脚本在命令行上运行时,才会运行所需的操作 .
希望它有所帮助 .