初学swoole的时候,对于安装上出现的一些小小的问题总结了一下,在此分享。
环境依赖:
swoole-1.x 需要 php-5.3.10 或更高版本,swoole-2.x 需要 php-7.0.0或更高版本。
安装:(下面是我进行的安装步骤)
[root@dev ~]# cd /usr/local/src
下载
[root@dev src]# wget http://pecl.php.net/get/swoole-1.9.3.tgz
解压
[root@dev src]# tar -zxvf swoole-1.9.3.tgz
查找一下phpize的位置,find / -name phpize
[root@dev src]# cd swoole-1.9.3[root@dev swoole-1.9.3]# /usr/local/php/bin/phpize
swoole文档上没带参数
[root@dev swoole-1.9.3]# ./configure
[root@dev swoole-1.9.3]# make && make install
然后在php.ini里配置,用phpinfo找一下php.ini的位置
[root@dev swoole-1.9.3]# vim /etc/php.ini
extension=swoole.so
完成之后重启,service php-fpm restart , 然后报如下错误:
swoole: Unable to initialize module Module compiled with module API=20090626
PHP compiled with module API=20121212 These options need to match in Unknown on line 0
每次编译完swoole.so都会出现在/usr/lib/php/modules/这个目录,并且会覆盖原有的
修改 extension=/usr/lib/php/modules/swoole.so,错误仍是这样。
第二次重新安装:
其他步骤不变,修改 ./configure
./configure --with-php-config=/usr/local/php-5.6.27/bin/php-config
以上指令中,用 php -v 查一下服务器中php的版本,我的是php-5.6.27
然后make && make install 分开执行,先执行 make ,再执行 make install ,
make install 之后提示了这个路径 /usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/
修改extension=swoole.so
extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/swoole.so
service php-fpm restart,没有报错
php -m , swoole有了。
phpinfo查看,swoole扩展也有了。
注:此外我第一次安装时,php是5.6.27版本,swoole是1.9.3版本,虽然swoole看似安装成功了,但实际上 并没有真正成功。
原因可能是swoole版本高了点,或许是其他依赖环境的问题。后面降低版本,php是5.4.45版本,swoole是1.7.6版本。所以如果有其他朋友遇到安装上不明白的问题,先多问问别人,实在不行更换版本也是不错的选择。