如何正确在 Termux 中配置 Apache 使其支持 PHP 模块安装?

2026-04-30 19:551阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计544个文字,预计阅读时间需要3分钟。

如何正确在 Termux 中配置 Apache 使其支持 PHP 模块安装?

在Termux中运行`链接文本`。请注意不要使用图片解释,避免使用数字和确保内容不超过100个字。

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/。

因此,应将 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免费学习笔记(深入)”;

<FilesMatch \.php$> SetHandler application/x-httpd-php </FilesMatch>

✅ 验证步骤:

  1. 保存 httpd.conf;
  2. 执行 apachectl configtest 确认语法无误(输出 Syntax OK);
  3. 启动服务:apachectl start;
  4. 访问 http://localhost:8080(Termux Apache 默认端口为 8080),并创建 info.php 测试:

<?php phpinfo(); ?>

⚠️ 注意事项:

  • 不要手动重命名 .so 文件(如将 libphp.so 改为 libphp7.so),这可能导致符号解析失败;
  • Termux 的 Apache 模块路径固定,切勿随意修改 libexec 目录结构;
  • 若仍报错,请先确认模块文件真实存在:

    ls -l $PREFIX/libexec/apache2/libphp.so

    若不存在,可重装 PHP Apache 模块:

    pkg reinstall php-apache

总结:该问题本质是模块标识符(module name)与实际共享库(shared object)命名不一致所致。Termux 遵循上游 Apache + PHP 的现代命名规范,应始终使用 php_module + libphp.so 组合,而非沿用旧版 PHP 7 的命名惯性。

标签:PHPapache

本文共计544个文字,预计阅读时间需要3分钟。

如何正确在 Termux 中配置 Apache 使其支持 PHP 模块安装?

在Termux中运行`链接文本`。请注意不要使用图片解释,避免使用数字和确保内容不超过100个字。

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/。

因此,应将 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免费学习笔记(深入)”;

<FilesMatch \.php$> SetHandler application/x-httpd-php </FilesMatch>

✅ 验证步骤:

  1. 保存 httpd.conf;
  2. 执行 apachectl configtest 确认语法无误(输出 Syntax OK);
  3. 启动服务:apachectl start;
  4. 访问 http://localhost:8080(Termux Apache 默认端口为 8080),并创建 info.php 测试:

<?php phpinfo(); ?>

⚠️ 注意事项:

  • 不要手动重命名 .so 文件(如将 libphp.so 改为 libphp7.so),这可能导致符号解析失败;
  • Termux 的 Apache 模块路径固定,切勿随意修改 libexec 目录结构;
  • 若仍报错,请先确认模块文件真实存在:

    ls -l $PREFIX/libexec/apache2/libphp.so

    若不存在,可重装 PHP Apache 模块:

    pkg reinstall php-apache

总结:该问题本质是模块标识符(module name)与实际共享库(shared object)命名不一致所致。Termux 遵循上游 Apache + PHP 的现代命名规范,应始终使用 php_module + libphp.so 组合,而非沿用旧版 PHP 7 的命名惯性。

标签:PHPapache