我将在这里重新发布我的解决方案,因为我认为它完美地解决了您的问题,并且对于 question where it was posted 来说还不够。我希望它会帮助其他人
TL;博士
- 在 Windows 10 中,如果您将 Composer 安装在 Windows Subsystem for Linux (WSL) 环境中,您可以使用 Composer,而不会在 Wampserver 中产生错误。
- 在 WSL 上安装 PHP
- 然后在 WSL 上安装 Composer
补充说明:
请记住,如果您的项目需要额外的 PHP 扩展,则必须将其安装在 WSL 端。
然后,使用以下命令启用位于文件夹 /etc/php/YOUR_PHP_VERSION 中的 php.ini 文件中的扩展:
sudo nano /etc/php/YOUR_PHP_VERSION/php.ini
问题
在Windows中,Composer需要设置system variable PATH才能在安装过程中正常工作;使用 Windows Installer 或 locally, following this procedure 全局安装都没有关系
但是,在 PATH 中插入可执行的 PHP 文件位置会导致 Wampserver 中出现错误,即ERROR C:/wamp64 or PHP in path。如果您左键单击任务栏通知区域中的 Wampserver 图标,您会看到错误消息。
虽然 Wampserver 可能会像往常一样工作,但根据这个问题的答案on the official Wampserver forum,它最终可能会失败:
Wampserver 不在 PATH 系统环境变量中创建路径。
Wampserver 不使用 PATH 系统环境变量。
PATH 系统环境变量的某些内容(PHP 或 mysql 版本的路径)可能会导致 Wampserver 故障,因为 PHP 配置文件 (php.ini) 或 MySQL (my.ini) 会首先在由在 Apache、PHP 或 MySQL 文件夹中搜索之前的 PATH 环境变量的内容。
这就是为什么在 3.1.3 版本中,会检查 PATH 环境变量的内容,并在出现问题时通知您。
如果您的 Wamperserver 安装已经遇到此错误,那么
如果您使用的是 Windows 10 并遵循了前面的步骤,那么您就可以实施我提出的解决方案了。
解决方案
我在研究中发现的唯一解决方案在 this tutorial by Jeff Geerling 中进行了解释。我的回答有点松散地遵循本教程。
我的出发点
这些是我开始执行此过程时电脑的设置:
虽然带有 WSL 集成终端的 Visual Studio 不是绝对必要的,但我已经设置了它,因为我打算安装和使用 Composer。
1 - 在 WSL 上安装 PHP
为了正常工作,Composer 需要 PHP,但 WSL 没有随它一起安装。所以有必要在这个环境下安装PHP。根据this answer in AskUbuntu.com,在 WSL 上安装 PHP 的最简单方法是添加 Ondřej Surý's PPA。在 Visual Studio Code WSL 集成终端中,键入:
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
输入php --version 测试PHP 是否安装正确。如果 PHP 安装正确,终端将返回如下消息:
PHP 7.2.10-0ubuntu0.18.04.1 (cli) (built: Sep 13 2018 13:45:02) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
with Zend OPcache v7.2.10-0ubuntu0.18.04.1, Copyright (c) 1999-2018, by Zend Technologies
2 - 在 WSL 上安装 Composer
有两种方法:
更简单的方法:只需在集成终端上输入sudo apt-get install composer 即可。
第二个,我认为更好的方法:转到Composer download page并获取安装代码:
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('SHA384', 'composer-setup.php') === '544e09ee996cdf60ece3804abc52599c22b1f40f4323403c44d44fdfdd586475ca9813a858088ffbc1f233e9b180f061') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"
警告:请勿复制/粘贴本教程中提供的代码来安装 Composer。根据Composer download page,安装代码
会随着安装程序的每个版本而改变。
这里的最佳做法是直接从下载页面获取安装代码。
我认为这种方法是更好的方法,因为使用给定的代码,可以验证文件的 SHA384 并确保它没有被篡改。
如果您通过开发者网站上的安装代码安装 Composer,为了将该文件放入 WSL 上的全局路径,请使用 bash 命令将 composer.phar 文件移动到 /user/bin/local 文件夹中:
sudo mv composer.phar /user/bin/local/composer
如果您使用第一个命令安装 Composer,则不需要最后一步。
要检查软件是否安装正确,请在集成终端上键入composer。您应该查看 composer 调用选项和可用命令的列表。
请记住,要使用 Composer,您需要在 WSL 终端中键入命令。