一尘不染

ob_start()无法在Laravel 3中创建缓冲区

redis

我正在为项目使用Laravel 3,我做了一些工作cronjob script,当我移到新服务器时,它一直在说:

警告::找不到ob_start()函数“ mb_output_handler”或无效的函数名称和注意ob_start():未能创建缓冲区

任何想法如何解决这个问题?


阅读 361

收藏
2020-06-20

共1个答案

一尘不染

新服务器是Ubuntu吗?您的开发服务器和“新服务器”是同一操作系统吗?相同的PHP版本?

两台服务器可能 完全 不同!

你能展示你的cronjob吗?(它是否尝试通过#!/usr/bin/env php调用使用特定的php二进制文件?

Ubuntu的一种可能性:

PHP的CLI运行 可以 从Apache中被运行不同,特别是有可能不同,如果你使用PHP5-FPM与Nginx的。

他们每个人都可以拥有自己的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 vs Apache2 vs PHP-FPM中的php都可以加载不同的扩展,并分开安装php.ini。

也许基于cli的(可能是cronjob正在使用的)可能是PHP的不同版本(!),或加载了不同的.ini文件和/或一组扩展名。

2020-06-20