宝塔面板 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 验证
相关推荐
xingxin323 小时前
PHP代码分析溯源(第3题)
安全·web安全·网络安全·php
桌面运维家4 小时前
BGP路由优化实战:加速收敛,提升网络稳定性
网络·windows·php
m0_738120726 小时前
我的创作纪念日0328
java·网络·windows·python·web安全·php
未来转换6 小时前
计算机网络基础之IP地址详解
tcp/ip·计算机网络·php
Leventure_轩先生8 小时前
[RL]强化学习指导搭建IC2E核反应堆
开发语言·php
a8a3029 小时前
IPV6公网暴露下的OPENWRT防火墙安全设置(只允许访问局域网中指定服务器指定端口其余拒绝)
服务器·安全·php
zhangren0246812 小时前
Laravel6.x核心特性全解析
开发语言·c++·php
小宇的天下12 小时前
Calibre LVS Circuit Comparison(3)
开发语言·php·lvs
zhangren0246812 小时前
Laravel7.x新特性全面解析
数据库·mysql·adb·php