解决Laravel修改phpredis导致travis-ci失败的问题

/ 0评 / 0

Laravel默认使用的是predis这个库来操作Redis的,想把它改成PHP扩展的phpredis,在config/database.php中将client值从predis改成phpredis即可。

'redis' => [
        'client' => 'phpredis',
]

本地测试一切正常,但是在推送的githubtravis-ci却失败了,失败是在composer install后触发dump-autoload是报了一个

Call to undefined method Illuminate\Support\Facades\Redis::connect()

原因是travis-ci环境没有安装phpredis这个扩展。
解决也很简单,修改.travis.yml文件,在install阶段通过pecl来安装phpredis即可。需要注意的是pecl安装phpredis时有两个参数是通过交互界面输入的,我们需要通过管道来输入两个回车让CI继续下去。

install:
  - print "\n\n" | pecl install redis
  - composer install

至此,CI就可以成功的继续下去了。

对于travis-ci失败,我们可以通过travis-ci提供的debug模式调试。
jobs详情界面,在右侧Restart job下方有一个Debug job的按钮,点击后开启debug任务,在下方Job log中会输出一个可以ssh连接的地址

Preparing debug sessions.
Use the following SSH command to access the interactive debugging environment:
ssh xxxx@xxxx
This build is running in quiet mode. No session output will be displayed.

通过ssh连接到虚拟机进行调试,解决完问题后,将相关命令补充到.travis.yml

发表评论

电子邮件地址不会被公开。 必填项已用*标注