CodeIgniter中admin目录下控制器的Cron Job命令写法咨询
正确的CodeIgniter子目录控制器Cron命令写法
没错,你调整后的命令是完全正确的!当控制器位于application/controllers/admin/子目录下时,必须在CLI调用中指定完整的控制器路径,框架才能定位到目标文件。
为什么要这么写?
CodeIgniter的CLI调用逻辑和HTTP请求的路由规则是一致的:
- 如果控制器在根目录(比如
application/controllers/Cron.php),命令格式是:php index.php cron test - 如果控制器在子目录(比如
application/controllers/admin/Cron.php),需要把子目录名+控制器名作为第一个参数,也就是admin/cron,这样框架才会去对应的子目录下查找控制器文件。
最终正确的Cron命令
/opt/php56/bin/php /home4/username/public_html/index.php admin/cron test
补充提醒
如果直接用你最初的命令(不带admin/),CodeIgniter会默认去application/controllers/根目录找cron.php,而你的文件在admin子目录里,最终会因找不到控制器导致执行失败。要是你的项目有自定义路由规则,可能需要根据路由稍作调整,但默认情况下上述写法完全适用。
内容的提问来源于stack exchange,提问作者Orion
相关产品推荐
相关产品推荐

