戏里戏外

Rocky Linux 安装 PHP 扩展 Swoole

2024-11-14#PHP#CentOS

Swoole 是一个为PHP提供高性能网络通信能力的扩展。它具有以下特点:

  • 提供异步、并行、协程等高级特性
  • 支持TCP/UDP/HTTP/WebSocket等多种协议
  • 可用于开发高性能的Web应用、即时通讯、游戏服务器等
  • 显著提升PHP应用程序的并发处理能力

前提条件

  • Rocky Linux 8 或更高版本
  • PHP 7.2 或更高版本
  • root 权限或 sudo 权限
  • 已安装 gcc 编译环境

环境准备

Swoole 提供了多种安装方式,可以根据实际需求选择最适合的方式:

  • 使用 dnf 安装:最简单快捷的方式,适合快速部署
  • 使用 PECL 安装:可以方便地管理 PHP 扩展
  • 源码编译安装:提供最大的灵活性,可以自定义编译参数

1. 安装编译工具

# 安装开发工具包
sudo dnf groupinstall "Development Tools" -y

sudo dnf install -y php84-php-pear php84-php-devel brotli-devel # 安装必要的依赖

2. 检查PHP环境

/opt/remi/php84/root/bin/php -v # 检查 PHP 版本

/opt/remi/php84/root/bin/php -i | grep php.ini # 检查 PHP 配置信息

/opt/remi/php84/root/bin/php -m | grep swoole # 检查是否已安装 swoole 扩展

安装 Swoole

1. 使用 dnf 安装

sudo dnf install -y php84-php-pecl-swoole5 # 安装 Swoole

2. 使用 PECL 安装

/opt/remi/php84/root/bin/pecl install swoole # 安装 Swoole

sudo echo "extension=swoole.so" > /etc/opt/remi/php84/php.d/40-swoole.ini # 添加 40-swoole.ini 配置文件

3. 源码编译安装

# 下载Swoole源码
wget https://github.com/swoole/swoole-src/archive/v5.1.5.tar.gz
tar xzf v5.1.5.tar.gz && cd swoole-src-5.1.5/

/opt/remi/php84/root/bin/phpize # 生成 configure 文件

# 配置编译选项
./configure --enable-openssl --enable-sockets --enable-mysqlnd  --with-php-config=/opt/remi/php84/root/bin/php-config

make && sudo make install # 编译安装

sudo echo "extension=swoole.so" > /etc/opt/remi/php84/php.d/40-swoole.ini # 添加 40-swoole.ini 配置文件

验证安装

1. 检查 Swoole 是否安装成功

# 检查 Swoole 扩展
/opt/remi/php84/root/bin/php -m | grep swoole

# 查看 Swoole 扩展信息
/opt/remi/php84/root/bin/php --ri swoole

2. 测试 Swoole 功能

创建测试文件 server.php:

<?php
$server = new Swoole\HTTP\Server("127.0.0.1", 9501);

$server->on("start", function ($server) {
    echo "Swoole http server is started at http://127.0.0.1:9501\n";
});

$server->on("request", function ($request, $response) {
    $response->header("Content-Type", "text/plain");
    $response->end("Hello World\n");
});

$server->start();

运行测试服务器:

/opt/remi/php84/root/bin/php server.php

Swoole 配置优化

为了获得最佳性能,需要对 Swoole 进行合理的配置。

以下配置参数可以根据服务器硬件资源和实际业务需求进行调整:

编辑 /etc/opt/remi/php84/php.d/40-swoole.ini:

[swoole]
swoole.use_shortname = On
swoole.display_errors = On
swoole.unixsock_buffer_size = 8M

# 进程配置
swoole.worker_num = 4
swoole.max_request = 10000
swoole.task_worker_num = 4

# 日志配置
swoole.log_level = 0
swoole.log_file = /var/log/swoole.log