首页 > 解决方案 > 为什么 Drupal 的作曲家创建项目在 WSL2 中失败?

问题描述

我是一名 Drupal 站点构建者,正在试验 WSL2,我发现使用 composer 创建 Drupal 项目的例程没有完成。

我的电脑有 16GB 的 RAM,作曲家允许无限的内存。据我了解,我已经为 WSL2 正确配置了 Docker。

创建项目过程正常启动,但在安装 drupal/core (9.0.2) 时停止。无论是从源下载还是从缓存下载,这似乎都是如此。相当长的时间后,该过程将失败。项目文件夹的内容大部分不完整。

我首先尝试使用DDEV的 Drupal 9 配方,这是一个基于容器的本地开发环境,其中包括作曲家。

不希望将矛头指向 DDEV,然后我通过 Homebrew 在 WSL2 的主目录中安装了 composer 并再次尝试,独立于 DDEV 或 Docker。运行后,composer create-project drupal/recommended-project my_site_name_dir我发现作曲家以完全相同的方式失败。

作曲家输出如下;

paul@DESKTOP-TQA1I7L:/mnt/c/Users/Paul/Sites/D9$ composer create-project drupal/recommended-project my_site_name_dir 在“./my_site_name_dir”创建一个“drupal/recommended-project”项目安装drupal/recommended-项目 (9.0.2)

[Symfony\Component\Process\Exception\ProcessTimedOutException] 进程“git checkout '9.0.2' --”超过了 300 秒的超时时间。

create-project [-s|--stability STABILITY] [--prefer-source] [--prefer-dist] [--repository REPOSITORY] [--repository-url REPOSITORY-URL] [--add-repository] ​​[ --dev] [--no-dev] [--no-custom-installers] [--no-scripts] [--no-progress] [--no-secure-http] [--keep-vcs] [--remove-vcs] [--no-install] [--ignore-platform-reqs] [--] [] [] []

paul@DESKTOP-TQA1I7L:/mnt/c/Users/Paul/Sites/D9$ paul@DESKTOP-TQA1I7L:/mnt/c/Users/Paul/Sites/D9$ composer create-project drupal/recommended-project my_site_name_dir 创建一个“./my_site_name_dir”中的“drupal/recommended-project”项目

[InvalidArgumentException] 项目目录“/mnt/c/Users/Paul/Sites/D9/my_site_name_dir”不为空。

create-project [-s|--stability STABILITY] [--prefer-source] [--prefer-dist] [--repository REPOSITORY] [--repository-url REPOSITORY-URL] [--add-repository] ​​[ --dev] [--no-dev] [--no-custom-installers] [--no-scripts] [--no-progress] [--no-secure-http] [--keep-vcs] [--remove-vcs] [--no-install] [--ignore-platform-reqs] [--] [] [] []

标签: dockerdrupalcomposer-phpwindows-subsystem-for-linuxddev

解决方案


您绝对需要将您的项目放在 WSL2 文件系统上以获得良好的性能,是的。请参阅@MrPaulDriver 的回答,绝对关键。

但我们建议ddev composer在任何地方使用。这使您的作曲家使用与您的项目运行相同的作曲家设置和 php 版本进行构建,并且它可以帮助大多数人。因此,甚至不需要在 ddev 主机的主机上安装 php 或 composer。

例如,Drupal 9 Quickstart显示

mkdir my-drupal9-site
cd my-drupal9-site
ddev config --project-type=drupal9 --docroot=web --create-docroot
ddev start
ddev composer create "drupal/recommended-project"
ddev composer require drush/drush
ddev launch

我想即使在您以前的设置中,这也对您有用;它在很多地方都有效。

有关更多详细信息,请查看文档中的DDEV 和 Composer


推荐阅读