php Spark 服务未捕获错误:调用未定义的函数 CodeIgniter\CLI\mb_strpos()

问题描述 投票:0回答:1

我是 PHP 新手,尝试使用 localhost 打开 CodeIgniter 4 欢迎页面(我没有任何像 XAMPP 这样的服务器程序,因为它是公司计算机,并且 PHP 可以与其内置服务器配合良好。)

当我尝试在终端上运行命令:

php spark serve
时,它会给出如下错误:

Uncaught Error: Call to undefined function CodeIgniter\CLI\mb_strpos() in C:\Users\50290536\Desktop\php-test\system\CLI\CLI.php:776

我在

php.ini
文件中启用了必要的扩展,并且该文件:
php_mbstring.dll
在目录
php/ext
中可用。

我还尝试运行命令:

php spark
来查看
spark
是否正常工作,但在这种情况下,我收到以下错误:

The framework needs the following extension(s) installed and loaded: curl, intl, mbstring at SYSTEMPATH\Codeigniter.php:224

所有这些扩展均在

php.ini
文件中启用,并且它们各自的
.dll
文件可在目录
php/ext
中找到。

详情:


PHP版本:

v8.2

CodeIgniter 4框架版本:

v4.2.10

运行命令后当前启用的 PHP 模块:

php -m

bcmath
calendar
Core
ctype
date
dom
filter
hash
iconv
json
libxml
mysqlnd
pcre
PDO
Phar
random
readline
Reflection
session
SimpleXML
SPL
standard
tokenizer
xml
xmlreader
xmlwriter
zlib
php localhost codeigniter-4 mbstring
1个回答
0
投票

在我的例子中,php.ini中的extension_dir指令是相对路径。如果将其更改为绝对值,它应该可以工作。例如:

extension_dir = "c:\php\ext"

或者,您可以尝试使用以下值:“./ext”或“.xt”或“ext”。 确保取消注释该指令。 (把开头的分号删掉即可)

这是某些机器/版本上的已知错误

正如您所说,您的操作系统是Windows,您可以检查是否可以解决问题。我认为如果

php -m
命令列出了 mbstring 扩展名,那么它将解决您原来的问题,并且 CodeIgniter Spark 将正常工作。

确保编辑正确的 php 配置文件。您可以使用

which php
where php
命令找到 php 的位置。

是的,您只需将 php.ini-development 移动到 php.ini 即可,它应该可以工作。

来源:https://stackoverflow.com/a/63489141/7742526https://bugs.php.net/bug.php?id=74866

© www.soinside.com 2019 - 2024. All rights reserved.