|
|
@@ -58,6 +58,64 @@ backend/extension/news/
|
|
|
- Docker (用于执行 `Makefile` 中的构建命令)
|
|
|
- PHP 7.4+ 并已启用 FFI 扩展
|
|
|
|
|
|
+## 宝塔面板环境启用 PHP FFI 教程
|
|
|
+
|
|
|
+以下步骤以宝塔面板安装的 PHP 8.3 为例,其他版本仅需替换路径中的版本号。
|
|
|
+
|
|
|
+### 1. 进入 FFI 源码目录
|
|
|
+
|
|
|
+```bash
|
|
|
+cd /www/server/php/83/src/ext/ffi
|
|
|
+```
|
|
|
+
|
|
|
+若提示目录不存在,请先在宝塔面板的 PHP 设置中执行一次“重新安装源码”。
|
|
|
+
|
|
|
+### 2. 生成编译配置
|
|
|
+
|
|
|
+```bash
|
|
|
+phpize
|
|
|
+```
|
|
|
+
|
|
|
+执行成功后会生成 `configure` 等构建文件。
|
|
|
+
|
|
|
+### 3. 配置并编译扩展
|
|
|
+
|
|
|
+```bash
|
|
|
+./configure --with-php-config=/www/server/php/83/bin/php-config
|
|
|
+make && make install
|
|
|
+```
|
|
|
+
|
|
|
+完成后系统会在 `/www/server/php/83/lib/php/extensions/` 下生成 `ffi.so`。
|
|
|
+
|
|
|
+### 4. 配置 php.ini
|
|
|
+
|
|
|
+在宝塔面板中打开 PHP 8.3 的 `php.ini`,或直接修改 `/www/server/php/83/etc/php.ini`,追加:
|
|
|
+
|
|
|
+```ini
|
|
|
+extension=ffi
|
|
|
+ffi.enable=true
|
|
|
+```
|
|
|
+
|
|
|
+如果使用 PHP-FPM,请同步在 `php.d` 或额外的配置文件中开启上述参数,确保 CLI 与 FPM 环境都能加载 FFI。
|
|
|
+
|
|
|
+### 5. 重启 PHP 服务
|
|
|
+
|
|
|
+在宝塔面板中重启对应 PHP 版本的服务,或执行:
|
|
|
+
|
|
|
+```bash
|
|
|
+bt restart php 83
|
|
|
+```
|
|
|
+
|
|
|
+### 6. 验证扩展是否生效
|
|
|
+
|
|
|
+```bash
|
|
|
+/www/server/php/83/bin/php -m | grep FFI
|
|
|
+```
|
|
|
+
|
|
|
+若输出包含 `FFI`,说明扩展已启用。也可使用 `php -i | grep -i ffi` 查看详细配置。
|
|
|
+
|
|
|
+完成以上步骤后,即可在 `news` 插件中通过 PHP FFI 加载 Go 动态库。
|
|
|
+
|
|
|
## 构建 Go 共享库
|
|
|
|
|
|
所有 Go 源代码的编译都通过 `Makefile` 完成。
|