You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在DDEV中无法为PHP 8.0启用php-yaml扩展的求助

解决DDEV环境中PHP YAML扩展无法启用的问题

问题背景

按以下流程操作后遇到PHP YAML扩展无法启用的问题:

  • 创建Drupal 9目录结构后执行命令:
    ddev config --project-type=drupal9 --docroot=web --create-docroot
  • 在该目录下通过DDEV创建Varbase Starter Kit项目:
    ddev composer create Vardot/varbase-project:~9 --no-dev --no-interaction
  • 修改.ddev/config.yaml中的项目名称和docroot(Varbase使用docroot目录而非默认的web)
  • 尝试浏览器安装发行版时,收到PHP YAML扩展缺失的警告

按DDEV文档尝试以下操作后问题仍未解决:

  1. 在config.yaml中添加配置:webimage_extra_packages: [php-yaml]
  2. 在.ddev目录下创建php文件夹,添加.ini文件内容:
    [PHP]
    extension=yaml.so
    

重启DDEV后,YAML扩展仍未启用,执行ddev php -m未列出yaml,且出现警告:

PHP Warning:  PHP Startup: Unable to load dynamic library 'yaml.so' (tried: /usr/lib/php/20200930/yaml.so (/usr/lib/php/20200930/yaml.so: cannot open shared object file: No such file or directory), /usr/lib/php/20200930/yaml.so.so (/usr/lib/php/20200930/yaml.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0

环境信息:Linux Mint(LMDE5),Drupal 9,PHP 8.0,nginx-fpm,mariadb 10.3

解决步骤

1. 修正扩展包名称

DDEV的web镜像中,不同PHP版本对应不同的扩展包命名。PHP 8.0对应的YAML扩展包是php8.0-yaml,而非通用的php-yaml。修改.ddev/config.yaml中的配置:

webimage_extra_packages: [php8.0-yaml]

2. 删除手动添加的.ini配置文件

安装php8.0-yaml包后,系统会自动生成对应的配置文件启用扩展,无需手动创建.ini文件。删除.ddev/php目录下的yaml相关.ini文件。

3. 重启DDEV服务

执行命令重启服务:
ddev restart

4. 验证扩展状态

执行命令查看已启用的PHP扩展:
ddev php -m
检查输出中是否包含yaml,同时确认不再出现启动警告。

内容的提问来源于stack exchange,提问作者random input

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 17:48:19