查看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
composer install
和 composer update
的区别:
https://blog.csdn.net/sanbingyutuoniao123/article/details/52025565
深度好文:Composer入门 https://www.cnblogs.com/XACOOL/p/5627444.html
关于第二种方案,我自己也没来得及试试,只是查了一些资料,感觉可能会可以。大家可以尝试下试试,一起进步!
end