Termux
[TOC] Termux 高级终端安装使用配置教程,刚写这篇文章的时候,当时国内 Termux 相关的文章和资料相对来说还是比较少的,就花了几天写了这一篇文章,没想到居然火了,受宠若惊。所 以这篇文章国光就打算定期更新了,想打造成 Termux 的中文文档,希望本文可以帮助到更多对 Termux 感兴趣的朋友,发挥 Android 平台更大的 DIY 空间。
1. 版权声明
17 年开始接触到 Termux,就发现它有很多值得挖掘的潜力,于是抽空在 18 年的某一个法定的整整花了三天假期开才写完第一版文章,然后文章陆陆续续更新到现在,期间有一次误操作不小心把博客所有的评论都删了,否则这篇文章的评论数会更多。现在本文的截图数量达到了 150 张左右了,文字数目已经数万多了。自己花了很长时间写出来的原创文章,抄袭白嫖党直接 Ctrl+C Ctrl+V 只要几秒钟。原创很辛苦,抄袭的成本却很低,维权的成本又很高,虽然国内目前的抄袭风气很严重,但是我相信尊重原创,保护原创从现在做起从大家做起,tomorrow is another day! 如果大面转载引用的话 希望标明文章出处:
Termux 高级终端安装使用配置教程
2. 学习资源
考虑到手机用户体验和离线观看教程的需求,国光打包了几种风格的 PDF 版本,并且已经插入好目录,阅读体验会比较友好。
- 黑色背景的 PDF : Termux 入门指南(Vue 黑)
- 白色背景的 PDF : Termux 入门指南(Github 白)
- macOS light 风格 : Termux 入门指南(macOS 白)
- Gothic 风格 : Termux 入门指南(简约线条)
因为本文内容超级长,也包含了大量的图片,手机浏览起来难免会卡顿,而且如果你浏览比较拮据的话,还是建议看 PDF 版本的,国光还是比较建议有条件的同学使用 PC 端观看本文。
早期我的信息安全交流群里面陆陆续续加了很多 Temux 玩家,然而那是一个信息安全交流群,Termux 的提问经常没有人回答,所以后来我就把博客所有的加群链接给去了。现在国光我单独建立了 1 个 Temux 群,加群链接藏在本文当中,是一个彩蛋,缘妙不可言,随缘入群吧。好了话不多说,教程开始了,希望本文可以帮助到大家。
3. Termux 简介
文档相关
下载地址
F-Droid 市场版本下载的版本比 Google Play (貌似 1 年多没有更新了)下载的要新,而且插件这块安装也很方便,有能力的朋友建议首先考虑下载 F-Droid 版本的,然后考虑 Google Play 版本,最后再考虑酷安的版本。
Termux 是一个 Android 下一个高级的终端模拟器,开源且不需要 root,支持 apt 管理软件包,十分方便安装软件包,完美支持 Python、 PHP、 Ruby、 Nodejs、 MySQL 等。随着智能设备的普及和性能的不断提升,如今的手机、平板等的硬件标准已达到了初级桌面计算机的硬件标准,用心去打造 DIY 的话完全可以把手机变成一个强大的极客工具。
初始化
第一次启动 Termux 的时候需要从远程服务器加载数据,然而可能会遇到这种问题:
Ubable to install
Termux was unable to install the bootstrap packages.
Check your network connection and try again.
这里的 Termux 官方远程的服务器地址
目前解决方法有两种:
- VPN 全局代理 (成功率很高)
- 如果你是 WiFi 的话尝试切换到运营商流量 (有一定成功率)
① F-Droid > ② Google Play > ③ 酷安 根据这个顺序尝试安装,如果不行再重复 1、2 步骤操作
4. 基本操作
基本操作还是要学习一下的,可以事半功倍。
1. 缩放文本
可以使用缩放手势来调整其字体大小。 对就是 「双指放大缩小」照片那样操作。
2. 长按屏幕
长按屏幕会调出显示菜单项(包括复制、粘贴、更多),方便我们进行复制或者粘贴:
More 菜单的说明如下:
├── COPY: # 复制
├── PASTE: # 粘贴
├── More: # 更多
├── Select URL: # 提取屏幕所有网址
└── Share transcipt: # 分享命令脚本
└── Reset: # 重置
└── Kill process: # 杀掉当前会话进程
└── Style: # 风格配色 需要自行安装
└── Keep screen on: # 保持屏幕常亮
└── Help: # 帮助文档
3. 会话管理
显示隐藏式导航栏,可以新建、切换、重命名会话 session 和调用弹出输入法:
同时在 Android 的通知栏中也可以看到当前 Termux 运行的会话数:
4. 常用按键
常用键是 PC 端常用的按键如: ESC 键、Tab 键、CTR 键、ALT 键,有了这些按键后可以提高我们日常操作的效率,所以 Termux 后面的版本默认都是显示这个扩展功能按键的。 (18 年的时候默认是不显示的):
打开和隐藏这个扩展功能按键目前有下面两种方法:
方法一
从左向右滑动,显示隐藏式导航栏,长按左下角的 KEYBOARD
方法二
使用 Termux 快捷键: 音量++Q 键 或者 音量++K 键
当然这个常用按键在 Termux 后面的版本也支持自定义的,详情见本文的「进阶配置」-「 定制常用按键」这一小节。
5. 基础知识
这些基础知识简单了解一下就可以了,Linux 用的多了就会慢慢熟悉理解了。
1. 快捷键表
Ctrl 键是终端用户常用的按键,但大多数触摸键盘都没有这个按键,因此 Termux 使用音量减小按钮来模拟 Ctrl 键。 例如,在触摸键盘上按音量减小 + L 就相当于是键盘上按 Ctrl + L 的效果一样,达到清屏的效果。
- Ctrl + A -> 将光标移动到行首
- Ctrl + C -> 中止当前进程
- Ctrl + D -> 注销终端会话
- Ctrl + E -> 将光标移动到行尾
- Ctrl + K -> 从光标删除到行尾
- Ctrl + U -> 从光标删除到行首
- Ctrl + L -> 清除终端
- Ctrl + Z -> 挂起(发送 SIGTSTP 到)当前进程
- Ctrl + alt + C -> 打开新会话(仅适用于 黑客键盘)
音量加键也可以作为产生特定输入的特殊键.
- 音量加 + E -> Esc 键
- 音量加 + T -> Tab 键
- 音量加 + 1 -> F1(音量增加 + 2 → F2… 以此类推)
- 音量加 + 0 -> F10
- 音量加 + B -> Alt + B,使用 readline 时返回一个单词
- 音量加 + F -> Alt + F,使用 readline 时转发一个单词
- 音量加 + X -> Alt+X
- 音量加 + W -> 向上箭头键
- 音量加 + A -> 向左箭头键
- 音量加 + S -> 向下箭头键
- 音量加 + D -> 向右箭头键
- 音量加 + L -> | (管道字符)
- 音量加 + H -> 〜(波浪号字符)
- 音量加 + U -> _ (下划线字符)
- 音量加 + P -> 上一页
- 音量加 + N -> 下一页
- 音量加 + . -> Ctrl + \(SIGQUIT)
- 音量加 + V -> 显示音量控制
- 音量加 + Q -> 切换显示的功能键视
- 音量加 + K -> 切换显示的功能键视图
快捷键用的熟悉的话也可以极大提高操作的效率。
2. 基本命令
Termux 除了支持 apt 命令外,还在此基础上封装了 pkg 命令,pkg 命令向下兼容 apt 命令。apt 命令大家应该都比较熟悉了,这里直接简单的介绍下 pkg 命令:
pkg search <query> # 搜索包
pkg install <package> # 安装包
pkg uninstall <package> # 卸载包
pkg reinstall <package> # 重新安装包
pkg update # 更新源
pkg upgrade # 升级软件包
pkg list-all # 列出可供安装的所有包
pkg list-installed # 列出已经安装的包
pkg show <package> # 显示某个包的详细信息
pkg files <package> # 显示某个包的相关文件夹路径
国光建议大家使用 pkg 命令,因为 pkg 命令每次安装的时候自动执行 apt update 命令,还是比较方便的。
3. 软件安装
除了通过上述的 pkg 命令安装软件以外,如果我们有 .deb 软件包文件,也可以使用 dpkg 进行安装。
dpkg -i ./package.de # 安装 deb 包
dpkg --remove [package name] # 卸载软件包
dpkg -l # 查看已安装的包
man dpkg # 查看详细文档
4. 目录结构
echo $HOME
/data/data/com.termux/files/home
echo $PREFIX
/data/data/com.termux/files/usr
echo $TMPPREFIX
/data/data/com.termux/files/usr/tmp/zsh
长期使用 Linux 的朋友可能会发现,这个 HOME 路径看上去和我们电脑端的不太一样,这是为了方便 Termux 提供的特殊的环境变量。
5. 端口查看
Android 10 以下版本
Andorid 10 以下的版本是可以正常使用 netstat 命令的,这样可以方便的查看端口开放信息:
# 查看所有端口
netstat -an
# 查看3306端口的开放情况
netstat -an|grep 3306
Android 10 版本
Andorid 10 版本的 Termux 下无法正常使用 netstat -an 命令,国光的解决方法是安装一个 nmap,然后扫描本地端口(弯道超车):
# 安装nmap端口扫描神器
pkg install nmap
# 扫描本地端口
nmap 127.0.0.1
使用 nmap 操作 纯属无奈之举,但是又不是不能用(源于:罗永浩名言 :-))
6. 进阶配置
要想使用体验好,进阶配置少不了。(单押)
1. 更换国内源
使用 pkg update 更新一下的时候发现默认的官方源网速有点慢,在这个喧嚣浮躁的时代,我们难以静下心等待,这个时候就得更换 成国内的 Termux 清华大学源了,加快软件包下载速度。
方法一:自动替换(推荐)
可以使用如下命令自动替换官方源为 TUNA 镜像源
pkg update 卡住的话多按几次回车 不要傻乎乎的等
sed -i 's@^\(deb.*stable main\)$@#\1\ndeb https://mirrors.tuna.tsinghua.edu.cn/termux/termux-packages-24 stable main@' $PREFIX/etc/apt/sources.list
sed -i 's@^\(deb.*games stable\)$@#\1\ndeb https://mirrors.tuna.tsinghua.edu.cn/termux/game-packages-24 games stable@' $PREFIX/etc/apt/sources.list.d/game.list
sed -i 's@^\(deb.*science stable\)$@#\1\ndeb https://mirrors.tuna.tsinghua.edu.cn/termux/science-packages-24 science stable@' $PREFIX/etc/apt/sources.list.d/science.list
pkg update
更换源几秒钟就可以执行完 pkg update 了,心里顿时乐开了花。
方法二:手动修改
请使用内置或安装在 Termux 里的文本编辑器,例如 vi / vim / nano 等直接编辑源文件,不要使用 RE 管理器等其他具有 ROOT 权限的外部 APP 来修改 Termux 的文件
编辑 $PREFIX/etc/apt/sources.list 修改为如下内容
# The termux repository mirror from TUNA:
deb https://mirrors.tuna.tsinghua.edu.cn/termux/termux-packages-24 stable main
编辑 $PREFIX/etc/apt/sources.list.d/science.list 修改为如下内容
# The termux repository mirror from TUNA:
deb https://mirrors.tuna.tsinghua.edu.cn/termux/science-packages-24 science stable
编辑 $PREFIX/etc/apt/sources.list.d/game.list 修改为如下内容
# The termux repository mirror from TUNA:
deb https://mirrors.tuna.tsinghua.edu.cn/termux/game-packages-24 games stable
安装基础工具
更换源之后来赶紧来下载安装一些基本工具吧,这些工具基本上是 Linux 系统自带的,因为 Termux 为了体积不过大,默认是没有带这些工具的,执行下面的命令来安装:
pkg update
pkg install vim curl wget git tree -y
2. 终端配色方案
该脚本主要使用了 zsh 来替代 bash 作为默认 shell,并且支持色彩和字体样式,同时也激活了外置存储,可以直接访问 SD 卡下的目录。主题默认为 agnoster,颜色样式默认为 Tango,字体默认为 Ubuntu。
执行下面这个命令确保已经安装好了 curl 命令
sh -c "$(curl -fsSL https://github.com/Cabbagec/termux-ohmyzsh/raw/master/install.sh)"
如果因为不可抗力的原因,出现 port 443: Connection refused 网络超时的情况,那么执行下面国光迁移到国内的地址的命令即可:
sh -c "$(curl -fsSL https://html.sqlsec.com/termux-install.sh)"
Android6.0 以上会弹框确认是否授权访问文件,点击始终允许授权后 Termux 可以方便的访问 SD 卡文件。
手机 App 默认只能访问自己的数据,如果要访问手机的存储, 需要请求权限,如果你刚刚不小心点了拒绝的话,那么可以执行以下命令来重新获取访问权限:
termux-setup-storage
脚本允许后先后有如下两个选项:
Enter a number, leave blank to not to change: 14
Enter a number, leave blank to not to change: 6
分别选择色彩样式和字体样式,重启 Termux app 后生效配置。不满意刚刚的效果,想要继续更改配色方案的话,可以根据下面命令来更改对应的色彩配色方案:
设置色彩样式:
输入 chcolor 命令更换色彩样式,或者执行 ~/.termux/colors.sh 命令
设置字体
运行 chfont 命令更换字体,或者执行 ~/.termux/fonts.sh 命令
3. 创建目录软连接
执行过上面的一键配置脚本后,并且授予 Termux 文件访问权限的话,会在家目录生成 storage 目录,并且生成若干目录,软连接都指向外置存储卡的相应目录:
创建 QQ 文件夹软连接
手机上一般经常使用手机 QQ 来接收文件,这里为了方便文件传输,直接在 storage 目录下创建软链接. QQ
ln -s /data/data/com.termux/files/home/storage/shared/tencent/QQfile_recv QQ
TIM
ln -s /data/data/com.termux/files/home/storage/shared/tencent/TIMfile_recv TIM
这样可以直接在 home 目录下去访问 QQ 文件夹,大大提升了文件操作的工作效率。
4. 定制常用按键
在 Termux v0.66 的版本之后我们可以通过 ~/.termux/termux.properties 文件来定制我们的常用功能按键,默认是不存在这个文件的,我们得自己配置创建一下这个文件。
下面做尝试简单配置一下这个文件:
# 新建并编辑配置文件
vim ~/.termux/termux.properties
内容为:
extra-keys = [ \
['ESC','|','/','HOME','UP','END','PGUP','DEL'], \
['TAB','CTRL','ALT','LEFT','DOWN','RIGHT','PGDN','BKSP'] \
]
如果无法创建这个文件,那么得首先新建一下这个目录
mkdir ~/.termux
修改完成保存文件后,重启 Termux app 生效配置:
可以直接输入特殊的字符串,例如上面的例子中的 | 就是一个字符串,此外 Termux 还 有封装了一些特殊按键,入上面例子中的 ESC 就是 Termux 自带的按键,完整的特殊按键表如下:
| 按键 | 说明 |
|---|---|
| CTRL | 特殊按键 |
| ALT | 特殊按键 |
| FN | 特殊按键 |
| ESC | 退出键 |
| TAB | 表格键 |
| HOME | 原位键 |
| END | 结尾键 |
| PGUP | 上翻页键 |
| PGDN | 下翻页键 |
| INS | 插入键 |
| DEL | 删除键 |
| BKSP | 退格键 |
| UP | 方向键 上 |
| LEFT | 方向键 左 |
| RIGHT | 方向键 右 |
| DOWN | 方向键 下 |
| ENTER | 回车键 |
| BACKSLASH | 反斜杠 \ |
| QUOTE | 双引号键 |
| APOSTROPHE | 单引号键 |
| F1~F12 | F1-F12 按键 |
上面列出的三个特殊键中的每一个最多只能在附加键定义中列出一次,超过次数将会报错。
下面是国光我自用的按键表:
extra-keys = [ \
['ESC','|','/','`','UP','QUOTE','APOSTROPHE'], \
['TAB','CTRL','~','LEFT','DOWN','RIGHT','ENTER'] \
]
实际效果如下:
5. zsh 主题配色
编辑家目录下的 .zshrc 配置文件
$ vim .zshrc
第一行可以看到,默认的主题是 agnoster 主题:
实际上这个主题也蛮酷的,如果你还想更换其他主题的话,那么在.oh-my-zsh/themes 目录下放着 oh-my-zsh 所有的主题配置文件,只要将默认的 agnoster 更换为其他的主题文件名即可。 下面是国光认为还不错的几款主题
主题比较多,国光这里就不列举了,感兴趣大家可以一个个尝试去看看。 当然如果你是个变态的话,可以尝试 random 主题,每打开一个会话配色主题都是随机的。
ZSH_THEME="random"
如果 oh-my-zsh 主题满足不了你们的话,Github 上还有很多高度定制的主题,感兴趣的朋友可以自己去折腾研究看看。
6. zsh 插件推荐
zsh 之所以受欢迎除了好看的配色以为,另一个原因就是强大的插件了。下面国光列举一款比较实用的插件的安装方法,更多强大的插件等待大家自己去探索。
autosuggestions
根据用户的平时使用习惯,终端会自动提示接下来可能要输入的命令,这个实际使用效率还是比较高的:
# 拷贝到 plugins 目录下
git clone git://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions
在 ~/.zshrc 中配置:
plugins=(其他的插件 zsh-autosuggestions)
输入 zsh 命令生效配置:
效果图
可以看到国光我只敲了一个 v 后面的命令就自动提示补全了,这时候只要按右方向键,在 Termux 里面的快捷键是 音量加 + D,就可以直接补全命令了。
7. 修改启动问候语
默认的启动问候语如下:
这个启动问候语在前期对于初学者有一定的帮助,但是随着你们 Termux 的熟悉,这个默认的问候语就会显得比较臃肿。编辑问候语文件可以直接修改启动显示的问候语:
vim $PREFIX/etc/motd
修改完的效果如下:
本文版本归国光所有 转载注明出处哦
这样启动新的会话的时候看上去就会简洁很多。什么你也想要这个效果? 呐~下面是国光自己生成的,可以直接复制粘贴:
_____
|_ _|__ _ __ _ __ ___ _ ___ __
| |/ _ \ '__| '_ ` _ \| | | \ \/ /
| | __/ | | | | | | | |_| |> <
|_|\___|_| |_| |_| |_|\__,_/_/\_\
8. 超级管理员身份
实际上 Termux 不需要 root 权限也可以折腾各种各样的操作的,大家不必对 root 抱有啥幻想,本文的操作基本上没有涉及到手机要用到 root 的地步。
手机没有 root
利用 proot 可以为手机没有 root 的用户来模拟一个 root 的环境,这里主要是经典的 Linux 文件系统布局上的模拟。
pkg install proot -y
然后终端下面输入:
termux-chroot
即可模拟 root 环境,该环境模仿 Termux 中的常规 Linux 文件系统,但是不是真正的 root。
输入 exit 可回到普通用户的文件系统。
手机已经 root
安装 tsu,这是一个 su 的 Termux 版本,是一个真正的 root 权限,用来在 Termux 上替代 su,操作不慎可能对手机有安全风险,因为官方封装了,所以安装也很简单:
pkg install tsu -y
然后终端下面输入:
tsu
即可切换 root 用户,这个时候会弹出 root 授权提示,给予其 root 权限,效果图如下:
18年的老图了 将就着看吧
在管理员身份下,输入 exit 可回到普通用户身份。不过本文没有设计到 root 权限的操作,一些底层的工具可能才会需要,考虑到 root 的不安全性 和 那些工具的冷门性,国光这里就没有继续拓展。
9. 备份与恢复
评论区有网友提问 Termux 有办法打个镜像或者快照吗?😂 怕折腾坏了。也有网友分享了官方 WiKi 已经更新了备份和恢复的方法了,原文
下面国光简单搬运过来:
强烈建议在复制粘贴之前了解对应命令的作用。误操作可能会不可挽回地损坏您的数据,数据无价,谨慎操作。
备份
确保已经获取了存储访问的权限,如果没有获取的话,执行以下命令来重新获取访问权限:
termux-setup-storage
然后去 Termux 根目录下:
cd /data/data/com.termux/files
备份配置文件为 termux-backup.tar.gz:
tar -zcf /sdcard/termux-backup.tar.gz home usr
备份应该完成,没有任何错误。除非用户滥用 root 权限,否则不应有任何权限拒绝。
警告:不要将备份文件存储在 Termux 私有目录中,因为从设置中清除 Termux 数据后,这些目录也将被删除。(类似于 Windows 准备重新安装系统,却把资料备份存储在 C 盘一个道理)
这些私有目录看上去类似如下的目录:
/data/data/com.termux
/sdcard/Android/data/com.termux
/storage/XXXX-XXXX/Android/data/com.termux
${HOME}/storage/external-1
珍爱数据,远离私有目录。
恢复
这里假设您已将 Termu 之前备份的 home 和 usr 目录备份到同一个备份文件中。请注意,在此过程中所有文件都将被覆盖现有的配置:
确保已经获取了存储访问的权限,如果没有获取的话,执行以下命令来重新获取访问权限:
termux-setup-storage
然后去 Termux 根目录下:
cd /data/data/com.termux/files
解压提取之前备份的内容,覆盖现存的文件并删除之前的备份文件:
tar -zxf /sdcard/termux-backup.tar.gz --recursive-unlink --preserve-permissions
操作完成重启 Termux 即可恢复数据。
7. 开发环境
Termux 支持的开发环境很强,可以完美的运行 C、Python、Java、PHP、Ruby 等开发环境,建议读者朋友们选择自己需要的开发环境折腾。
1. 编辑器
写代码前总得折腾一下编辑器,毕竟磨刀不误砍柴工嘛。Termux 支持多种编辑器,完全可以满足日常使用需求。
Emacs
据说 Emacs 是神的编辑器,国光我这种小菜鸡还不会使用哎,但是 Termux 官方已经封装好了 Emacs 了,我们安装起来就会简单很多:
pkg install emacs
nano
nano 是一个小而美的编辑器。具有如下:打开多个文件,每行滚动,撤消 / 重做,语法着色,行编号等功能
同样安装起来也很简单:
pkg install nano
Vim
Vim 被称为编辑器之神,基本上 Linux 发行版都会自带 Vim,这个在前文基本工具已经安装了,如果你没有安装的话,可以使用如下命令安装:
pkg install vim
并且官方也已经封装了 vim-python,对 Python 相关的优化。
pkg install vim-python
解决汉字乱码
如果你的 Vim 打开汉字出现乱码的话,那么在家目录 (~) 下,新建.vimrc 文件
vim .vimrc
添加内容如下:
set fileencodings=utf-8,gb2312,gb18030,gbk,ucs-bom,cp936,latin1
set enc=utf8
set fencs=utf8,gbk,gb2312,gb18030
然后 source 下变量:
source .vimrc
效果图
Vim 配色
Termux Vim 自带了如下的配色:
ls /data/data/com.termux/files/usr/share/vim/vim82/colors
desert.vim morning.vim shine.vim blue.vim elflord.vim murphy.vim slate.vim darkblue.vim evening.vim pablo.vim industry.vim peachpuff.vim torte.vim delek.vim koehler.vim ron.vim zellner.vim
配色可以自己一个个尝试一下,还是向上面的汉字乱码那样,编辑家目录下的.vimrc 文件:
vim ~/.vimrc
新增如下内容:
set nu " 显示行号
colorscheme desert " 颜色主题
syntax on " 打开语法高亮
下面是国光随便找的几个颜色主题效果,感兴趣的朋友可以自己一个个尝试:
2. Apache
Apache 是一个开源网页服务器软件,由于其跨平台和安全性,被广泛使用,是最流行的 Web 服务器软件之一。
安装 Apache
pkg install apache2
启动 Apache
apachectl start
然后浏览器访问: http://127.0.0.1:8080 访问是否成功启动:
Termux 自带的 Apache 的网站默认路径为:
$PREFIX/share/apache2/default-site/htdocs/index.html
停止 Apache
apachectl stop
重启 Apache
apachectl restart
3. Apache 解析 PHP
既然 Apache、PHP、MySQL 都可以成功安装的话,那么现在只要配置好 Apache 解析 PHP 之后就可以打造一个 Android 平台上的 LAMPP 平台了,配置本小节的内容得确保 Termux 已经配置好了 PHP 开发环境,没有配置好的可以参加下面 PHP 小节部分。
安装 php-apache
默认的 Apache 是无法解析 PHP 的,我们需要安装相应的包:
pkg install php-apache
配置 Apache
Termux 上的 Apache 默认配置文件的路径为:
$PREFIX/etc/apache2/httpd.conf
直接编辑配置文件:
vim /data/data/com.termux/files/usr/etc/apache2/httpd.conf
配置文件里面搜索 PHP 没有相关的模块,所以需要我们手动添加 PHP7 的模块:
LoadModule php7_module /data/data/com.termux/files/usr/libexec/apache2/libphp7.so
并在刚刚这个语句下方添加解析器,内容如下:
<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>
接着继续往下找配置文件里面配置默认首页的地方,我们添加 index.php 到默认首页的规则里面:
<IfModule dir_module>
DirectoryIndex index.php index.html
</IfModule>
这表示网站目录的默认首页是 index.php,如果没有 index.php 系统会自动寻找 index.html 做为默认首页了。
修改完 Apache 的配置文件后,记得使用 apachectl restart 重启 Apache 服务,然后这个时候回发现我们重启居然报错了:
Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe. You need to recompile PHP.
AH00013: Pre-configuration failed
不要慌问题不大,下面来解决这个问题
解决 Apache PHP 报错
先找到如下行:
LoadModule mpm_worker_module libexec/apache2/mod_mpm_worker.so
给他注释掉为:
#LoadModule mpm_worker_module libexec/apache2/mod_mpm_worker.so
然后找到如下行:
#LoadModule mpm_prefork_module libexec/apache2/mod_mpm_prefork.so
取消注释:
LoadModule mpm_prefork_module libexec/apache2/mod_mpm_prefork.so
最终的示例图如下:
解析 PHP 测试
在 Apache 的网站根目录下,创建一个 index.php ,测试一下 phpinfo () 函数能否正常运行:
echo '<?php phpinfo(); ?>' > $PREFIX/share/apache2/default-site/htdocs/index.php
然后浏览访问: http://127.0.0.1:8080 查看效果:
Termux 官方封装了 Clang,他是一个 C、C++、Objective-C 和 Objective-C++ 编程语言的编译器前端。
4. C
安装 clang
pkg install clang
编译测试
clang 在编译这一块很强大,感兴趣的朋友可以去网上查看详细的教程,国光这里只演示基本的 Hello World 使用。写一个 Hello World 的 C 程序,如下 hello.c:
#include <stdio.h>
int main(){
printf("Hello World")
return 0;
}
编辑完成后,使用 clang 来编译生成 hello 的可执行文件:
clang hello.c -o hello
效果图
5. Java
Termux 早期原生编译 JAVA 只能使用 ecj (Eclipse Compiler for Java) 和 dx 了,然后使用 Android 自带的 dalvikvm 运行。后面 Termux 官方也封装了 openjdk-17 这样安装起来就更方便了。
还有如果想要完整体验 JAVA 环境的话,另一个方法就是 Termux 里面安装一个完整的 Linux 系统,然后在 Linux 里面运行 Java,安装系统部分下面文章会详细介绍,这种思路也是可以的。
Openjdk-17
pkg update
pkg install openjdk-17
当然这个包可能不太稳定,遇到相关问题可以去 Termux 官方的项目下提交 issue:
https://github.com/termux/termux-packages/issues?q=openjdk
https://github.com/termux/termux-packages/issues?q=java
ECJ
安装编译工具
pkg install ecj dx -y
国光这里只演示基本的 Hello World 使用。写一个 Hello World 的 JAVA 程序,如下 HelloWorld.java:
public class HelloWorld {
public static void main(String[] args){
System.out.println("Hello Termux");
}
}
编译生成 class 文件
ecj HelloWorld.java
编译生成 dex 文件
dx --dex --output=hello.dex HelloWorld.class
使用 dalvikvm 运行
格式规范如下:dalvikvm -cp dex文件名 类名
dalvikvm -cp hello.dex HelloWorld
效果图
6. MariaDB (MySQL)
MariaDB 是 MySQL 关系数据库管理系统的一个复刻,由社区开发,有商业支持,旨在继续保持在 GNU GPL 下开源。开发这个分支的原因之一是:甲骨文公司收购了 MySQL 后,有将 MySQL 闭源的潜在风险,因此社区采用分支的方式来避开这个风险。
安装 MariaDB
Termux 官方也封装了 MariaDB,所以安装起来很方便:
pkg install mariadb