1

我在一个项目中使用 Laravel 3,我做了一点cronjob script,当我搬到新服务器时,它一直说:

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

知道如何解决这个问题吗?

4

1 回答 1

1

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

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

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

Ubuntu的一种可能性:

在 CLI运行的 PHP可能与在 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、Apache2 和 PHP-FPM 中的 php 都可以加载不同的扩展并安装分离的 php.ini。

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

于 2013-09-13T15:15:54.913 回答