一、前言
查看laravel文档的时候,看到Laravel Passport
实现 API 认证这个是真不错,但是本地实际安装的时候,一直安装不上,报错信息如标题所述,这就很烦人了,下面记录一下解决过程已经解决方案。
二、解决过程
在安装Passport
的第一步就开始报错;
composer require laravel/passport
关于Passport
:http://laravelacademy.org/post/8298.html
1、composer版本不够?
怀疑是自己本地composer版本的问题,决定更新一下:
composer self-update
将 Composer
自身升级到最新版本,只需要运行 self-update
命令。它将替换你的 composer.phar
文件到最新版本。更新之后尝试安装失败。
2、难道是下载的版本太高?
composer require laravel/passport (安装最新版本)
composer require laravel/passport ~4.0(安装4.0版本)
用低版本试试,一如既往的报错。
3、难道是没有稳定版本,必须要兼容开发版本?
在composer.json文件的最下面新增:
"minimum-stability": "dev"
这部分大家可以参考链接:https://www.cnblogs.com/XACOOL/p/5627444.html
就算兼容开发版本还是不行。
4、难道是我用的composer源不对,文件被墙了?
由于下载安装完成composer
后 默认是国外镜像,国外的网站连接速度很慢,并且随时可能被“墙”甚至“不存在”。所以建议使用国内的composer
源
参考链接;https://pkg.phpcomposer.com/
换成国内的源还是不行。
三、解决方案
在composer.json
上面下功夫没用,那么会不会是composer.lock
的原因呢?
1、关于composer.lock
使用composer
安装php组件时候你会发现创建了一个composer.lock
文件,这是做什么的呢?
composer.lock是记录当前所有安装的php组件的版本,如果多人协作开发需保持下载的php组件的版本一样减少不必要的麻烦,那么需要把composer.lock
加入版本控制当中,比如使用git或者svn那么你就需要把它加入把版本控制当中。反之则不用。
需要注意的是,当composer install
进行组件依赖时不会进行更新composer.lock
文件除非引入了新的组件到composer.json
中,如果想更新请使用composer update会把组件更新到最新稳定版本同时会更新最composer.lock
文件。
2、删除composer.lock
试试
1、把需要引入的包写入composer.json中
(写入的话,就不需要composer require了,直接composer update 即可。)
2、删除composer.lock
3、composer clearcache 清除缓存
4、composer update 更新依赖(重新生成composer.lock)
按照上面的方案执行一遍,发现已经成功安装了Passport
,看来十有八九就是composer.lock
文件没更新的问题了。这里也可能是我的问题,我没有直接在composer.json
中直接修改,然后用composer update
试试,实在是失误。
四、第二种解决方案(我自己没试)
1、如果手动更新了composer.json文件,需要autoload:
composer dump-autoload
此处参考链接:https://segmentfault.com/q/1010000006974110
composer autoload
的文档地址:https://docs.phpcomposer.com/03-cli.html#dump-autoload
2、执行composer update命令更新依赖
composer install
和 composer update
的区别:
https://blog.csdn.net/sanbingyutuoniao123/article/details/52025565
深度好文:Composer入门 https://www.cnblogs.com/XACOOL/p/5627444.html
关于第二种方案,我自己也没来得及试试,只是查了一些资料,感觉可能会可以。大家可以尝试下试试,一起进步!
end