跳转到主内容
新派编程网 - 新潮编程理念,全新技术课堂!

如何安装PHP8.0的Swoole扩展_编译安装PHP8.0Swoole【高性能】

应优先通过宝塔软件商店安装Swoole扩展;若商店无对应版本,再手动编译,且需严格匹配PHP路径、配置php.ini双文件、启用--enable-openssl和--enable-http2参数,并验证swoole.so实际存在。 宝塔面板下 PHP 8.0 安装 Swoole 扩展,**能用软件商店就别手动编译**;只有商店没选项、或你明确需要 swoole -5.1.5 这类新版,才必须走源码编译——否则极易因路径错、参数漏、配置漏导致
php --ri swoole
报错找不到模块。 怎么判断该不该编译?先查软件商店有没有对应项 别一上来就开终端。先登录宝塔面板 →「软件商店」→ 找到你正在用的 PHP 版本(比如
PHP 80
)→ 点「设置」→ 切换到「安装扩展」标签页 → 搜索
swoole
。 如果列表里有
Swoole4
或
Swoole5
,直接点安装,然后点「重启 PHP」(不是重载) 如果搜不到,说明当前面板版本未上架该 PHP 子版本的预编译包,必须编译 执行
/www/server/php/80/bin/php -v
确认路径数字是
80
,别误操作到
74
或
81
源码编译时 php ize 和 php-config 路径必须严格匹配 路径写错一个字符,
make install
就会把
swoole.so
装进错误目录,后续加
extension=swoole.so
也白搭。 第一步永远是:
/www/server/php/80/bin/phpize
(数字
80
必须和你实际 PHP 版本一致)
./configure
时,
--with-php-config
参数值必须是完整路径:
/www/server/php/80/bin/php-config
,不能简写成
php-config-8.0
,也不能漏掉
/bin/
编译成功后,终端会输出类似:
Installing shared extensions: /www/server/php/80/lib/php/extensions/no-debug-non-zts-20200930/
——这个路径要记下来,后面配
extension
时要用 为什么 php --ri swoole 报错“not found”?两个 php.ini 都得改
php --ri swoole
失败,90% 是因为只改了 FPM 的配置,忘了 CLI 的配置,或者反过来。宝塔中它们是两套独立配置: PHP 8.5.5 PHP 8.5.5 是 PHP 8.5 分支的维护更新版本。该版本延续了“小步快跑”的迭代逻辑,通过深度错误修复、底层性能微调以及安全加固,旨在为开发者提供一个更健壮、更高效的运行环境。该版本严格遵守语义化版本规范,不包含破坏性变更。 下载 立即学习 “ PHP免费学习笔记(深入) ”; FPM 加载的是:
/www/server/php/80/etc/php.ini
CLI 加载的是:
/www/server/php/80/bin/php.ini
两个文件末尾都必须添加:
extension=swoole.so
加完后必须「重启 PHP」服务(宝塔面板点「重启」,不是「重载」);CLI 不需重启,但可用
/www/server/php/80/bin/php --ri swoole
单独验证 configure 必须加 --enable-openssl 和 --enable-http2 不加这两个参数,
Swoole\Http\Server
、WebSocket over HTTPS、gRPC 等关键功能会直接失效,运行时报
Call to undefined function swoole_http_server()
或连接被拒绝。 正确命令示例:
./configure --with-php-config=/www/server/php/80/bin/php-config --enable-openssl --enable-http2
CentOS/RHEL 系统提前装:
openssl-devel
;Ubuntu/Debian 装:
libssl-dev
,否则
--enable-openssl
会被 configure 静默跳过 如果启用了 opcache,重启前建议清空它,避免旧缓存干扰新扩展加载 最易忽略的一点:编译生成的
swoole.so
文件名没错,路径也对,两个
php.ini
都加了
extension
,但
php --ri swoole
仍报错——这时请立刻检查
/www/server/php/80/lib/php/extensions/
下那个时间戳子目录里,是否真有
swoole.so
文件。有时候
make install
权限不足,文件根本没写进去。

相关文章