一、前言
laravel-swoole基于Swoole的高性能HTTP服务器。加快Laravel 和 Lumen 应用。
二、解决过程
在安装laravel-swoole的第一步就开始报错;
composer require swooletw/laravel-swoole
1、composer版本不够?这个可能性比较小,但是试一下没坏处
怀疑是自己本地composer版本的问题,决定更新一下:
composer self-update
将 Composer 自身升级到最新版本,只需要运行 self-update 命令。它将替换你的 composer.phar 文件到最新版本。更新之后尝试依然安装失败。
2、难道是下载的版本太高?自己的php版本不够?laravel版本不够?Swoole不够?NO NO NO
既然最新版的安装失败
composer require swooletw/laravel-swoole (安装最新版本)
那就指定版本下载
composer require swooletw/laravel-swoole 2.6.6(安装2.6.6版本)
用低版本试试,一如既往的报错。
3、难道是没有稳定版本,必须要兼容开发版本?
这点可以排除掉的,laravel-swoole还是比较稳定的
4、难道是我用的composer源不对,文件被墙了?
由于下载安装完成composer 后 默认是国外镜像,国外的网站连接速度很慢,并且随时可能被“墙”甚至“不存在”。所以建议使用国内的composer源(阿里源)
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
换成国内的源后,安装还是不行。
三、解决方案
在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)
按照上面的方案执行一遍,发现已经成功安装了laravel-swoole,看来就是composer.lock文件没更新的问题了