我正在使用带有codeigntier的HMVC并尝试运行一个cron作业 . 我用这个用于cron:

php /home/onlblcm/dev.mytranslator.com/index.php mytranslator cron cronTranslations > aaa.txt 2>&1

从cron作业运行时,在aaa.txt文件中我得到了

Set-Cookie: ci_session=e56ef3d7d05652937b3269852d8b36eaeebba9a2; expires=Wed, 05-Sep-2018 13:39:26 GMT; Max-Age=7200; path=/; HttpOnly
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate
Pragma: no-cache
Refresh:0;url=http/http/user/login
Content-type: text/html; charset=UTF-8

所以这对我来说太奇怪了 . 如果我运行完全相同的命令

php /home/onlblcm/dev.mytranslator.com/index.php mytranslator cron cronTranslations > aaa.txt 2>&1

从Putty(ssh)我得到了我需要的东西 . 该文件运行良好 . 我得到了所需的输出 . 所以这是完全相同的命令,但是CRON失败了 .

我检查了在SSH中查看,我正在使用用户onlblcm我检查了cron,它使用的是同一个用户:onlblcm

那可能是什么问题呢?

EDIT1: 我在index.php前添加了-f,现在我得到错误输出:

遇到PHP错误
严重性:警告

消息:ini_set():已发送标头 . 您目前无法更改会话模块的ini设置

文件名:Session / Session.php

行号:284

<p>Backtrace:</p>
        <p style="margin-left:10px">
        File: /home/onlblcm/dev.mytranslator.com/application/third_party/MX/Loader.php
Line: 173
Function: _ci_load_library </p> <p style="margin-left:10px"> File: /home/onlblcm/dev.mytranslator.com/application/third_party/MX/Loader.php
Line: 192
Function: library </p> <p style="margin-left:10px"> File: /home/onlblcm/dev.mytranslator.com/application/third_party/MX/Loader.php
Line: 153
Function: libraries </p> <p style="margin-left:10px"> File: /home/onlblcm/dev.mytranslator.com/application/third_party/MX/Loader.php
Line: 65
Function: initialize </p> <p style="margin-left:10px"> File: /home/onlblcm/dev.mytranslator.com/application/modules/admin/controllers/Admin.php
Line: 8
Function: __construct </p>

如您所见,它将:/home/onlblcm/dev.mytranslator.com/application/modules/admin/controllers/Admin.php

但这没有任何意义,因为我没有打电话给我的管理员控制器 .

同样,如果我从SSH调用命令它正在工作,那么从CRON搞砸了 .

EDIT 2: 我在cron jobs中添加了这个命令:php -f /home/onlblcm/dev.blasteronline.com/index.php> az.txt 2>&1

从Cron Job调用时,我得到完全相同的东西(错误) . 如果我从SSH调用它,我没有输出 . 如果我从cron打电话,我会得到如上所述的错误 .

EDIT 3: 我现在设法在使用Putty / sssh时遇到同样的错误 . 如果我用php运行命令(ssh)....它运行良好如果我运行命令(ssh):/ usr / bin / php我得到了相同的错误,如在cron中 .

用cron我测试了php ...和/ usr / bin / php ...我得到了同样的错误 .

所以php不同于/ usr / bin / php . 但我输出的是phpinfo,它的版本相同 . 当我使用php信息(通过ssh)并使用php时,我得到一个带有信息的32KB文件(不是html格式化) . 当我使用/ usr / bin / php调用带有php信息的文件时,我得到一个94K信息的文件(它是html格式的) .

怎么了?有任何想法吗?

EDIT 3: SOLVED 似乎某种程度上,cron正在调用不同的PHP(尽管版本相同) . 从Putty(ssh)我做了一个"whereis php"我找到了2个文件夹:/ usr / bin / php和/ usr / local / bin / php它似乎调用简单的php或/ usr / bin / php FAILED cron当用/调用cron时usr / local / bin / php IT WORKS

谢谢