【问题标题】:How to use composer with WampServer?如何将 Composer 与 WampServer 一起使用?
【发布时间】:2017-11-28 12:04:25
【问题描述】:

我正在尝试将 composer 与我的 WampServer 一起使用。

我所有文件的路径都是C:\wamp64\www,但是当我运行composer时,它会在其他地方安装供应商文件和其他东西。

我什至不知道在哪里,也无法更改我的项目在哪里的路径。 我已经尝试了所有方法,但似乎仍然没有在我的项目文件夹中安装供应商文件。

【问题讨论】:

    标签: composer-php wampserver


    【解决方案1】:

    虽然这是一篇旧帖子,但只要 Wampserver 存在,它可能很有用,所以最简单的解决方法是:

    1. 转到 wampserver 中的“bin/php”文件夹,通常位于 C:\wampXX\bin\php,然后查找 wampserver 中使用的 php 版本。您可以导航到 http://localhost 来找到它,或单击 Windows 任务栏上的 Wampserver 图标 (如果您的没有版本号,请单击 PHP -> 版本,您将看到已选中一)

    1. 在“bin/php”文件夹中打开你的PHP对应的文件夹 版本,在我的情况下为“7.0.33”并复制此路径:

    1. 转到 Windows 环境变量,并在系统变量中添加您复制到 Path 变量的 PHP 文件夹路径(您可以在 Google 上搜索如何更改 Windows 版本上的路径变量)。

    P.S.:如果您切换 PHP 版本,它将不再起作用,您将不得不再次这样做。但现在,更改为正确的 PHP 版本文件夹。

    1. 完成后,去作曲家网站下载windows安装程序。

    2. 将 CD 放入您的项目根目录并运行(其中必须包含 composer.json 文件):

      作曲家安装

    就是这样。也许需要做很多工作,但最后一切都很简单。

    【讨论】:

    • 就我而言,这就是答案,因为它确保 wampserver 使用的 PHP 版本与 composer 使用的 PHP 版本相同。
    • 嗨吉尔伯托。我有个问题。我是 WampServer 的新手。这对我来说似乎是一个很好的答案,除了我不知道“你的项目根目录”是什么意思。我的 C:\wamp64 中的目录是 [alias, apps, bin, cgi-bin, lang, logs, scripts, tmp, www] 。 C:\wamp64\apps 中的目录为 [adminer4.7.7, phpmyadmin5.0.2, phpsysinfo3.3.2]。最后,C:\wamp64\www 中的目录是 [mysite, wamplangues, wampthemes]。我的“项目根目录”是什么?谢谢。
    • @Loveandpeace-JoeCodeswell 这是您拥有项目的目录。假设您的用户文件夹中有一个项目“todo”,如下所示:“c:\Users\Joe\todo”,这是您的根目录。您很可能在其中有一个 composer.json 文件,以便通过 Composer 安装依赖项。明白了吗?
    【解决方案2】:

    只需在您的项目文件夹上运行 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 的路径,这是问题的原因,当您这样做时,您会收到来自 WAMP 的警告,因为 WAMP管理 php 安装。
    【解决方案3】:

    我使用了不同的方法。我承认它很脏,每次切换 PHP 版本时,我都需要记住更新我所做的,但好吧……它可以工作:)

    转到C:\ProgramData\ComposerSetup\bin。那里有一个文件:composer.bat。每次输入composer installcomposer 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 文件夹中。

    【讨论】:

      【解决方案4】:

      我不知道发帖人是否会阅读并投票这个答案。我遇到了这个问题并解决了,我想与其他人分享我的研究。

      TL;博士

      • 在 Windows 10 中,如果您将 Composer 安装在 Windows Subsystem for Linux (WSL) 环境中,您可以使用 Composer,而不会在 Wampserver 中产生错误
      • 在 WSL 上安装 PHP
      • 然后在 WSL 上安装 Composer

      问题

      在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。

      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 终端中键入命令。

      【讨论】:

      • 这非常适合作为解决方案......但它有它的caviats。安装库时出现 SSL 错误,并使用非加密连接下载和安装库。我试过to do this 但没有用。谁能指出我的解决方案?
      • @raphie,看看this question。也许他们的回答会帮助您解决问题。另外,看看这个other question
      • SChannel 似乎是一个不错的解决方案。我一定会试试的。但我也注意到我跳过了将 composer.phar 移动到 /user/bin/local/composer 的步骤,这也可能是问题所在。
      【解决方案5】:

      这个答案很糟糕。我已经自己想通了。我必须在推荐行中使用 cd commned 才能进入此文件夹。

      所以在 CMD 之后我会输入 cd C:\wamp64\www\project0 那是我的问题的正确答案。

      【讨论】:

      • 很抱歉给您带来不便!
      猜你喜欢
      • 2017-12-23
      • 1970-01-01
      • 2018-12-14
      • 2020-06-05
      • 1970-01-01
      • 1970-01-01
      • 2014-04-13
      • 2013-08-08
      • 1970-01-01
      相关资源
      最近更新 更多