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

使用DDev快速部署Magento 2时遇“文件名过长”错误求助

解决Ubuntu 20.04下DDev安装Magento 2时的文件名过长错误

系统环境

  • DISTRIB_ID=Ubuntu
  • DISTRIB_RELEASE=20.04
  • DISTRIB_CODENAME=focal
  • DISTRIB_DESCRIPTION="Ubuntu 20.04.6 LTS"

问题详情

按照DDev的Magento 2快速启动指南操作时,执行安装命令触发以下错误:

ZipArchive::extractTo(/var/www/html/vendor/composer/90d2dd07/dev/tests/acceptance/tests/_data/adobe-base-image-long-name-image-long-name-image-long-name-image-long-name-image-long-name-image-long-name-image-long-name-image-long-name-image-long-name.jpg): Failed to open stream: File name too long

错误截图

注:当前无法以sudo权限运行DDev,也不能在根目录执行命令。

可行解决方案

1. 缩短Composer缓存路径

修改Composer配置,将缓存目录设置为更短的路径,避免嵌套过深导致总路径长度超标:

  • 全局配置(对所有项目生效):
composer config -g cache-dir ~/.c/cache
  • 项目本地配置(仅当前项目生效):
composer config cache-dir ./tmp/cache

配置完成后重新执行Magento安装命令。

2. 自定义DDev挂载路径

编辑项目根目录下的.ddev/config.yaml,添加自定义挂载规则,将vendor目录映射到容器内更短的路径:

mounts:
  - type: bind
    source: ./vendor
    target: /var/www/v

保存配置后重启DDev:

ddev restart

此时容器内的路径长度会大幅缩短,可绕过文件名长度限制。

3. 手动处理过长文件名的文件

  1. 在Composer缓存目录(默认~/.composer/cache/files/)找到对应包的压缩文件
  2. 将压缩包解压到临时目录,把过长文件名重命名为短名称(例如test-image.jpg)
  3. 将重命名后的文件复制到项目对应路径:vendor/composer/90d2dd07/dev/tests/acceptance/tests/_data/
  4. 重新执行安装命令

4. 管理员协助调整系统限制(参考)

若能联系服务器管理员,可让其调整项目所在分区的文件系统参数,启用长路径支持。但此操作需要sudo权限,当前无法自行执行,仅作备选参考。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 21:47:48