戏里戏外

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