目录
-
- 背景
- 环境信息
- [确认 PHP 环境](#确认 PHP 环境)
- [下载 swoole_loader](#下载 swoole_loader)
-
- 官方下载(可能失效)
- [GitHub 镜像下载(推荐)](#GitHub 镜像下载(推荐))
- 安装扩展
-
- [1. 复制到扩展目录](#1. 复制到扩展目录)
- [2. 修改 php.ini](#2. 修改 php.ini)
- [3. 重启 PHP-FPM](#3. 重启 PHP-FPM)
- 验证安装
-
- [CLI 验证](#CLI 验证)
- [Web 验证](#Web 验证)
- 常见问题
-
- [1. 官方下载失败](#1. 官方下载失败)
- [2. php.ini 配置不生效](#2. php.ini 配置不生效)
- [3. 版本不匹配](#3. 版本不匹配)
- 相关仓库
- 总结
背景
在使用 Swoole Compiler 加密的 PHP 项目时,需要安装 swoole_loader 扩展来解密运行。本文记录在宝塔面板 + PHP 7.4 环境下安装 swoole_loader 的完整过程。
环境信息
- 系统:WSL Ubuntu 22.04
- 面板:宝塔面板
- PHP 版本:7.4.33 NTS (Non-Thread Safe) x64
- 扩展目录:
/www/server/php/74/lib/php/extensions/no-debug-non-zts-20190902
确认 PHP 环境
首先确认 PHP 版本和架构,确保下载对应版本的 swoole_loader:
bash
php -v
# PHP 7.4.33 (cli) (built: Mar 30 2026 13:48:08) ( NTS )
php -i | grep "PHP Extension"
# PHP Extension => 20190902
php -i | grep "Architecture"
# Architecture => x86_64
根据以上信息,需要下载:swoole_loader74_nzts_x64.so(PHP 7.4, Non-Thread Safe, x64)
下载 swoole_loader
官方下载(可能失效)
官方地址经常 500 错误或无法访问:
bash
# 官方地址(经常不可用)
curl -L https://business.swoole.com/static/loader2.0/swoole_loader74_nzts_x64.so -o /tmp/swoole_loader74.so
GitHub 镜像下载(推荐)
从 GitHub 社区仓库下载可用版本:
bash
# 下载 swoole_loader74.so
curl -L https://raw.githubusercontent.com/nodesfree/Swoole-Loader/main/swoole_loader74.so -o /tmp/swoole_loader74.so
# 验证文件
file /tmp/swoole_loader74.so
# 输出:ELF 64-bit LSB shared object, x86-64
安装扩展
1. 复制到扩展目录
bash
cp /tmp/swoole_loader74.so /www/server/php/74/lib/php/extensions/no-debug-non-zts-20190902/swoole_loader74.so
chmod 644 /www/server/php/74/lib/php/extensions/no-debug-non-zts-20190902/swoole_loader74.so
2. 修改 php.ini
宝塔面板 PHP 有两个配置文件需要修改:
CLI 配置(命令行):
bash
echo "extension=swoole_loader74.so" >> /www/server/php/74/etc/php-cli.ini
FPM 配置(Web):
bash
echo "extension=swoole_loader74.so" >> /www/server/php/74/etc/php.ini
3. 重启 PHP-FPM
bash
# 杀掉 PHP-FPM 进程
pkill -f "php-fpm.*74"
# 重新启动
/www/server/php/74/sbin/php-fpm -R -D
验证安装
CLI 验证
bash
php -m | grep swoole
# 输出:
# swoole
# swoole_loader
php -r "var_dump(extension_loaded(\"swoole_loader\"));"
# 输出:bool(true)
Web 验证
创建 phpinfo 文件验证:
bash
echo "<?php phpinfo();" > /tmp/phpinfo.php
/www/server/php/74/bin/php-cgi /tmp/phpinfo.php | grep -i swoole_loader
看到 swoole_loader enabled 即表示安装成功。
常见问题
1. 官方下载失败
swoole 官方下载地址经常 500 错误或返回 HTML,建议使用 GitHub 镜像。
2. php.ini 配置不生效
宝塔面板 CLI 和 FPM 使用不同的配置文件:
- CLI:
php-cli.ini - FPM:
php.ini
两个都需要配置。
3. 版本不匹配
确保下载的 swoole_loader 版本与 PHP 版本、线程安全模式、架构匹配:
- PHP 7.4 → swoole_loader74
- NTS →
_nzts_或不带_zts - x64 →
_x64
相关仓库
总结
- 确认 PHP 版本、线程安全模式、架构
- 从 GitHub 下载对应版本的 swoole_loader.so
- 复制到 PHP 扩展目录
- 同时修改 php-cli.ini 和 php.ini
- 重启 PHP-FPM 服务
- 使用
php -m和 phpinfo 验证