宝塔面板 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 验证
相关推荐
迪康Defender3 小时前
终端安全事后追溯能力解析:本地审计模块设计思路与落地实践
运维·开发语言·人工智能·安全·php·安全威胁分析·运维开发
唐青枫3 小时前
别把 JWT 当成加密令牌:Symfony LexikJWTAuthenticationBundle 实战详解
php·symfony
专业程序开发源4 小时前
springboot古城景区管理系统88564-计算机课程设计、毕业设计
java·vue.js·spring boot·后端·spring·php·课程设计
专业程序开发源5 小时前
springboot酒店会员点餐系统22339-计算机课程设计、毕业设计
java·javascript·vue.js·spring boot·后端·php·课程设计
搭贝17 小时前
上厕所的时间搭好一套系统:AI自动生成实测
开发语言·人工智能·低代码·ai·php·搭贝
智感子18 小时前
智能称重·数据上云:从仪表读数到可追溯的计量凭证
开发语言·php
2301_777998341 天前
TCP协议:滑动窗口与流量控制
服务器·网络·网络协议·tcp/ip·php
一条破秋裤1 天前
01_字符设备基本概念_从分类到LED控制链路
开发语言·php
唐青枫1 天前
别只会给页面加 ROLE_ADMIN:Symfony Security 从登录到资源授权实战
php·symfony
xingpanvip1 天前
星盘接口开发文档:推算星座接口指南
前端·php