1 前言

电子产品更新速度快,旧手机往往容易被闲置,不想挂闲鱼就只能放在抽屉落灰,与其这样不如资源再利用,将旧手机制作成为家庭服务器,实现文件存储与共享、个人博客、媒体服务等多种功能,对于喜欢折腾技术的用户来说这无疑是一个充满挑战与乐趣的项目。

Termux 是一个适用于 Android 的终端模拟器,其环境类似于 Linux 环境,无需Root或设置即可使用。

注意

本文演示中使用的安卓设备为Redmi K30 8+128 MIUI 13.0.6

2 Termux 准备

通过 GitHub 或者 APKFab 应用商店安装 Termux,下载地址可在官网查看。

image-20241128203928646

为避免后续下载操作网络缓慢,建议切换国内镜像源。

1
termux-change-repo

在唤出的图形化界面中,第一步选择 Mirror group 并点击 OK 确定,第二步选择 Chinese Mainlan 并点击 OK 确定。

image-20241128232348569

更新包管理器索引并将已安装的包升级到最新版本。

1
pkg update && pkg upgrade -y

安装 vim、wget、unzip 等必备工具。

1
pkg install vim wget unzip -y

在 Termux 中使用 ifconfig 命令查看 Termux 主机 IP 地址,这里可以看到当前为 192.168.0.21,记录备用。

image-20241130140031969

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
2
mariadb -u root -p
# Enter password: # 无需输入

然后使用 SQL 语句修改 root 密码,最后刷新权限并退出当前用户。

1
2
3
4
5
use mysql;
set password for 'root'@'localhost' = password('你设置的密码');

flush privileges;
quit;

这时 root 用户就需要使用密码进行登录了,密码为前面设置的密码。

1
2
mariadb -u root -p
# Enter password: # 输入设置的密码

image-20241130223708315

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

image-20241129211803355

启动 Nginx

1
nginx

Nginx 的默认运行端口为 8080,启动完成后在浏览器访问 127.0.0.1:8080 进入 Nginx 欢迎页。

image-20241129212356591

重启 Nginx

当修改 Nginx 配置文件时需要重启 Nginx 生效。

1
nginx -s reload

停止 Nginx

Nginx 内置了两种停止命令。

1
2
nginx -s quit		# 在退出前完成已经接受的连接请求
nginx -s stop # 快速关闭,不管有没有正在处理的请求

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

对该文件作出以下修改:

  1. 添加 index.php 到默认首页的规则
  2. 取消 location ~ \.php$ 注释,修改 fastcgi_param 内容

image-20241129221030613

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 信息页。

image-20241129222153438

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 可查看访问地址,在浏览器中访问可查看根目录下全部文件。

image-20241201181642979

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
  • 账号设置:设置账号和密码用于系统管理员登录。

image-20241130131432401

至此安装完成,系统自动跳转到登录页面,使用设置的账号密码进入云盘首页。

image-20241130134254668

4.3 局域网连接

在同局域网下的任意设备通过浏览器访问 Termux主机IP:8080/kod 进行登录操作,Termux主机IP 通过 ifconfig 命令查看。

image-20241130140039572

在同局域网下的任意设备通过客户端连接站点进行登录操作,站点同浏览器访问地址。

image-20241130142006276

4.4 访问手机内部存储

在 Termux 中获取手机存储访问权限。

1
termux-setup-storage

使用 ln -s <本机目录> <termux内部目录> 命令挂载手机存储目录,比如将手机的 Download 目录映射到 Termux 的 home 目录下。

1
ln -s /sdcard/Download /data/data/com.termux/files/home

然后在云盘系统中新增挂载,依次点击系统设置>存储管理>新增。

image-20241130144431724

image-20241130145250127

保存后刷新页面,就可以在文件管理中的网络挂载中查看到了。

image-20241130145507490

5 使用 WordPress 搭建博客

WordPress 是一款非常流行的开源内容管理系统,可以用于创建和管理网站。

安装前需准备 Nginx 环境和 MySQL 数据库,可查看本文 3.1 和 3.2 内容。

5.1 新建数据库

网站需要使用数据库,在正式安装前先新建一个数据库备用。

1
2
mariadb -uroot -p123456 -e"create database wordpress;show databases;"
# root为用户名,123456为密码,wordpress为名称

执行操作命令成功后输出数据库列表,列表中包含新建的 wordpress

image-20241130224249788

5.2 下载安装

前往官网下载页面复制最新版本下载链接后使用 wegt 直接下载。

1
2
3
wget https://cn.wordpress.org/latest-zh_CN.zip
# 或者选择指定版本下载:
wget https://cn.wordpress.org/wordpress-6.7.1-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

image-20241130230250194

填写数据库连接信息,使用前面新建的数据库设置。如果数据库主机使用 localhost 无法连接可使用 Termux主机IP,依旧无法连接可以尝试创建一个新用户。

1
2
# 创建一个用户名为wordpress,密码为123456的新用户
mariadb -uroot -p123456 -e"GRANT ALL PRIVILEGES ON *.* TO 'wordpress'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;"

image-20241130234627033

接下来的步骤根据文字指引进行配置,最后根据设置的账号密码登录站点成功进入后台。

image-20241130235044001

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/

image-20241201220530901

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
2
cd termux-install-linux
python termux-linux-install.py

image-20241202200435389

耐心等待安装完成。

image-20241202201232702

7.3 Ubuntu 启动

使用一行命令运行脚本就可以顺利启动 Ubuntu 系统。

1
~/Termux-Linux/Ubuntu/start-ubuntu.sh

image-20241202204347014

7.4 特别注意

这里所安装的系统是轻量级的,所以很多 Ubuntu 命令及功能无法使用,另外经过尝试,宝塔面板、Docker等均无法正常安装。

8 写在最后

本文介绍了利用 Termux 将安卓手机制作成家庭服务器的方法,包括 Termux 安装与设置、MySQL、Nginx、Node.js 等环境准备,以及使用 KodBox 搭建云盘、WordPress 搭建博客、You-Get 下载媒体、安装 Ubuntu 学习 Linux 等应用搭建与使用的步骤,涵盖了从基础环境搭建到多种功能实现的全过程,可将闲置安卓手机资源再利用,满足文件存储与共享、个人博客、媒体服务等多种需求。