致命错误:在第2行的/home/blabla/blabla.php中调用未定义的函数mb_internal_encoding()

时间:2014-09-10 22:56:27

标签: php ssh

当我在ssh上运行php脚本时:

php /home/blabla/blabla.php

它说:

Fatal error: Call to undefined function mb_internal_encoding() in /home/blabla/blabla.php on line 2

但是当我在http://blabla.com/blabla.php这样的浏览器上运行它时,它就可以了。

我已经使用(--enable-mbstring)安装 mbstring 并在 php.ini 中激活(否则它也无法在浏览器上运行)

mbstring

Multibyte Support   enabled
Multibyte string engine libmbfl
HTTP input encoding translation disabled
libmbfl version 1.3.2

这种情况的原因是什么?

为什么我想在ssh上运行php时会出现错误?

2 个答案:

答案 0 :(得分:1)

通过网络服务器而不是命令行工作并不奇怪。 这两个人很可能正在使用不同的配置文件。

您可以将<? phpinfo(); ?>放在.php文件中,并通过Web服务器和CLI运行相同的php文件,以便更好地理解。然后你可以仔细检查配置文件并确保启用扩展。

另一个替代方案(但仍然是激烈的)将重建PHP和Apache。

答案 1 :(得分:0)

phpinfo();放在.php文件中并在服务器上运行它。

如果禁用“Zend Multibyte Support”:

  1. 转到PHP配置'php.ini'文件
    • 在Ubuntu中,它们将位于“/ etc / php / {php version} /apache2/php.ini”中 (例如“/etc/php/7.0/apache2/php.ini”)
  2. 设置:zend.multibyte = On
  3. 重新启动服务器。
    • 在Ubuntu中,运行shell命令:sudo service apache2 restart