利用 Termux 让安卓手机成为专属家庭服务器
1 前言
电子产品更新速度快,旧手机往往容易被闲置,不想挂闲鱼就只能放在抽屉落灰,与其这样不如资源再利用,将旧手机制作成为家庭服务器,实现文件存储与共享、个人博客、媒体服务等多种功能,对于喜欢折腾技术的用户来说这无疑是一个充满挑战与乐趣的项目。
Termux 是一个适用于 Android 的终端模拟器,其环境类似于 Linux 环境,无需Root或设置即可使用。
注意
本文演示中使用的安卓设备为Redmi K30 8+128 MIUI 13.0.6
。
2 Termux 准备
通过 GitHub 或者 APKFab 应用商店安装 Termux,下载地址可在官网查看。
为避免后续下载操作网络缓慢,建议切换国内镜像源。
1 | termux-change-repo |
在唤出的图形化界面中,第一步选择 Mirror group
并点击 OK
确定,第二步选择 Chinese Mainlan
并点击 OK
确定。
更新包管理器索引并将已安装的包升级到最新版本。
1 | pkg update && pkg upgrade -y |
安装 vim、wget、unzip 等必备工具。
1 | pkg install vim wget unzip -y |
在 Termux 中使用 ifconfig
命令查看 Termux 主机 IP 地址,这里可以看到当前为 192.168.0.21
,记录备用。
3 环境准备
本节涉及的环境准备仅为本文有所需要的,但也不需要全部进行安装,而是根据实际情况有所选择的安装。
3.1 MySQL
MariaDB 是 MySQL 的一个分支,是一个开源的关系型数据库管理系统。
3.1.1 安装
在 Termux 中使用一条命令就可以快速安装 MariaDB。
1 | pkg install mariadb -y |
查看版本信息,若出现版本号即安装完成。
1 | mariadb --version |
3.1.2 启动服务
不建议直接使用 mysqld
命令启动 MySQL 服务,这样会话将一直存活无法进行其它操作,所以可以使用 nohup
命令来后台启动。
1 | nohup mysqld & |
然而这个方法当服务意外终止将无法实现自启动,所以可以将 mysqld_safe 脚本与 root 用户一起运行实现自启动防止意外终止,mysqld_safe 脚本是用于监控 MySQL 运行情况并在其终止时重新启动,相当于多了一个守护进程。
1 | mysqld_safe -u root & |
3.1.3 停止服务
MySQL 没有很好的终止命令,只能强制杀掉进程实现停止服务。
1 | kill -9 `pgrep mysql` |
3.1.4 设置 root 密码
设置密码前使用 root 用户登录密码为空,回车确认即可直接进入数据库。
1 | mariadb -u root -p |
然后使用 SQL 语句修改 root 密码,最后刷新权限并退出当前用户。
1 | use mysql; |
这时 root 用户就需要使用密码进行登录了,密码为前面设置的密码。
1 | mariadb -u root -p |
3.2 Nginx
Nginx 是一款轻量级和高性能的 Web 服务器和反向代理服务器,凭借其高效的处理能力和稳定性而闻名,广泛应用于各种 Web 场景中。
3.2.1 安装
在 Termux 中使用一条命令就可以快速安装 Nginx。
1 | pkg install nginx -y |
查看版本信息,若出现版本号即安装完成。
1 | nginx -v |
3.2.2 基本命令
测试 Nginx
测试检查 Nginx 配置文件来判断 Nginx 是否正常。
1 | nginx -t |
启动 Nginx
1 | nginx |
Nginx 的默认运行端口为 8080,启动完成后在浏览器访问 127.0.0.1:8080
进入 Nginx 欢迎页。
重启 Nginx
当修改 Nginx 配置文件时需要重启 Nginx 生效。
1 | nginx -s reload |
停止 Nginx
Nginx 内置了两种停止命令。
1 | nginx -s quit # 在退出前完成已经接受的连接请求 |
3.2.3 解析 PHP
3.2.3.1 安装 php-fpm
1 | pkg install php-fpm -y |
3.2.3.2 配置 php-fpm
编辑 php-fpm
配置文件 www.conf
1 | vim $PREFIX/etc/php-fpm.d/www.conf |
搜索 listen =
找到:
1 | listen = /data/data/com.termux/files/usr/var/run/php-fpm.sock` |
修改为:
1 | listen = 127.0.0.1:9000 |
3.2.3.3 配置 Nginx
编辑 Nginx 的配置文件 nginx.conf
1 | vim $PREFIX/etc/nginx/nginx.conf |
对该文件作出以下修改:
- 添加
index.php
到默认首页的规则 - 取消
location ~ \.php$
注释,修改fastcgi_param
内容
3.2.3.4 测试 PHP 解析
新建有内容的 info.php
文件
1 | echo '<?php phpinfo(); ?>' > $PREFIX/share/nginx/html/info.php |
重启 Nginx 服务使配置生效
1 | nginx -s reload |
启动 php-fpm 服务
1 | php-fpm |
若解析成功,浏览器访问 127.0.0.1:8080/info.php
出现 PHP 信息页。
3.3 Nodejs
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,它让 JavaScript 能够在服务器端运行,而不仅仅局限于浏览器环境。
3.3.1 安装
在 Termux 中使用一条命令就可以快速安装 Nodejs。
1 | pkg install nodejs -y |
查看版本信息,若出现两个版本号即安装完成。
1 | node -V && npm -V |
3.3.2 测试使用
使用 Node.js 运行 js 脚本输出 Hello World
,首先使用 vim hello.js
命令新建文件并添加脚本内容。
1 | console.log('Hello World'); |
使用 node 命令尝试运行,正确输出 Hello World
即为成功。
1 | node hello.js |
3.3.3 静态 HTTP 服务器
http-server 是一个简单、零配置的命令行静态 HTTP 服务器。使用 npm
命令可以快速安装 http-server。
1 | npm install -g http-server |
等待安装完成后,运行 http-server 可查看访问地址,在浏览器中访问可查看根目录下全部文件。
4 使用 KodBox 搭建云盘
Kodbox 是一款功能强大的私有云存储与协同办公平台。
安装前需准备 Nginx 环境,并确保已经可以解析 PHP,可查看本文 3.2 内容。
4.1 下载安装
前往官网下载页面查看最新版本,复制下载链接后使用 wget 直接下载。
1 | wget https://static.kodcloud.com/update/download/kodbox.1.54.zip |
解压包至 Nginx 的 kod 目录下。
1 | unzip kodbox.1.54.zip -d $PREFIX/share/nginx/html/kod |
4.2 登录配置
手机访问 127.0.0.1:8080/kod
即可进入系统安装页面,依次进行环境检测、数据库配置和账号设置。
- 环境检测:部分非必要开启项失败可忽略,也可查看帮助解决。
- 数据库配置:建议使用
SQLite + 文件缓存
,有条件或有需求可以选择MySQL
。 - 账号设置:设置账号和密码用于系统管理员登录。
至此安装完成,系统自动跳转到登录页面,使用设置的账号密码进入云盘首页。
4.3 局域网连接
在同局域网下的任意设备通过浏览器访问 Termux主机IP:8080/kod
进行登录操作,Termux主机IP
通过 ifconfig
命令查看。
在同局域网下的任意设备通过客户端连接站点进行登录操作,站点同浏览器访问地址。
4.4 访问手机内部存储
在 Termux 中获取手机存储访问权限。
1 | termux-setup-storage |
使用 ln -s <本机目录> <termux内部目录>
命令挂载手机存储目录,比如将手机的 Download
目录映射到 Termux 的 home
目录下。
1 | ln -s /sdcard/Download /data/data/com.termux/files/home |
然后在云盘系统中新增挂载,依次点击系统设置>存储管理>新增。
保存后刷新页面,就可以在文件管理中的网络挂载中查看到了。
5 使用 WordPress 搭建博客
WordPress 是一款非常流行的开源内容管理系统,可以用于创建和管理网站。
安装前需准备 Nginx 环境和 MySQL 数据库,可查看本文 3.1 和 3.2 内容。
5.1 新建数据库
网站需要使用数据库,在正式安装前先新建一个数据库备用。
1 | mariadb -uroot -p123456 -e"create database wordpress;show databases;" |
执行操作命令成功后输出数据库列表,列表中包含新建的 wordpress
。
5.2 下载安装
前往官网下载页面复制最新版本下载链接后使用 wegt 直接下载。
1 | wget https://cn.wordpress.org/latest-zh_CN.zip |
解压包至 Nginx 的网站根目录下。
1 | unzip wordpress-6.7.1-zh_CN.zip -d $PREFIX/share/nginx/html |
5.3 登录配置
完成下载安装后在本机浏览器访问 127.0.0.1:8080/wordpress
或者在同局域网下的其它设备访问 Termux主机IP:8080/wordpress
。
填写数据库连接信息,使用前面新建的数据库设置。如果数据库主机使用 localhost 无法连接可使用 Termux主机IP
,依旧无法连接可以尝试创建一个新用户。
1 | # 创建一个用户名为wordpress,密码为123456的新用户 |
接下来的步骤根据文字指引进行配置,最后根据设置的账号密码登录站点成功进入后台。
6 使用 You-Get 下载媒体
You-Get 是一个命令行程序,提供便利的方式来下载网络上的媒体信息。
6.1 安装依赖
进行程序安装前首先获取所需依赖:Python3、FFmpeg。
1 | pkg install python3 ffmpeg -y |
6.2 安装 you-get
安装依赖完成后直接使用 pip
来安装。
1 | pip3 install you-get |
6.3 下载媒体
支持下载的全部媒体平台可前往官方说明中查看,这里仅以 Bilibili 视频展示演示。
1 | you-get https://www.bilibili.com/video/BV132421A7VN/ |
7 安装 Ubuntu 学习 Linux
7.1 安装依赖
系统的安装将使用国光大佬制作的一键脚本,由于脚本存放于 GitHub 并且使用 Python 环境,所以使用需要安装 git 和 python,另外还需要 proot 才可以运行 Linux。
1 | pkg install proot git python -y |
7.2 下载安装
首先克隆这个一键安装脚本,将它保存到本地。
1 | git clone https://github.com/sqlsec/termux-install-linux |
然后运行这个安装脚本,出现安装指引,这里输入 1 来进行 Ubuntu 系统的安装。这里一定要先切换目录再运行脚本,不然会出现路径问题。
1 | cd termux-install-linux |
耐心等待安装完成。
7.3 Ubuntu 启动
使用一行命令运行脚本就可以顺利启动 Ubuntu 系统。
1 | ~/Termux-Linux/Ubuntu/start-ubuntu.sh |
7.4 特别注意
这里所安装的系统是轻量级的,所以很多 Ubuntu 命令及功能无法使用,另外经过尝试,宝塔面板、Docker等均无法正常安装。
8 写在最后
本文介绍了利用 Termux 将安卓手机制作成家庭服务器的方法,包括 Termux 安装与设置、MySQL、Nginx、Node.js 等环境准备,以及使用 KodBox 搭建云盘、WordPress 搭建博客、You-Get 下载媒体、安装 Ubuntu 学习 Linux 等应用搭建与使用的步骤,涵盖了从基础环境搭建到多种功能实现的全过程,可将闲置安卓手机资源再利用,满足文件存储与共享、个人博客、媒体服务等多种需求。
- 感谢您的赞赏。