宝塔PHP8.0下make编译Swoole超3分钟属异常,主因是未启用并行编译(应加-j$(nproc))、源码包过大、缺openssl-devel等依赖或磁盘I/O慢;优先检查软件商店是否已有预编译包,避免无效编译。

make 耗时超过 3 分钟,在大多数宝塔 PHP 8.0 环境下不正常,说明编译过程存在明显瓶颈或配置问题。
make 编译慢的常见原因和应对方式
-
CPU 核心数未充分利用
make默认单线程编译,而现代服务器普遍是多核。加-j$(nproc)可并行加速:
Swoole 6.1.1下载Swoole 6.1.1 是一个专为 PHP 设计的高性能事件驱动并发网络引擎。作为稳定版,它修复了编译时对 zlib 依赖的缺失及 curl 模块的内存安全风险。该版本支持协程、多线程与多进程架构,内置 TCP/HTTP/WebSocket 服务器,能够显著提升 PHP 在微服务、实时通信等场景下的执行效率与并发能力。
make -j$(nproc) && make install
不加这个参数,4 核机器可能要花 5–8 分钟;加了通常压到 1–2 分钟内。
源码包版本过大或含调试符号
比如下载的是swoole-5.1.5.tgz(含大量测试/文档/旧分支代码),比swoole-4.8.11.tgz多出近一倍体积。编译器要解析更多文件,耗时自然上升。
建议优先用 PECL 官方稳定版(如 4.8.x 或 5.0.x LTS),避免直接克隆master分支。-
系统缺少基础优化依赖
缺少libssl-dev(Debian/Ubuntu)或openssl-devel(CentOS/RHEL)时,./configure会静默跳过--enable-openssl,但后续编译中某些条件分支仍会触发冗余检查,拖慢整体流程。
提前装好:# Ubuntu/Debian apt-get install -y libssl-dev zlib1g-dev # CentOS/RHEL yum install -y openssl-devel zlib-devel
-
磁盘 I/O 低速或挂载在非 SSD
宝塔默认把/www放在系统盘,如果服务器用的是机械硬盘或低配云盘(如腾讯云“容量型”COS挂载),解压 + 编译产生的大量小文件读写会让make明显卡顿。
可临时切到内存盘编译(风险低、见效快):cd /dev/shm wget https://pecl.php.net/get/swoole-4.8.11.tgz tar zxvf swoole-4.8.11.tgz cd swoole-4.8.11 /www/server/php/80/bin/phpize ./configure --with-php-config=/www/server/php/80/bin/php-config --enable-openssl --enable-http2 make -j$(nproc) && make install
编译时间参考基准(PHP 8.0 + 宝塔环境)
- 正常情况(4 核 8GB,SSD,已装依赖):
wget+tar+phpize+configure+make -j$(nproc)≈ 90–150 秒 - 异常情况(未加
-j、机械硬盘、缺依赖):
同样操作可能拉长到 4–10 分钟,且中间容易因超时或内存不足中断。
真正容易被忽略的点不是“要不要编译”,而是编译前是否确认过软件商店有没有现成包——多数人花 6 分钟手动编译,结果发现宝塔面板更新后其实已有 swoole-5.0.3,点一下就装好了。

















