我安装了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]
您是否知道是否还有其他遗漏或如何解决?
答案 0 :(得分:1)
CLI配置与Web配置分开。 根据您的环境,您必须更改通过使用的任何Web服务器访问PHP时正在使用的php.ini文件。
为了检查php.ini文件的使用位置,可以从Web应用程序(非CLI)运行phpinfo()
。 phpinfo()
输出将包含php.ini
文件位置的信息。
答案 1 :(得分:0)
因此,所有内容都指向它正在安装和运行中,但是它仍然显示错误。我什至验证了mbstring.so确实存在,应该在php.ini中,并且没有注释。
我尝试安装它,但是因为它已经在那里而无所事事。
我要解决的问题是卸载mbstring,然后再次从opencsw(我从中安装所有php软件包的位置)安装它。
这样做之后,再次重新启动apache,它不再给我错误。