宝塔面板 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 验证
相关推荐
zopple26 分钟前
Laravel 6.x核心特性全解析
php·laravel
aq55356002 小时前
Laravel 11.x新特性全解析
php·laravel
niucloud-admin2 小时前
PHP SAAS 框架常见问题——安装应用时出现 is_dir() 报错
php
徐子元竟然被占了!!2 小时前
IS-IS协议
开发语言·网络·php
zopple2 小时前
Laravel7.x核心特性全解析
开发语言·php·laravel
ICT系统集成阿祥2 小时前
黄金秘籍解决华为防火墙最困难的故障
网络·华为·php
东方隐侠安全团队-千里3 小时前
AI Coding Agent 执行依赖安装前的安全检查清单:从 Composer 漏洞看到命令执行
人工智能·安全·php·composer
StockTV3 小时前
韩国市场API技术对接指南,涵盖实时行情、历史数据、指数信息、公司详情等功能
java·开发语言·python·php
fengci.4 小时前
ctfshow其他(web408-web432)
android·开发语言·前端·学习·php
sensen_kiss5 小时前
CAN302 Coursework1对 JavaScript 和 PHP 的考察
javascript·学习·php