宝塔面板 PHP 7.4 安装 swoole_loader 解密扩展

目录

    • 背景
    • 环境信息
    • [确认 PHP 环境](#确认 PHP 环境)
    • [下载 swoole_loader](#下载 swoole_loader)
    • 安装扩展
      • [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

相关仓库

总结

  1. 确认 PHP 版本、线程安全模式、架构
  2. 从 GitHub 下载对应版本的 swoole_loader.so
  3. 复制到 PHP 扩展目录
  4. 同时修改 php-cli.ini 和 php.ini
  5. 重启 PHP-FPM 服务
  6. 使用 php -m 和 phpinfo 验证
相关推荐
旋生万物1 天前
【终极实战】用Python从零“生成“一个宇宙:螺旋干涉模型的代码实现
开发语言·前端·人工智能·react.js·php·wpf
艾醒(AiXing-w)1 天前
LangChain 1.0 入门(三):稳定性双核心——重试机制+速率限速器参数详解与实战
开发语言·langchain·php
宸津-代码粉碎机1 天前
FastUtil+AI多Agent实战:Java AI项目性能终极加速方案
java·服务器·开发语言·python·安全·php
练习时长两年半的RL练习生1 天前
与AI对话后对 Actor-Critic 中 TD Target 的 a‘ 来源总结
开发语言·人工智能·php
Sagittarius_A*1 天前
【好靶场】PHP反序列化绕过
web安全·信息安全·php·代码审计·反序列化绕过
孫治AllenSun1 天前
【系统安全】信息脱敏存储:场景、需求与实现方案详解
安全·系统安全·php
aixingpan1 天前
aixingpan.cn API开发文档:api_docs_errors接口指南
前端·php
FYKJ_20101 天前
django学习成绩预警系统10905
java·javascript·spring boot·python·spark·django·php
BingoGo1 天前
NativePHP v4 让 Blade 构建原生 iOS 与 Android 界面
后端·php
JaguarJack1 天前
NativePHP v4 让 Blade 构建原生 iOS 与 Android 界面
后端·php·服务端