我一直在使用CLI界面从我的codeigniter页面发送cron作业。它工作正常,直到我昨天更新Wordpress。我不知道这对Codeigniter有什么影响,但是当麻烦开始的时候。我几乎同时安装了cURL。我不确定这是否会产生影响。
症状: 我的codeigniter CLI脚本都不起作用。我有两个脚本发送电子邮件提醒,另一个脚本同步我的数据库和无功能。
错误: 当我尝试运行我的脚本时出现了一些错误:
Use of undefined constant __DIR__ - assumed '__DIR__'
以前这不是问题。但是现在我将其改为
dirname(__FILE__)
这似乎有所帮助。至少那个错误停止了。
接下来,我的脚本中的代码出现了另一个错误通知,我之前没有得到:“无法在写入上下文中使用方法返回值...”
这个错误引用了这行代码:
if (!empty($this->get_available_hours($date, $provider_id))) {
我将其修改为
$availabehours=$this->get_available_hours($date, $provider_id);
if (!empty($availabehours)) {
错误停止了。但脚本通常会发送有关可用性的电子邮件,但不会发送电子邮件。
现在我没有错误。我运行脚本,但没有结果。如果我故意弄乱代码并做错了,我会收到相应的错误消息。所以,在某种程度上它正在读取文件。
我试着运行一个简单的“hello world file”,如下所述 https://ellislab.com/codeigniter/user-guide/general/cli.html 没有任何回报。
我尝试了一个简单的电子邮件脚本,可以在不访问我的数据库的情况下发送电子邮件,而且它没有向我发送任何内容。
它让我觉得有些东西导致我的代码被解释为旧版本的php。所以我查看了当前运行的版本: 当我在PuTTY登录终端时,我得到: PHP 5.2.17(cli)(建于2012年2月23日10:42:34) 版权所有(c)1997-2010 PHP小组 Zend Engine v2.2.0,版权所有(c)1998-2010 Zend Technologies 过时了......
但是当我在WinSCP中查看终端时,我得到: PHP 5.5.28(cli)(建于2015年9月4日12:07:49) 版权所有(c)1997-2015 PHP小组 Zend Engine v2.5.0,版权所有(c)1998-2015 Zend Technologies Zend Technologies的Zend OPcache v7.0.6-dev,Copyright(c)1999-2015,
这是最新的。
运行它的工作原理:php -r'echo“Hello World!\ n”;'
我的问题: 1)我可以运行哪些测试来找出CLI的阻塞内容? 任何提示将不胜感激。 2)为什么我会看到两个不同版本的PHP,具体取决于我正在运行的终端,这可能是我的问题的原因?