CodeIgniter报错SYSTEMPATH/CodeIgniter.php第219行,添加intl扩展仍无效
CodeIgniter 缺少intl扩展报错解决方案
问题核心原因
修改php.ini后仍报错,本质是web服务运行的PHP实例没有成功加载intl扩展,和CodeIgniter框架的校验逻辑无关,按以下步骤排查即可:
排查&解决步骤
第一步:确认intl扩展实际加载状态
在项目根目录新建phpinfo.php文件,写入以下内容:
浏览器访问该文件,搜索是否存在<?php phpinfo();intl扩展的配置区块。如果没有,说明扩展确实没有加载成功,继续往下排查。第二步:确认修改的是正确的php.ini文件
从phpinfo.php页面找到Loaded Configuration File项,对应的值就是当前web服务实际加载的php.ini的绝对路径,只修改这个路径的配置文件才会生效。多数配置不生效的情况都是误改了PHP CLI对应的php.ini,或者第三方集成环境(如XAMPP、WAMP)下其他版本的php.ini导致的。第三步:Windows环境下修复intl扩展依赖
如果你的PHP版本<7.4,或者是手动配置的PHP环境,需要将PHP根目录下所有icu*.dll前缀的文件,复制到Apache的bin目录,或者直接把PHP根目录添加到系统的PATH环境变量中,否则intl扩展会因为缺少依赖库加载失败。第四步:重启服务生效配置
修改完php.ini后,必须重启对应的web服务才能生效:- 用Apache的话重启Apache服务
- 用Nginx+PHP-FPM的话重启PHP-FPM服务
- 用集成环境的话直接在面板点击重启服务
第五步:检查扩展版本匹配
如果做完以上步骤仍加载失败,打开PHP的错误日志,查找是否存在PHP Startup: Unable to load dynamic library 'php_intl.dll'类的报错,如果存在说明你当前的php_intl.dll和你的PHP版本不匹配,需要确保扩展的PHP版本、线程安全(TS/NTS)、架构(x86/x64)和你当前运行的PHP完全一致,下载对应版本的扩展替换后再重启服务。
验证解决
完成配置后,刷新phpinfo.php确认intl扩展存在,再访问CodeIgniter项目即可正常运行。
内容的提问来源于stack exchange,提问作者Erna Piantari
相关产品推荐
相关产品推荐

