【问题标题】:ob_start() failed to create buffer in laravel threeob_start() 在 laravel 三中创建缓冲区失败
【发布时间】:2013-09-18 05:05:29
【问题描述】:

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

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

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

【问题讨论】:

  • 可能与this question 重复,这可能有助于解决您的问题。你在使用 OSX 吗?
  • 不使用 OSX。该项目位于 ubuntu 服务器上

标签: php redis laravel


【解决方案1】:

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

这两个服务器可能完全不同!

你能展示你的 cronjob 吗? (它是否尝试通过 #!/usr/bin/env php 调用使用特定的 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 文件和/或一组扩展名。

【讨论】:

  • 他们使用的是不同的 php.ini,我知道。 php 版本是 5.4.13,我猜是 php.ini 中的 mbstring 有问题,我试图从某个地方获取该包,但找不到它
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-26
  • 1970-01-01
  • 1970-01-01
  • 2020-09-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多