首页 > 技术分享 > 原生PHP
收藏

Windows系统Composer的使用问题,phpstudy中Composer使用方法

06/22 10:45
大潇博客 原创文章,转载请标明出处

使用phpstudy做为本地开发环境,它本身自带了composer,却不能全局使用,打开cmd输入“composer”,提示“'composer' 不是内部或外部命令,也不是可运行的程序或批处理文件。”


对此百度提供的各种解决方法,是在系统的PATH中添加composer等等,这种方法百试不灵验,还麻烦的很。提出解决这个问题的人,只是简述了怎样添加PATH系统变量,没有从根本上去解决这个问题,然后一传十,十传百,百度搜到的文章被这种方法霸屏了。


下面阐述下详细的解决办法,首先要保证PHP已经是系统环境变量,在cmd中输入“php -v”,若能出现当前版本信息,证明PHP已经是系统环境变量,若提示其它,接着操作下一步。


在phpstudy中选择“系统服务”,或者按照网上提供的方法, 把当前运行的php版本中的“php.exe”路径,添加到系统环境变量中,然后把composer.phar(有其它文件要一起)复制到当前的php目录中,打开cmd,输入“composer”按回车

image.png

出现这个,表示composer可以使用了。


下一个问题,输入composer的相关命令后,出现“Search for a package:”后便没了下文,大概率是因为composer对参数的识别问题,打开composer.bat文件,把最后的“%1”改成“%*”

phpStudy\tools 里面的 composer.bat ,其中最后一个参数是 %1 ,其实是有问题的,这样会导致只能接受到一个参数,也就是当你输入 : composer require topthink/think-migration 只能接受到 require 而接受不到 topthink/think-migration , 所以才会出现 Search for a package: 。将 %1 改成 %* 就可以接受所有的参数。

image.png

文件如图,若没有composer.bat,请按照上面图片内容自行创建,注意自己使用php的路径和版本。


composer镜像问题

简单理解和怎样使用composer,请参照composer中国镜像网站:https://pkg.phpcomposer.com/


设置使用中文镜像,可以手动将composer.json中的url改成"url": "https://packagist.phpcomposer.com",也可以通过下面的命令修改

a). 配置只在当前项目生效

composer config repo.packagist composer  https://packagist.phpcomposer.com

# 取消当前项目配置

composer config --unset repos.packagist


b). 配置全局生效

composer config -g repo.packagist composer  https://packagist.phpcomposer.com

# 取消全局配置

composer config -g --unset repos.packagist


修改后你以为问题就都解决了吗,不,很有可能只是问题的开始,因为composer中文镜像网站也不见得好用,很有可能同样在某一步卡主没有下文(大概会在这一步:

composer Updating dependencies (including require-dev)),替代方案,使用阿里云的composer镜像

a). 配置只在当前项目生效

composer config repo.packagist composer https://mirrors.aliyun.com/composer/

# 取消当前项目配置

composer config --unset repos.packagist


b). 配置全局生效

composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/

# 取消全局配置

composer config -g --unset repos.packagist


然后,composer操作起来可能会非常快了

阿里云composer镜像网站:https://developer.aliyun.com/composer


问题到此解决。


打赏

阅读排行

大家都在搜

博客维护不易,感谢你的肯定
扫码打赏,建议金额1-10元
  • 15601023311