宝塔面板 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 验证
相关推荐
ooseabiscuit24 分钟前
PHP与C++:Web与系统编程的终极对决
前端·c++·php
ooseabiscuit10 小时前
Laravel 8.x核心特性深度解析
php·laravel
求学中--21 小时前
鸿蒙网络请求从入门到精通:HttpURLConnection+第三方库,GET/POST/文件上传全覆盖
开发语言·php·harmonyos
yaodong51821 小时前
Gemini长上下文重塑RAG架构
开发语言·php
fengci.21 小时前
CTF+随机困难部分
android·开发语言·网络·安全·php
自不量力的A同学21 小时前
PHP 8.5.6 发布
开发语言·php
Web极客码1 天前
2026年自建网站实战指南:从服务器到上线的完整方案
运维·服务器·php
念何架构之路1 天前
负载均衡详解
运维·php·负载均衡
小闫BI设源码1 天前
当20个节点选出两个Master时:Elasticsearch的致命故障与解决方案
java·elasticsearch·jenkins·php·面试宝典·深入解析
ljh5746491191 天前
thinkphp8 event
php