编译安装
最后更新于:2022-04-02 06:15:47
# 编译安装
[TOC]
`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`)
## 下载地址
* [https://github.com/swoole/swoole-src/releases](https://github.com/swoole/swoole-src/releases)
* [http://pecl.php.net/package/swoole](http://pecl.php.net/package/swoole)
* [http://git.oschina.net/swoole/swoole](http://git.oschina.net/swoole/swoole)
下载源代码包后,在终端进入源码目录,执行下面的命令进行编译和安装
## 新手编译示例
~~~
cd swoole
phpize (ubuntu 没有安装phpize可执行命令:sudo apt-get install php-dev来安装phpize)
./configure
make
sudo make install
~~~
## 进阶完整编译示例
> 初次接触swoole的开发者请先尝试上方的简单编译,如果有进一步的需要,可以根据具体的需求和版本,调整以下示例的编译参数
[编译参数参考](编译参数.md)
以下脚本会下载并编译`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`的绝对路径。
';