在Windows 10中安装Composer之后,如何修复我的Wamp服务器?

时间:2019-07-01 17:36:49

标签: php composer-php wamp

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

我解释说我为了解决此问题而尝试:

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

  1. 删除其他版本:我读了此question,我的wampserver分配了正确的版本,并且我不想删除其他版本。
  2. 手动安装Composer:我尝试进行install the composer manually,但问题仍然存在,我不知道是否有任何事情可以做在服务器端。

这是我的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

1 个答案:

答案 0 :(得分:0)

我将在这里重新发布我的解决方案,因为我认为它可以完美解决您的问题,并且对question where it was posted来说还不够。希望对其他人有帮助


TL; DR

  • 在Windows 10中,如果将Composer安装在Windows Subsystem for Linux(WSL)环境中,则可以使其在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中进行了解释。我的回答以某种宽松的方式遵循了本教程。

我的出发点

这些是我开始此过程时PC的设置:

尽管带有WSL集成终端的Visual Studio不是严格必需的,但我已经设置了它,因为我打算与其一起安装和使用Composer。

1-在WSL上安装PHP

要正常工作,Composer需要PHP,但未随附WSL。因此,有必要在此环境中安装PHP。根据{{​​3}},在WSL上安装PHP的最简单方法是添加this answer in AskUbuntu.com。在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上键入内容即可。

第二个,我认为是更好的方法:转到Ondřej Surý's PPA并获得安装代码:

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 。根据{{​​3}},安装代码

  

将随安装程序的每个版本而变化。

此处的最佳做法是直接从下载页面获取安装代码。

我认为该方法是一种更好的方法,因为使用给定的代码,可以验证文件的SHA384并确保其未被篡改。

如果通过开发人员网站上的安装代码安装了Composer,则为了将该文件放入WSL的全局路径中,请使用bash命令将composer.phar文件移动到/user/bin/local文件夹中:

sudo mv composer.phar /user/bin/local/composer

如果使用第一个命令安装了Composer,则无需执行此最后一步。

要检查软件是否已正确安装,请在集成终端上键入composer。您应该查看作曲家调用选项和可用命令的列表。

请记住,要使用Composer,您需要在WSL终端中键入命令。