您的位置:首页 >如何在 Termux 中正确配置 Apache 以加载 PHP 模块
发布于2026-04-30 阅读(0)
扫一扫,手机访问

在 Termux 中运行 Apache + PHP 时,因模块命名与 PHP 版本不匹配(如 PHP 8.x 实际提供 libphp.so 而非 libphp7.so),导致 httpd: Cannot load ... not found 错误,需修正 LoadModule 指令中的模块名与路径。
在 Termux 环境下搭建 Apache 与 PHP 的组合,不少朋友都卡在了启动 Apache 那一步,遇到一个经典的“找不到模块”错误。这背后的原因,其实和 Termux 独特的打包方式以及 PHP 版本演进有关。
简单来说,Termux 里的 Apache 和 PHP 集成,并没有完全照搬传统 Linux 发行版的套路。尤其是从 PHP 8.0 开始,官方已经弃用了旧的 `php7_module` 命名约定,转而使用更通用的 `php_module`。相应地,动态库文件的名字也从 `libphp7.so` 变成了 `libphp.so`。这就意味着,即使你安装的是 PHP 8.1(比如文章开头提到的 PHP 8.1.3),Termux 的包管理器(pkg)提供的 Apache PHP 模块,其文件名依然是 `libphp.so`,并且它老老实实地待在标准路径 `/data/data/com.termux/files/usr/libexec/apache2/` 里。
所以,问题的症结就很清楚了:配置文件里写的模块名和实际的文件名对不上号。解决办法就是修正 Apache 的主配置文件 `httpd.conf`。
你需要把里面那条错误的配置指令:
LoadModule php7_module /data/data/com.termux/files/usr/libexec/apache2/libphp7.so
替换成下面这样:
LoadModule php_module /data/data/com.termux/files/usr/libexec/apache2/libphp.so
改完之后,配置文件里后续关于 PHP 文件处理的配置通常不需要动,保持原样即可:
立即学习“PHP免费学习笔记(深入)”;
SetHandler application/x-httpd-php
✅ **验证与测试步骤**:
⚠️ **几个关键的注意事项**:
ls -l $PREFIX/libexec/apache2/libphp.so
如果文件确实不存在,那可能是安装不完整。可以尝试重新安装 PHP 的 Apache 模块:
pkg reinstall php-apache
总结一下,这个问题的本质,是 Apache 配置中引用的模块标识符(module name)与实际磁盘上的共享库文件(shared object)命名不一致导致的。Termux 遵循的是上游 Apache 和 PHP 项目现代的命名规范。因此,正确的做法是始终使用 `php_module` 配合 `libphp.so` 这个组合,而不要再沿用 PHP 7 时代的旧习惯了。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
9