标签: ddev

启动 ddev 时出现“ngnix 403 Forbidden”

在启动我的 ddev 项目并使用 Web 浏览器点击它后,我突然开始收到“ngnix 403 Forbidden / directory index of "/var/www/html/" is forbidden' 或只是 '403 Forbidden',我想不通为什么。这工作得更早。

ddev

5
推荐指数
1
解决办法
2305
查看次数

ddev如何自动创建其他数据库?

这是一个后续问题如何在ddev中创建和加载第二个数据库?.它是关于自动执行该任务.

一个用例就是从另一个MySQL数据库开始向Drupal迁移,并在迁移时与其他人合作.如果数据库名称可以由ddev设置,则其他开发人员可以自动创建数据库,并可以使用已知值将其他数据库添加到其settings.local.php中.

ddev

5
推荐指数
1
解决办法
422
查看次数

在 DDEV 容器内使用 Behat Drupal Extension 运行 selenium 测试

问题:让基于 Behat Drupal 扩展的测试在 ddev 容器内工作。这包括向现有配置添加单独的 selenium 容器、能够运行 Behat 测试以及能够引用web主机容器。

selenium drupal ddev

5
推荐指数
1
解决办法
470
查看次数

XSym符号链接不能在Windows的Docker上的PHP中使用

在Windows的Docker容器内使用PHP(例如,使用DDEV)时,在容器内创建的符号链接(例如,由作曲家使用)似乎不适用于PHP的文件流。

情境

想象下面的PHP代码

<?php
mkdir('demo-base-directory');
symlink('demo-base-directory', 'demo-symbolic-link');
var_dump(glob('demo-*', GLOB_ONLYDIR));
Run Code Online (Sandbox Code Playgroud)

如果在容器内执行,则仅输出demo-base-directory,但是demo-symbolic-link会丢失(该示例在Docker容器内的Linux / Unix系统上按预期工作)

array(1) {
  [0]=>
  string(19) "demo-base-directory"
}
Run Code Online (Sandbox Code Playgroud)

当查看主机系统中的符号链接时(例如cat demo-symbolic-link在Windows PowerShell中使用),它显示

XSym
0019
0df68e8650ddca993c28277a5cfa3dcd
demo-base-directory
Run Code Online (Sandbox Code Playgroud)

Docker for Windows还有其他关于符号链接仿真的报告-我无法使用fgetsfile_get_contents而是针对提到的glob调用为文件重现此行为,请参见

共享卷安装在Windows主机系统上的基于Linux的Docker容器中,安装方式为Samba / CIFS,如下所示:

/ var / www / html上的//10.0.75.1/C类型cifs(rw,relatime,vers = 3.02,sec = ntlmsspi,cache = strict,用户名= olly,domain = OLIVERHADERB9D8,uid = 0,noforceuid,gid = 0 ,noforcegid,addr = 10.0.75.1,file_mode = 0755,dir_mode = 0777,iocharset = utf8,nounix,serverino,mapposix,nobrl,mfsymlinks,noperm,rsize = 1048576,wsize = 1048576,echo_interval = 60,actimeo = …

php samba docker windows-10 ddev

5
推荐指数
1
解决办法
946
查看次数

ddev 为共享的 Composer 包挂载附加文件夹

拥有一个包含多个 ddev 项目和共享 Composer 包文件夹的 monorepo,我想将其他文件夹安装到 Web 容器中。

我正在尝试开发一组 TYPO3 扩展并同时使用 v9 和 v10 测试它们,为此我在一个 git 存储库和一个包含我的扩展的包文件夹中创建了两个 ddev 项目。不过,相对路径 ddev Composer 将看不到我的包文件夹,因为它位于挂载根目录之外。符号链接不能跨 docker 边界工作。所以我想使用 docker 工具将附加目录安装到 ddev Web 容器中。

有什么好的方法吗?

typo3 composer-php docker monorepo ddev

5
推荐指数
1
解决办法
2129
查看次数

如何在 DDEV Web 容器中添加和使用 nvm?

目前,DDEV Web 容器未附带 nvm(节点版本管理器)。如何通过 DDEV config.yaml 文件添加和使用它?

ddev

5
推荐指数
2
解决办法
561
查看次数

