使用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. 手动处理过长文件名的文件
- 在Composer缓存目录(默认
~/.composer/cache/files/)找到对应包的压缩文件 - 将压缩包解压到临时目录,把过长文件名重命名为短名称(例如
test-image.jpg) - 将重命名后的文件复制到项目对应路径:
vendor/composer/90d2dd07/dev/tests/acceptance/tests/_data/ - 重新执行安装命令
4. 管理员协助调整系统限制(参考)
若能联系服务器管理员,可让其调整项目所在分区的文件系统参数,启用长路径支持。但此操作需要sudo权限,当前无法自行执行,仅作备选参考。
内容的提问来源于stack exchange,提问作者jazyac
相关产品推荐
相关产品推荐

