php命令行的问题

时间:2011-01-28 18:34:50

标签: php cron

我在我的网络服务器上创建了一个cron作业。那个cron每隔几个小时运行一个php文件。它是缓存创建技术。但是有一个问题 - 我的cron命令看起来像这样:php -q /folder/phpfile.php。当我直接从我的浏览器运行“phpfile.php”时,一切正常,但是当CRON运行该文件时,它总是将“已发送的标题”错误输出到“error_log”!提到的php文件DO以if(!isset($_SESSION)) session_start();开头,但“error_log”显示“session_start()”行正在抛出警告!

怎么了?当我用浏览器运行该文件时为什么一切正常,但是当cron这样做时,会生成“已发送的标题”?

1 个答案:

答案 0 :(得分:0)

它在浏览器中工作的原因可能是因为您的Web服务器和cli-php有不同的php.ini设置。

output_buffering指令在您的网络服务器中显然是开启的,并在cli-php中关闭,这是正确的。因为在脚本结束工作之前没有人想等待内容。我们想看看脚本运行时发生了什么。

错误的是您使用cli脚本发送标头。终端中的会话真的不需要,是吗?