2024-11-07
PHP
php8.2、swoole5.1
321

一、安装扩展

1.安装依赖
cd /usr/local/download

wget https://curl.se/download/curl-7.87.0.tar.gz
tar -zxvf curl-7.87.0.tar.gz
cd curl-7.87.0

# 先移除旧版本,避免报错:undefined reference to `curl_pushheader_bynum'
yum remove curl-devel

./configure --with-ssl
make clean
make && make install

# 更新配置文件(本地虚拟机环境)
source /etc/profile

curl --version # 查看版本

二、安装swoole5.1

1.下载安装 swoole
建议安装 swoole 5.1.2 版本,因为 swoole 5.1.3 版本及以上需要安装 libbrotli 扩展
cd /usr/local/download

wget https://pecl.php.net/get/swoole-5.1.2.tgz
tar -zxvf swoole-5.1.2.tgz
cd swoole-5.1.2

/usr/local/software/php8.2/bin/phpize
./configure --enable-openssl --enable-swoole-curl --with-php-config=/usr/local/software/php8.2/bin/php-config
make clean
make && make install

# 安装后目录
/usr/local/software/php8.2/lib/php/extensions/no-debug-non-zts-20220829/

# php.ini 文件中加入
vim /usr/local/software/php8.2/etc/php.ini

extension=swoole.so
swoole.use_shortname = off

# 检查是否安装成功
php82 --ri swoole

# 解决报错:Object of class Swoole\Curl\Handler could not be converted to int
php82 --ri swoole | grep curl
curl-native => enabled
2.下载安装 swoole tracker(可选)
swoole 官网:https://business.swoole.com/SwooleTracker/download/
cd /usr/local/software/php8.2/lib/php/extensions/no-debug-non-zts-20210902/

wget https://business.swoole.com/static/tracker/20221019/swoole_tracker82.so
chmod 755 swoole_tracker82.so

mkdir -p /opt/swoole/var/run/tracker/ # 创建运行文件地址

# php.ini 文件中加入
vim /usr/local/software/php8.2/etc/php.ini

zend_extension=/usr/local/software/php8.2/lib/php/extensions/no-debug-non-zts-20210902/swoole_tracker82.so
;打开总开关,tracker.enable_malloc_hook=1 时需关闭
tracker.enable=0
;采样率 例如:100%
tracker.sampling_rate=100
;开启内存泄漏检测时添加,默认 0 关闭状态
tracker.enable_memcheck=1
;Leak 检测开关,tracker.enable_malloc_hook=1 之后其他的功能均不可用,只能进行内存泄漏检测
tracker.enable_malloc_hook=1

php82 --ri swoole_tracker # 检测是否开启

# php-cli 打印日志
vim /tmp/trackerleak # tracker 日志
php82 -r "trackerAnalyzeLeak();" # 查看日志
php82 -r "trackerCleanLeak();" # 清除日志