我正在为项目使用Laravel 3,我做了一些工作cronjob script,当我移到新服务器时,它一直在说:
cronjob script
警告::找不到ob_start()函数“ mb_output_handler”或无效的函数名称和注意ob_start():未能创建缓冲区
ob_start()
mb_output_handler
任何想法如何解决这个问题?
新服务器是Ubuntu吗?您的开发服务器和“新服务器”是同一操作系统吗?相同的PHP版本?
两台服务器可能 完全 不同!
你能展示你的cronjob吗?(它是否尝试通过#!/usr/bin/env php调用使用特定的php二进制文件?
#!/usr/bin/env php
PHP的CLI运行 可以 从Apache中被运行不同,特别是有可能不同,如果你使用PHP5-FPM与Nginx的。
他们每个人都可以拥有自己的php.ini和不同的扩展名。
如您所说,您正在使用Ubuntu Server。如果您使用的是PHP 5.5,则可能会注意到以下几点/etc/php5:
/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文件和/或一组扩展名。