【发布时间】:2017-11-28 12:04:25
【问题描述】:
我正在尝试将 composer 与我的 WampServer 一起使用。
我所有文件的路径都是C:\wamp64\www,但是当我运行composer时,它会在其他地方安装供应商文件和其他东西。
我什至不知道在哪里,也无法更改我的项目在哪里的路径。 我已经尝试了所有方法,但似乎仍然没有在我的项目文件夹中安装供应商文件。
【问题讨论】:
我正在尝试将 composer 与我的 WampServer 一起使用。
我所有文件的路径都是C:\wamp64\www,但是当我运行composer时,它会在其他地方安装供应商文件和其他东西。
我什至不知道在哪里,也无法更改我的项目在哪里的路径。 我已经尝试了所有方法,但似乎仍然没有在我的项目文件夹中安装供应商文件。
【问题讨论】:
虽然这是一篇旧帖子,但只要 Wampserver 存在,它可能很有用,所以最简单的解决方法是:
P.S.:如果您切换 PHP 版本,它将不再起作用,您将不得不再次这样做。但现在,更改为正确的 PHP 版本文件夹。
完成后,去作曲家网站下载windows安装程序。
将 CD 放入您的项目根目录并运行(其中必须包含 composer.json 文件):
作曲家安装
就是这样。也许需要做很多工作,但最后一切都很简单。
【讨论】:
只需在您的项目文件夹上运行 composer。
假设您的项目路径位于C:\wamp64\www\project0。所以,只需在project0 文件夹中运行composer install。 Composer 将在此 project0 文件夹中创建 vendor 文件夹。此文件夹包含已安装的libraries 的一些文件夹。
Composer 还会生成一个文件composer.lock。此文件包含已安装库的信息。
然后,当您想使用这些库时,请将此代码添加到您的 php 文件中。
require_once "vendor/autoload.php";
这将调用自动加载器,因此您无需再使用require_once 来加载PHP Classess。只需使用 use 关键字调用 Class。
use Library0/Class0;
use Library1/Class1;
use Library2/Class2;
【讨论】:
我使用了不同的方法。我承认它很脏,每次切换 PHP 版本时,我都需要记住更新我所做的,但好吧……它可以工作:)
转到C:\ProgramData\ComposerSetup\bin。那里有一个文件:composer.bat。每次输入composer install 或composer update 命令时都会执行此操作。使用记事本或任何其他文本编辑器对其进行编辑。您应该会看到如下内容:
@ECHO OFF
php "%~dp0composer.phar" %*
我们要做的是给一个php.exe的直接路径,所以让我们注释掉当前命令并编写我们自己的:
@ECHO OFF
REM php "%~dp0composer.phar" %*
C:\wamp64\bin\php\php5.6.40\php.exe "%~dp0composer.phar" %*
现在一切正常。但是一旦你在 Wampserver 中切换到另一个 PHP 版本,你也应该更新这个文件。
顺便说一句:可以进行类似的更改以使 PHP 嗅探器或 PHPUnit 也可以工作。他们的 bat 文件在 C:\Users\[your windows user]\AppData\Roaming\Composer\vendor\bin 文件夹中。
【讨论】:
我不知道发帖人是否会阅读并投票这个答案。我遇到了这个问题并解决了,我想与其他人分享我的研究。
在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 安装已经遇到此错误,那么
听从Wampserver forum的建议,
备份您的www 文件夹的内容,
卸载 Wampserver,
重新安装 Wampserver。
如果您使用的是 Windows 10 并遵循了前面的步骤,那么您就可以实施我提出的解决方案了。
我在研究中发现的唯一解决方案在 this tutorial by Jeff Geerling 中进行了解释。我的回答有点松散地遵循本教程。
这些是我开始执行此过程时电脑的设置:
虽然带有 WSL 集成终端的 Visual Studio 不是绝对必要的,但我已经设置了它,因为我打算安装和使用 Composer。
为了正常工作,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
有两种方法:
更简单的方法:只需在集成终端上输入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 终端中键入命令。
【讨论】:
这个答案很糟糕。我已经自己想通了。我必须在推荐行中使用 cd commned 才能进入此文件夹。
所以在 CMD 之后我会输入 cd C:\wamp64\www\project0 那是我的问题的正确答案。
【讨论】: