当我在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时会出现错误?
答案 0 :(得分:1)
通过网络服务器而不是命令行工作并不奇怪。 这两个人很可能正在使用不同的配置文件。
您可以将<? phpinfo(); ?>
放在.php文件中,并通过Web服务器和CLI运行相同的php文件,以便更好地理解。然后你可以仔细检查配置文件并确保启用扩展。
另一个替代方案(但仍然是激烈的)将重建PHP和Apache。
答案 1 :(得分:0)
将phpinfo();
放在.php文件中并在服务器上运行它。
如果禁用“Zend Multibyte Support”:
zend.multibyte = On
sudo service apache2 restart