0

我安装了 phpspreadsheet 但出现错误:

PHP 致命错误:在第 469 行调用 /opt/apache/htdocs/mysite/tools/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Shared/StringHelper.php 中的未定义函数 PhpOffice\PhpSpreadsheet\Shared\mb_strlen()

这是用于调用 phpspreadsheet 的代码:

require '../vendor/autoload.php';
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;

根据我的发现,这意味着插件 mbstring 没有工作/安装,但我的 PHP 说它已安装:

# php -m
[PHP Modules]
Core
ctype
curl
date
dom
ereg
fileinfo
filter
gd
hash
iconv
intl
json
libxml
mbstring
mhash
mysql
mysqli
openssl
pcre
PDO
pdo_mysql
Phar
Reflection
session
SimpleXML
SPL
sqlite3
standard
xml
xmlreader
xmlwriter
zip
zlib

[Zend Modules]

知道是否缺少其他东西或我该如何解决这个问题?

4

2 回答 2

1

CLI 配置与 Web 配置是分开的。根据您的环境,您必须更改通过您使用的任何 Web 服务器访问 PHP 时正在使用的 php.ini 文件。

为了检查正在使用的 php.ini 文件的位置,您可以phpinfo()从您的 Web 应用程序(而不是 CLI)运行。phpinfo()输出将包含文件php.ini位置信息。

于 2019-02-01T16:38:05.350 回答
0

所以一切都表明它正在安装和工作,但它仍然给出错误。我什至验证了 mbstring.so 确实存在于它应该在的位置并且在 php.ini 中并且没有被注释。

我试图安装它,但因为它已经在那里,所以“无事可做”。

我解决这个问题的方法是卸载 mbstring 然后从 opencsw 重新安装它(我从那里安装我所有的 php 包)。

这样做并再次重新启动apache之后,它不再给我错误。

于 2019-02-01T17:07:31.680 回答