编译安装
Swoole
扩展是按照PHP
标准扩展构建的。使用phpize
来生成编译检测脚本,./configure
来做编译配置检测,make
进行编译,make install
进行安装。
- 请下载
releases
版本的swoole
,直接从github
主干上拉取最新代码可能会编译不过 - 如无特殊需求, 请务必编译安装
swoole
的最新版本 - 如果当前用户不是
root
,可能没有PHP
安装目录的写权限,安装时需要sudo
或者su
- 如果是在
git
分支上直接git pull
更新代码,重新编译前务必要执行make clean
安装准备
安装前必须保证系统已经安装了下列软件
php-7.0
或更高版本gcc-4.8
或更高版本make
autoconf
pcre
(CentOS
系统可以执行命令:yum install pcre-devel
)
检查命令
php -v 查看php版本
gcc -v 查看gcc版本
rpm -qa make 检查是否安装make。
rpm -qa autoconf 检查是否安装autoconf。
rpm -qa pcre 检查是否安装pcre。
下载地址
- https://github.com/swoole/swoole-src/releases
- http://pecl.php.net/package/swoole
- http://git.oschina.net/swoole/swoole
下载源代码包后,在终端进入源码目录,执行下面的命令进行编译和安装
(1)建立一个目录放swoole的安装文件
mkdir /opt
cd /opt
(2)打开swoole的github地址:https://github.com/swoole/swoole-src/releases
(3)找到需要的版本,例如4.3.4,下载:
wget -c https://github.com/swoole/swoole-src/archive/v4.3.4.tar.gz
(4)解压:
tar -xzvf v4.3.4.tar.gz
新手编译示例
cd swoole-src-4.3.4
phpize (ubuntu 没有安装phpize可执行命令:sudo apt-get install php-dev来安装phpize)
那么现在我们就可以执行编译了,同样 我们可以使用 configure --help 查看可以配置信息
#我们编译需要指定一个php-config的文件
./configure --with-php-config=/usr/local/php/bin/php-config
make sudo make install
进阶完整编译示例
初次接触swoole的开发者请先尝试上方的简单编译,如果有进一步的需要,可以根据具体的需求和版本,调整以下示例的编译参数
以下脚本会下载并编译master
分支的源码, 需保证你已安装所有依赖, 否则会遇到各种依赖错误
mkdir -p ~/build &&
cd ~/build &&
rm -rf ./swoole-src &&
curl -o ./tmp/swoole.tar.gz https://github.com/swoole/swoole-src/archive/master.tar.gz -L &&
tar zxvf ./tmp/swoole.tar.gz &&
mv swoole-src* swoole-src &&
cd swoole-src &&
phpize &&
./configure
--enable-coroutine
--enable-openssl
--enable-http2
--enable-async-redis
--enable-sockets
--enable-mysqlnd &&
make clean && make && sudo make install
PECL
注意: PECL发布时间晚于Github发布时间
Swoole
项目已收录到PHP
官方扩展库,除了手工下载编译外,还可以通过PHP
官方提供的pecl
命令,一键下载安装
pecl install swoole
配置php.ini
编译安装成功后,修改php.ini
加入
extension=swoole.so
通过php -m
或phpinfo()
来查看是否成功加载了swoole.so
,如果没有可能是php.ini
的路径不对,可以使用php --ini
来定位到php.ini
的绝对路径。
验证是否安装成功
php --ri swoole
查看版本:
php --ri swoole | grep Version
那么这里我们就要用到swoole安装包里的demo
#这里是swoole安装包的位置里面的examples文件夹下的server文件夹
cd /opt/swoole-src-4.3.4/examples/server
这是一个php使用swoole的一个demo
我们现在试着运行下这个demo
php echo.php
我们发现我们使用的php命令进入了持续执行的状态,如下图.说明我们的swoole服务启动了
那么我看看9051端口的状态便知道是否在运行了
lsof -i:9501
关闭后9501端口未被占用,进一步证明了我们的swoole服务是安装好了