执行phpize报错“Cannot find autoconf”需先yum install -y autoconf,同时安装gcc、gcc-c++、make、libtool、automake;configure阶段若提示openssl未找到,须yum install -y openssl-devel并验证extension_loaded('openssl')返回yes;OpenSSL版本低于1.1.1会导致ALPN相关链接错误,需升级至1.1.x;扩展装完却不可见,需确认CLI与FPM各自php.ini路径并分别添加extension=swoole.so。

执行 phpize 报错 Cannot find autoconf
这是最常见、最先遇到的依赖缺失,phpize 本质是用 autoconf 生成 configure 脚本,没它就直接卡死。CentOS 7 最小化安装默认不带 autoconf,必须手动装:
yum install -y autoconf- 如果同时提示
libtool或make找不到,一并装上:yum install -y gcc gcc-c++ make libtool - 别只装
autoconf就以为完事——phpize还依赖automake和libtool,漏一个都会在后续./configure阶段报错
configure 阶段报错 Package ‘openssl’ not found
Swoole 4.8+ 默认启用 OpenSSL 支持(HTTP/2、wss、SSL TCP 等都靠它),但 CentOS 7 的 openssl-devel 是独立包,不随 openssl 一起装:
- 运行
yum install -y openssl-devel(不是openssl) - 验证是否生效:
php -r "echo extension_loaded('openssl') ? 'yes' : 'no';"输出yes才算到位 - 如果跳过这步,
./configure可能静默禁用 OpenSSL,导致后续启动 HTTPS 服务时报SSL operation failed,而不是编译失败,更难排查
make 编译时报错 undefined reference to `SSL_CTX_set_alpn_select_cb`
这不是缺包,而是 OpenSSL 版本太低。CentOS 7 默认 OpenSSL 1.0.2k,而 Swoole 4.8+ 要求 ≥ 1.1.1(ALPN 是 HTTP/2 必需)。强行编译会链接失败:
- 升级 OpenSSL 到 1.1.x:从源码编译安装(官方 repo 不提供新版),或改用 REMI 源:
yum install -y https://rpms.remirepo.net/enterprise/remi-release-7.rpm,再yum --enablerepo=remi update openssl - 升级后务必重新运行
./configure --with-php-config=/path/to/php-config --enable-openssl,否则仍用旧头文件编译 - 注意:升级 OpenSSL 后,PHP 本身也要重新编译(如果 PHP 是源码安装),否则
php-config --openssl-dir仍指向旧路径
装完 php -m 看不到 swoole,但 swoole.so 已生成
说明扩展文件存在,但 PHP 没加载——根本原因几乎都是 php.ini 写错了位置:
立即学习“PHP免费学习笔记(深入)”;
- 先确认 CLI 和 FPM 用的是不同
php.ini:php --ini查 CLI 路径,php-fpm -i | grep "Loaded Configuration File"查 FPM 路径 - 在两个配置文件里都加:
extension=swoole.so(源码编译)或extension=swoole(PECL 安装) - 宝塔用户特别注意:
/www/server/php/74/etc/php.ini是 FPM 主配置,但 CLI 用的是/www/server/php/74/etc/php-cli.ini,漏改任何一个,php -m或网页里都看不到



















