已安装php_yaml扩展却无法加载的问题求助
解决PHP yaml扩展加载失败问题
我在参与Laravel项目时,遇到yaml_parse相关错误,推测是未安装php_yaml扩展。从PECL下载对应版本的php_yaml.dll放到PHP的ext目录,在php.ini中添加了extension=php_yaml.dll和extension=yaml配置,但启动PHP时仍提示无法加载动态库,错误提示如下:
PHP Warning: PHP Startup: Unable to load dynamic library 'php_yaml.dll' (tried: ext\php_yaml.dll (Kan opgegeven module niet vinden), ext\php_php_yaml.dll.dll (Kan opgegeven module niet vinden)) in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library 'yaml' (tried: ext\yaml (Kan opgegeven module niet vinden), ext\php_yaml.dll (Kan opgegeven module niet vinden)) in Unknown on line 0
已确认dll文件放置在正确的ext目录:

php.ini相关配置:
;extension=tidy ;extension=xsl extension=php_yaml.dll extension=yaml extension=zip ;zend_extension=opcache
解决步骤:
- 匹配扩展版本与PHP环境:用
php -v或phpinfo()查看PHP的版本(如7.4/8.1)、位数(x86/x64)、线程安全(TS/NTS),确保下载的php_yaml.dll完全对应这些参数,版本不匹配会直接导致加载失败。 - 补充依赖库:部分php_yaml.dll依赖
libyaml-0-2.dll这类系统库,解压PECL下载的压缩包后,把附带的依赖dll放到PHP根目录或者系统的System32(x64)/SysWOW64(x86)目录。 - 清理重复配置:php.ini中同时配置
extension=php_yaml.dll和extension=yaml会触发重复加载尝试,删掉其中一个,保留extension=yaml即可(PHP 7+支持省略php_前缀和.dll后缀的配置写法)。 - 确认php.ini路径:执行
php --ini查看当前PHP实际加载的配置文件路径,避免修改了错误的php.ini文件。 - 重启相关服务:修改php.ini后,必须重启Web服务器(Apache/Nginx)或关闭所有PHP终端重新打开,确保配置生效。
- 验证加载结果:执行
php -m命令,查看输出列表中是否存在yaml;或创建phpinfo页面,搜索yaml确认扩展是否成功加载。
内容的提问来源于stack exchange,提问作者Stef Verniers
相关产品推荐
相关产品推荐

