安卓无法直接运行PHP文件,需通过Termux安装PHP CLI并手动补充json/curl/mbstring等扩展,仅支持命令行脚本执行,不支持Web环境相关功能及外部存储直读。

安卓不能直接运行 .php 文件——没有 PHP 解释器,也没有 Web 服务器环境。所谓“在安卓跑 PHP”,本质是通过 Termux 安装 PHP CLI(命令行接口),把 PHP 当作脚本解释器用,不涉及 Apache/Nginx 或浏览器访问。
Termux 装 PHP 后只能执行 CLI 模式脚本
Termux 中的 php 是纯命令行版本,不带 $_SERVER、$_GET 等 Web 相关超全局变量,也不能通过浏览器访问 http://localhost:8000 这类地址。
- 能跑:
php script.php、php -r "echo 'hello';" - 不能跑:
$_POST表单提交、$_COOKIE、header()重定向、require_once 'vendor/autoload.php'(除非手动装 Composer) - 想模拟 Web 环境?得额外起内置服务器:
php -S localhost:8000,但路由和静态资源支持极弱,仅适合最简 demo
Termux 安装 PHP 的关键步骤和坑
Termux 默认源不稳定,PHP 版本老旧(常为 8.1 或更低),且 pkg install php 不会自动装扩展(如 json、curl、mbstring),很多脚本一跑就报 Call to undefined function json_encode()。
- 先更新源:
pkg update && pkg upgrade - 装 PHP 主体:
pkg install php - 手动补常用扩展:
pkg install php-json php-curl php-mbstring php-xml php-sqlite - 验证是否生效:
php -m | grep -E "(json|curl|mbstring)"—— 没输出说明没装上或没启用 - 注意:Termux 的
php.ini在$PREFIX/etc/php.ini,改完要重启 Termux 或重新加载终端
PHP 脚本在 Termux 下的路径和权限问题
Termux 的文件系统沙盒严格,不能随意读写外部存储(如 /sdcard),默认工作目录是 $HOME(即 ~/),所有脚本必须放在这里或子目录,否则会提示 Permission denied 或 No such file or directory。
立即学习“PHP免费学习笔记(深入)”;
- 正确做法:
cd ~ && nano test.php→ 写好后php test.php - 如果脚本里用了
file_get_contents('/sdcard/file.txt'),需先执行:termux-setup-storage,再通过~/storage/shared/访问,例如:file_get_contents('~/storage/shared/file.txt') - 不要用 Windows 风格路径(
C:\xxx)或绝对路径/data/data/com.termux/...—— Termux 自己的路径前缀是$PREFIX,用户路径是$HOME
真正麻烦的不是装 PHP,而是脚本依赖——比如用 composer require monolog/monolog,Termux 的 Composer 支持有限,很多包因缺少 pcntl 或 posix 扩展直接失败;更现实的做法是:只写轻量逻辑(文本处理、API 调用、本地数据解析),别指望它替代开发机。