使用 Debian 11 在 DDEV 上使用 pecl install pdo_sqlsrv MAKE 失败 - 缺少 libltdl.la

我有一个使用 DDEV 运行 PHP 8.1 实例的项目。我需要向包中引入 pdo_sqlsrv 扩展,因此我在 .ddev/web-build/ 目录中添加了一个 Dockerfile,用于安装所需的包,并复制一个 bash 脚本,然后使用 sudo 运行该脚本来安装剩余的依赖项。

bash 脚本获取 microsoft gpg 密钥,从packages.microsoft.com/config/$OS/$VERSION/prod.list 中提取 apt 源列表(其中 OS 和 Version 是相当于 debian 和 11 的变量),然后继续执行安装 msodbcsql17、unixodbc 和 unixodbc-dev

最后,bash 脚本运行 pecl install pdo_sqlsrv 命令。

一切都按预期工作,除了 pdo_sqlsrv 的构建由于缺少文件 /usr/lib/x86_64-linux-gnu/libltdl.la 而失败 我已经搜索了我能找到的所有内容,并且无法理解为什么这个 libltdl.la 文件是丢失的。我验证了 libltdl-dev (2.4.6-15) 软件包已安装。它有其他预期的文件,如 libltdl.a 和 libltdl.so 等 - 只是不是 .la 文件。

为了防止项目开发陷入停滞,我拼命尝试将 libltdl.la 文件从本地 WSL2 Ubuntu 20.04 系统复制到我的 .ddev/web-build/ 目录中,并将以下命令添加到我的 Dockerfile 中: COPY libltdl.la /usr/lib/x86_64-linux-gnu/

这“解决”了问题,允许 pecl 安装完成,并且生成的 pdo_sqlsrv 扩展被正确编译并按预期加载。然而,为什么这个 .la 文件丢失,以及如何“正确”确保它安装,仍然是一个我希望我能理解答案的问题。 …

debian bullseye ddev php-8.1

5
推荐指数
2
解决办法
2144
查看次数

如何使用 ddev 运行 Composer?

我需要在我的 ddev 项目上运行 Composer,但我的 Windows 计算机上没有它。例如,项目需要composer install启动前。我如何在这种环境下使用 Composer,尤其是在 Windows 上?

ddev

4
推荐指数
1
解决办法
3176
查看次数

如何使用ddev exec的'cd'或'&&'或'>'重定向等bash结构?

我正在尝试使用容器中的bash做一些复杂的事情,ddev exec似乎无法让它工作.例如,ddev exec cd /var/tmp导致出现大错误消息

Failed to execute command [cd /var/tmp]: Failed to run docker-compose [-f /Users/rfay/workspace/d8git/.ddev/docker-compose.yaml exec -T web cd /var/tmp], err='exit status 126', stdout='OCI runtime exec failed: exec failed: container_linux.go:348: starting container process caused "exec: \"cd\": executable file not found in $PATH": unknown
Run Code Online (Sandbox Code Playgroud)

并尝试使用"||" 并且"&&"或带有">"的shell重定向也不起作用.

ddev

4
推荐指数
1
解决办法
723
查看次数

无法将 Browsersync 与 DDEV nginx 服务器连接,因为 SSL 错误

我正在 Bedrock WordPress 网站上运行 DDEV nginx 服务器并尝试加载 Browsersync 的代码片段。

gulpfile.js browserSync 任务:

browserSync.init({
proxy: {
 target: "https://web.ddev.site"
}, 
https: {
 key: "/Users/user/Library/Application Support/mkcert/rootCA-key.pem",
 cert: "/Users/user/Library/Application Support/mkcert/rootCA.pem"
}, open:false}); 
Run Code Online (Sandbox Code Playgroud)

浏览器不加载代码片段并打印以下错误:

(index):505 GET https://web.ddev.site:3000/browser-sync/browser-sync-client.js?v=2.26.7 net::ERR_SSL_KEY_USAGE_INCOMPATIBLE

我怎样才能让这两件事一起工作?在 DDEV 之前,我使用的是 MAMP,但 DDEV 的性能要好得多,我想切换到这个应用程序。感谢帮助。

nginx browser-sync ddev

4
推荐指数
1
解决办法
1111
查看次数