为 Drupal9 创建目录结构后,
ddev config --project-type=drupal9 --docroot=web --create-docroot
我使用 ddev 在该目录中创建了一个 Drupal 发行版 Varbase Starter Kit 项目:
ddev composer create Vardot/varbase-project:~9 --no-dev --no-interaction
我做了必要的配置,并在 config.yaml 中更改了项目的名称和 docroot(注意:Varbase 使用名为 docroot 的目录而不是 web) 然后,当我尝试通过浏览器安装发行版时,我收到一条警告,告诉我缺少 PHP 扩展 YAML。
因此,根据 ddev 文档中的说明,我通过将以下行添加到 config.yaml 来将包添加到 Docker 映像:
webimage_extra_packages: [php-yaml]
然后为了启用扩展,我在 .ddev 目录中创建了一个 php 目录,并使用包含以下行的 .ini 文件添加了我的配置:
[PHP]
extension=yaml.so
我重新启动了 ddev 但 YAML 扩展仍未启用。 我检查了一下,发现 php-yaml 包已成功安装,但未启用。 当我使用命令
ddev php -m
列出 PHP 模块时,未列出 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
似乎找不到(或访问?)yaml.so 文件,因此无法启用它。 我该如何解决这个问题?
我正在使用 Linux Mint (LMDE5),网站是 Drupal9,带有 PHP 8.0、nginx-fpm、mariadb 10.3
你想要的包只是
php8.0-yaml
,并且8.0
可以通过DDEV_PHP_VERSION
环境变量自动化,所以在.ddev/config.yaml
中:
webimage_extra_packages: [php${DDEV_PHP_VERSION}-yaml]
无需额外配置(无需更改 php 配置)只需
ddev restart
。执行此操作后,您将看到 ddev php -i
中列出的 yaml
参见文档