【问题标题】:How can I repair my wamp server after install composer in windows 10?在 Windows 10 中安装作曲家后如何修复我的 wamp 服务器?
【发布时间】:2019-07-01 17:36:49
【问题描述】:

主要是在为 Windows 10 安装 Composer 之后,我的 wamp 不再工作了。

我解释说我已尝试解决此问题:

我试图找到答案,但没有找到:

  1. 删除另一个版本: 我读到了这个question,我的 wampserver 已经分配了正确的版本,我不想删除我的另一个版本。
  2. 手动安装 Composer: 我尝试install the composer manually,但问题仍然存在,我不知道是否有待处理的 wamp 服务器端。

这是我的 composer.bat 文件的内容:

@echo OFF
:: in case DelayedExpansion is on and a path contains ! 
setlocal DISABLEDELAYEDEXPANSION
@C:\wamp\bin\php\php5.6.38\php.exe "%~dp0composer.phar" %*

这是我遇到的 wamp 服务器错误:

There is an error.

There is Wampserver path (c:/wamp)
into Windows PATH environnement variable: (C:\wamp\bin\php\php5.6.38)

It seems that a PHP installation is declared in the environment variable PATH C:\wamp\bin\php\php5.6.38

Wampserver does not use, modify or require the PATH environment variable.
Using a PATH on Wampserver or PHP version
is detrimental to the proper functioning of Wampserver.

我添加了我可以在 wamp 服务器图标上看到的图像: Message of wampserver

【问题讨论】:

  • 如果我的问题不是很清楚,请告诉我。
  • 终于找到了我的问题here的答案。

标签: php composer-php wamp


【解决方案1】:

我将在这里重新发布我的解决方案,因为我认为它完美地解决了您的问题,并且对于 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 安装已经遇到此错误,那么

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

【讨论】:

  • 请不要重复发布相同的答案。如果您觉得这个问题与另一个问题重复,请将其标记为这样
  • 它不完全是重复的,但我的回答仍然适用。我是否应该插入对先前答案的引用,而不是重新发布此解决方案?抱歉,我找不到某些标准的链接来确定问题是否重复
猜你喜欢
  • 2018-02-18
  • 1970-01-01
  • 1970-01-01
  • 2017-07-06
  • 2014-11-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-01
相关资源
最近更新 更多