我正在使用Laravel 3进行项目,我做了一点cronjob script
,当我搬到新服务器时,它一直说:
警告:
ob_start()
:找不到函数“mb_output_handler
”或函数名称无效 和 注意:ob_start()
:无法创建缓冲区
知道如何解决这个问题吗?
答案 0 :(得分:1)
新服务器是Ubuntu吗?您的开发服务器和“新服务器”是否是相同的操作系统?相同的PHP版本?
这两台服务器可能完全不同!
你能展示你的cronjob吗? (它是否尝试通过#!/usr/bin/env php
调用使用特定的php二进制文件?
在CLI中运行的PHP 可以与在Apache中运行不同,特别是如果你在nginx中使用php5-fpm,可能会有所不同。
他们每个人都可以拥有自己的php.ini和不同的扩展程序。
正如你所说,你正在使用Ubuntu Server。如果你使用的是PHP 5.5,你可能会在/etc/php5
中注意到一些事情:
/etc/php5/mods-available # All mods available / installed
/etc/php5/cli/php.ini # php.ini for CLI-called php5
/etc/php5/cli/conf.d # Directory of symlinks to extensions in mods-available!
/etc/php5/apache2/php.ini # php.ini for Apache-run php5
/etc/php5/apache2/conf.d # Symlinks to mods-available extensions
因此,CLI与Apache2和PHP-FPM中的php都可以加载不同的扩展并分离php.ini的安装。
也许基于cli的(可能是cronjob正在使用的)可能是PHP(!)的不同版本或加载不同的.ini文件和/或扩展集。