编译参数
最后更新于:2022-04-02 06:15:49
# 编译参数
[TOC]
## ⚠️新手警告: 不在此列表中的编译参数, 任何情况都请不要使用
这里是`./configure`编译配置的额外参数,用于开启某些特性
> `1.8.7`或更高版本不再需要设置`--enable-async-mysql`和`--enable-async-httpclient`,`async_mysql`和`async_httpclient`改为内置`4.0.1`或更高版本后不再需要设置`--enable-coroutine`
* * *
## ☺ 通用参数
## \--enable-sockets
增加对`sockets`资源的支持。开启此参数,`swoole_event_add`就可以添加`sockets`扩展创建的连接到`swoole`的事件循环中。另外`Server`和`Client`的`getSocket()`方法也需要依赖此编译参数。
> 依赖`sockets`扩展
## \--enable-openssl
启用`SSL`支持
> 使用操作系统提供的`libssl.so`动态连接库
## \--with-openssl-dir
启用`SSL`支持 并 指定`openssl`库的路径, 需跟上路径参数:`--with-openssl-dir=/opt/openssl/`
## \--enable-http2
增加对HTTP2的支持
> 依赖`nghttp2`库
## \--with-nghttp2-dir
增加对HTTP2的支持 并 指定`nghttp2`库的路径, 需跟上路径参数:`--with-nghttp2-dir=/opt/nghttp2/`
> 需要`4.2.0`及以上版本
## \--enable-async-redis
增加异步Redis客户端支持
> 依赖`hiredis`库
>
> 4.2.x版本可能会显示`redis-client`而没有`async`字样, 实际上是一样的
>
> 4.2.6版本及以后不再需要手动安装和启用, 而是swoole自带
## \--with-hiredis-dir
增加异步Redis客户端支持 并 指定`hiredis`库的路径, 需跟上路径参数:`--with-hiredis-dir=/opt/hiredis/`
> 需要`4.2.0`及以上版本, 4.2.6版本及以后不再需要手动安装和启用hiredis, 而是swoole自带
## \--enable-mysqlnd
启用`mysqlnd`支持,启用`swoole_mysql::escapse`方法。启用此参数后,`PHP`必须有`mysqlnd`模块,否则会导致`swoole`无法运行。
> 依赖`mysqlnd`模块
## \--enable-coroutine-postgresql
启用协程Postgresql客户端
> 依赖libpq库
## \--with-libpq-dir
指定`libpq`库的路径.`--with-libpq-dir=/etc/postgresql`
## ☻ 已废弃的编译参数
## \--enable-coroutine
> 4.0.1版本后移除了此编译选项, 默认强制打开, 可使用$server->set动态开关
>
> enable\_coroutine动态配置请见[文档](enable\_coroutine.md)
启用协程
## Debug参数
## \--enable-debug-log(>=4.2.0)
打开内核DEBUG日志。**生产环境不可以启用**
## \--enable-trace-log
打开追踪日志,开启此选项后swoole将打印各类细节的调试日志, 仅内核开发时使用
## ☠️以下试验性质选项轻易绝不要开启
## \--enable-ringbuffer
开启`RingBuffer`内存池
> 此设置为试验性质,主要用于提升性能,生产环境请不要开启
## \--enable-timewheel
启用时间轮算法,优化心跳检测性能
> 此设置为试验性质
## ☠️以下选项需要在你知道它是如何工作的时候方可添加
## \--enable-asan
详情: https://wiki.swoole.com/wiki/page/939.html
使用 asan 内存检测
## 以下选项是编译PHP而不是Swoole时使用的
## \--enable-swoole
使用swoole扩展
## \--enable-swoole-static
将Swoole静态编译内嵌到PHP
';