我正在为一个项目使用 Laravel 3,并且我制作了一个小的 cronjob 脚本
,当我移动到新服务器时,它一直在说:
Warning:
ob_start()
: function 'mb_output_handler
' not found or invalid function name and Notice:ob_start()
: failed to create buffer
知道如何解决这个问题吗?
最佳答案
新服务器是Ubuntu?您的开发服务器和“新服务器”是同一个操作系统吗?相同的 PHP 版本?
这两个服务器可能完全不同!
你能展示你的cronjob吗? (它是否尝试通过 #!/usr/bin/env php
调用使用特定的 php 二进制文件?
Ubuntu 的一种可能性:
在 CLI 中运行的 PHP 可能与在 Apache 中运行的不同,尤其是如果您将 php5-fpm 与 Nginx 一起使用时可能会有所不同。
他们每个人都可以有自己的 php.ini 和加载不同的扩展。
如您所说,您使用的是 Ubuntu 服务器。如果您使用的是 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 中的 php vs Apache2 vs PHP-FPM 都可以加载不同的扩展并分离安装的 php.ini。
也许基于 cli 的(可能是 cronjob 使用的)可能是不同版本的 PHP (!) 或加载不同的 .ini 文件和/或扩展集。
关于php - ob_start() 未能在 laravel 3 中创建缓冲区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18787514/