homestead(多PHP版本)安装swoole

看了网上的各种教程,编译安装还是Perl安装,不管哪种办法,都是各种报错。。。
我的环境是homestead,各种琢磨,总结一下,mmp

我的homestead下有n多个php版本

vagrant@homestead:/etc/alternatives$ ls /usr/bin/php
php            php7.0         php7.2         php-config5.6  php-config7.1  phpize         phpize7.0      phpize7.2      
php5.6         php7.1         php-config     php-config7.0  php-config7.2  phpize5.6      phpize7.1      

是的,有这么多,我自己都怕
看一下当前版本,php -v

PHP 7.1.10-1+ubuntu16.04.1+deb.sury.org+1 (cli) (built: Sep 29 2017 17:04:25) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies
    with Zend OPcache v7.1.10-1+ubuntu16.04.1+deb.sury.org+1, Copyright (c) 1999-2017, by Zend Technologies
    with blackfire v1.18.0~linux-x64-non_zts71, https://blackfire.io, by SensioLabs

当前是7.1的,开始安装swoole,直接用Perl 安装,去他妈的编译安装

$ sudo pecl channel-update pecl.php.net
$ sudo pecl install swoole

安装的时候会问你yes/no之类的选项,我全部enter下去,经过漫长的等待。。。

Build process completed successfully
Installing '/usr/include/php/20170718/ext/swoole/config.h'
Installing '/usr/lib/php/20170718/swoole.so'
install ok: channel://pecl.php.net/swoole-4.2.1
configuration option "php_ini" is not set to php.ini location
You should add "extension=swoole.so" to php.ini

看到有success我就放心了,上面提示了,你应该添加 extension=swoole.so 到php.ini文件,php.ini文件在哪呢,用这条命令就可以了php -i|grep php.ini

vagrant@homestead:~$ php -i|grep php.ini
Configuration File (php.ini) Path => /etc/php/7.1/cli
Loaded Configuration File => /etc/php/7.1/cli/php.ini

vim编辑一下 /etc/php/7.1/cli/php.ini,差不多在这个位置

;extension=xsl
extension=swoole.so  //  加到这里哦亲 

;;;;;;;;;;;;;;;;;;;
; Module Settings ;
;;;;;;;;;;;;;;;;;;;

然后,重启一下php,fpm有php7.1-fpm php7.2-fpm还有其他等等,要哪个呢,php -v看下版本,就用对应的版本就可以了,我当前是7.1,就用php7.1-fpm,好了,跑起来

sudo service php7.1-fpm reload

然后,看一下效果,php -m看看有没有

php -m |grep swoole

没有就算了,还多了个报错。。。

PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/20160303/swoole.so' - /usr/lib/php/20160303/swoole.so: cannot open shared object file: No such file or directory in Unknown on line 0

实在是很气,提示找不到文件,看一下这个扩展extension的路径好像有点不对,回到刚才swoole安装完打印的消息

Installing '/usr/include/php/20170718/ext/swoole/config.h'
Installing '/usr/lib/php/20170718/swoole.so'

20160303跟20170718,这特么明显对不上啊,swoole怎么会安装到哪里去了咧,看一下php extension目录,执行php-config或者直接php-config --extension-dir

vagrant@homestead:~$ php-config --extension-dir
/usr/lib/php/20170718

那20160303是怎么来的呢,奇了个怪,再看php -i|grep extension

vagrant@homestead:~$ php -i| grep extension
extension_dir => /usr/lib/php/20160303 => /usr/lib/php/20160303
mbstring extension makes use of "streamable kanji code filter and converter", which is distributed under the GNU Lesser General Public License version 2.1.
extension Version => 2.0.2
sqlite3.extension_dir => no value => no value

原来如此,怎么这两个extension目录不一样呢,看一下/usr/lib/php/目录有哪些

vagrant@homestead:~$ ls /usr/lib/php/
20131226  20160303  5.6  7.1  php5.6-fpm-reopenlogs  php7.1-fpm-reopenlogs  php-helper              sessionclean
20151012  20170718  7.0  7.2  php7.0-fpm-reopenlogs  php7.2-fpm-reopenlogs  php-maintscript-helper

我猜7.1是对应20160303,7.2是对应20170718的,那想办法把7.1换成7.2试一下,切换php版本,参考了这位网友的回答
请教一下 vagrant laravel Homestead 怎么切换 PHP 版本呀?

cd /etc/alternatives
sudo mv php php.bak
sudo ln -s /usr/bin/php7.2 php

然后再看一眼版本,php -v

vagrant@homestead:~$ php -v
PHP 7.2.0RC3 (cli) (built: Sep 28 2017 16:28:14) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.2.0-dev, Copyright (c) 1998-2017 Zend Technologies
    with Zend OPcache v7.2.0RC3, Copyright (c) 1999-2017, by Zend Technologies
    with blackfire v1.18.0~linux-x64-non_zts72, https://blackfire.io, by SensioLabs

顺利改过来了,并不简单,再执行

// 重启一下
sudo service php7.2-fpm reload
php -m |grep swoole

还是上面的报错。。。。这里还少了一步,再看一眼php -i|grep php.ini

vagrant@homestead:~$ php -i |grep php.ini
Configuration File (php.ini) Path => /etc/php/7.2/cli
Loaded Configuration File => /etc/php/7.2/cli/php.ini

此时的ini已经不是彼时的ini,刚才是7.1目录下的,现在切换版本变成了7.2目录下的,vim编辑 /etc/php/7.2/cli/php.ini 把刚才的extension=swoole.so再加上去,加完了别忘了重启

sudo service php7.2-fpm reload

重启完了,再 php -m |grep swoole 这下子终于出来了

vagrant@homestead:~$ php -m |grep swoole
swoole

一把辛酸泪,折腾了大半天终于整出来了

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 157,298评论 4 360
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,701评论 1 290
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 107,078评论 0 237
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,687评论 0 202
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,018评论 3 286
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,410评论 1 211
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,729评论 2 310
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,412评论 0 194
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,124评论 1 239
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,379评论 2 242
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,903评论 1 257
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,268评论 2 251
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,894评论 3 233
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,014评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,770评论 0 192
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,435评论 2 269
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,312评论 2 260

推荐阅读更多精彩内容

  • (centos7+nginx1.9+mysql5.6+php7) 1.准备工作: 1)把所有的软件安装在/data...
    Tshare_XUN阅读 554评论 0 0
  • 安装Homestead vagrant boxHomestead是一个由Laravel官方维护的Vagrant "...
    娶个昵称不太帅阅读 1,175评论 0 2
  • 傍晚模糊的街 很多噪点 镜框隔着的世界 你全都看见 略加羞涩的脸 出卖了童年 鼠标一直躺着抽烟 顺着线 回忆弥漫的...
    杨戏水阅读 270评论 1 3
  • 夕阳柔,晚霞柔, 柔软如绵映海楼, 龙栖月上头。 念悠悠,思悠悠, 碧海蓝天情意悠, 笑声鱼满舟。
    吴墨海2014阅读 242评论 0 6
  • Html和CSS的关系 HTML是网页内容的载体。内容就是网页制作者放在页面上想要让用户浏览的信息,可以包含文字、...
    三秒嗨阅读 4,524评论 0 6