手机web服务器
把一台手机变成Web服务器,手机这事比大多数人想的手机要简单。我手里这台淘汰的手机Redmi Note 9,现在正跑着一个完整的手机Nginx+PHP环境,局域网内任何设备输入它的手机IP都能看到我搭的测试站点。功耗?手机插着充电器待机也就2W出头,比树莓派还省电。手机
关键是手机Termux这个终端模拟器。Google Play版本早就停更了,手机得去F-Droid或GitHub下最新版。手机装完先别急着敲命令,手机执行termux-setup-storage授权存储权限,手机否则后面读写文件全是手机Permission denied。然后pkg update && pkg upgrade走一遍,手机源换成清华的手机会快很多。
装Nginx用pkg install nginx就行,但默认配置监听的是8080端口。改$PREFIX/etc/nginx/nginx.conf,把listen那行改成80。想跑PHP的话还得装php-fpm,Termux的包名是php-fpm,配置文件在$PREFIX/etc/php-fpm.d/www.conf。这里有个坑:默认listen = 127.0.0.1:9000,Nginx那边fastcgi_pass要对应上,不然502伺候。
启动顺序不能乱。先php-fpm再nginx,两个都是前台进程,得开两个Termux会话或者用nohup ... &丢后台。我习惯用tmux,pkg install tmux之后开两个窗格,一个跑php-fpm一个跑nginx,切换查看日志方便得很。
手机熄屏后Termux会被系统杀掉。去设置里找电池优化,把Termux设为无限制。开发者选项里还有个“不锁定屏幕”的开关,打开后充电时屏幕常亮,虽然费点电但省心。我试过用termux-wake-lock命令,效果不如直接改系统设置来得稳。
外网访问需要内网穿透。Termux能装frp客户端,pkg install frp,配好frpc.ini指向自己的VPS。免费方案也有,cloudflared的quick tunnel一条命令cloudflared tunnel --url http://localhost:80就能拿到临时域名。速度嘛,应急够用,正经跑服务还是得自己搭frp服务端。
性能方面别抱太高期望。骁龙662跑Nginx静态页没问题,QPS大概三四百。PHP动态请求就惨了,WordPress首页要2秒多。但用来做API测试、Webhook接收、临时文件分享这些轻量场景,完全够使。我拿它当GitHub Webhook的中转,跑了三个月没重启过。
存储空间是个隐性成本。Termux的根文件系统在/data/data/com.termux/files,默认只给几GB。装完Nginx+PHP+MySQL后剩不了多少。解决方案是把网站根目录软链到~/storage/shared下面,也就是手机内部存储的共享区域,那边空间大得多。但要注意权限问题,php-fpm以termux用户运行,得确保它对共享目录有读写权。
最后说个实际案例。上个月帮朋友做地推活动,需要现场收集用户填表。我用这台手机跑了个简单的HTML表单+Nginx,现场二十多部设备同时提交毫无压力。活动结束直接把/data/data/com.termux/files/usr/share/nginx/html里的CSV文件导出来,比用在线问卷省事多了。手机Web服务器不是玩具,特定场景下它比云服务器更直接、更可控。
本文地址:http://www.79wt.cn/news/477d9899424.html
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。