当前位置:   article > 正文

Termux详细教程!_termux教程,2024网络安全面试题_termux编译dex

termux编译dex

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新网络安全全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上网络安全知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip204888 (备注网络安全)
img

正文

DirectoryIndex index.php index.html ```

这表示网站目录的默认首页是 index.php,如果没有 index.php 系统会自动寻找 index.html做为默认首页了。

修改完 Apache 的配置文件后,记得使用 apachectl restart 重启 Apache 服务,然后这个时候回发现我们重启居然报错了:

verilog

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
  • 1
  • 2

不要慌问题不大,下面来解决这个问题

解决 Apache PHP 报错

先找到如下行:

properties

LoadModule mpm_worker_module libexec/apache2/mod_mpm_worker.so
  • 1

给他注释掉为:

properties

#LoadModule mpm_worker_module libexec/apache2/mod_mpm_worker.so
  • 1

然后找到如下行:

properties

#LoadModule mpm_prefork_module libexec/apache2/mod_mpm_prefork.so
  • 1

取消注释:

properties

LoadModule mpm_prefork_module libexec/apache2/mod_mpm_prefork.so
  • 1

最终的示例图如下:

解析 PHP 测试

在 Apache 的网站根目录下,创建一个 index.php ,测试一下 phpinfo() 函数能否正常运行:

bash

echo '<?php phpinfo(); ?>' > $PREFIX/share/apache2/default-site/htdocs/index.php
  • 1

然后浏览访问: http://127.0.0.1:8080 查看效果:

OK

OK

C

Termux 官方封装了 Clang,他是一个 C、C++、Objective-C 和 Objective-C++ 编程语言的编译器前端。

安装 clang

bash

pkg install clang
  • 1
编译测试

clang 在编译这一块很强大,感兴趣的朋友可以去网上查看详细的教程,国光这里只演示基本的 Hello World 使用。写一个 Hello World 的 C 程序,如下 hello.c

c

#include <stdio.h>

int main(){
  printf("Hello World")
  return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

编辑完成后,使用 clang 来编译生成 hello 的可执行文件:

bash

clang hello.c -o hello
  • 1

效果图

效果图

Java

Termux 早期原生编译 JAVA 只能使用 ecj (Eclipse Compiler for Java) 和 dx 了,然后使用 Android 自带的 dalvikvm 运行。后面 Termux 官方也封装了 openjdk-17 这样安装起来就更方便了。

还有如果想要完整体验 JAVA 环境的话,另一个方法就是 Termux 里面安装一个完整的 Linux 系统,然后在 Linux 里面运行Java,安装系统部分下面文章会详细介绍,这种思路也是可以的。

Openjdk-17

bash

pkg update
pkg install openjdk-17
  • 1
  • 2

当然这个包可能不太稳定,遇到相关问题可以去 Termux 官方的项目下提交 issue:

ECJ

安装编译工具

bash

pkg install ecj dx -y
  • 1

国光这里只演示基本的 Hello World 使用。写一个 Hello World 的 JAVA 程序,如下 HelloWorld.java:

java

public class HelloWorld {
    public static void main(String[] args){
        System.out.println("Hello Termux");
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5

编译生成 class 文件

bash

ecj HelloWorld.java
  • 1

编译生成 dex 文件

bash

dx --dex --output=hello.dex HelloWorld.class
  • 1

使用 dalvikvm 运行

格式规范如下:dalvikvm -cp dex文件名 类名

bash

dalvikvm -cp hello.dex HelloWorld
  • 1

效果图

效果图

MariaDB (MySQL)

MariaDB 是 MySQL 关系数据库管理系统的一个复刻,由社区开发,有商业支持,旨在继续保持在 GNU GPL下开源。开发这个分支的原因之一是:甲骨文公司收购了 MySQL 后,有将 MySQL 闭源的潜在风险,因此社区采用分支的方式来避开这个风险。

安装 MariaDB

Termux 官方也封装了 MariaDB,所以安装起来很方便:

bash

pkg install mariadb
  • 1

这里基本上会安装很顺利,但是早期用户可能出现安装失败的情况,如果安装失败的话,这个时候手动在配置目录下创建my.cnf.d文件夹即可:

bash

$ cd /data/data/com.termux/files/usr/etc/
$ mkdir my.cnf.d
  • 1
  • 2
初始化数据库

早期的 Termux 安装完 MySQL是需要初始化数据库的,新版本在安装时候就已经初始化了数据库

bash

mysql_install_db
  • 1

2020年4月19日:国光今天安装的 MySQL 发现已经存在 mysql.user 表了,无需初始化:

启动 MySQL 服务

因为正常启动完成后,MySQL 这个会话就一直存活,类似与 Debug 调试一样,此时使用Ctrl + C -> 中止当前进程也无济于事,体验式就一点都不优雅,所以这里国光使用Linux自带的nohup命令将其放到后台启动。

bash

nohup mysqld &
  • 1

图片上这个17115此时就是mysqld的进程PID号,我们使用如下命令验证一下是否正确:

bash

ps aux|grep mysql
  • 1

可以看到果然是进程的 PID 号:

至于 nohup 运行的提示

ini

nohup: ignoring input and appending output to `nohup.out'
  • 1

这个是正常现象,无伤大雅,Termux 下就这样将就着用吧。

停止 MySQL 服务

Termux 下没有好的办法退出 MySQL 服务,只能强制杀掉进程了,使用如下命令格式可以轻松杀掉进程:

bash

kill -9 PID
  • 1

成功kill掉

成功kill掉

当然每次查看进程的PID号,再杀掉进程有点繁琐了,实际上这一步可以直接这样操作:

bash

kill -9 `pgrep mysql`
  • 1

Awesome ! 优雅!

默认的两个用户

用户登录的前提是 MySQL 服务在后台运行,如果你按照上一小节操作把 MySQL kill 掉的话,请重新启动一下 MySQL 服务

新版本的 Termux 安装初始化数据库的时候包含两个高权限用户,一个是无法访问的 root 用户

提示拒绝root登录

提示拒绝root登录

提示拒绝root登录

另一个用户就是 Termux 的用户名,默认密码为,我们来登录看看:

bash

mysql -u $(whoami)
  • 1

可以成功登录 并执行SQL语句

可以成功登录 并执行SQL语句

可以成功登录 并执行 SQL 语句

那么这个无法登录的 root 用户该怎么办呢 ?不要着急 继续往下看

修改 root 密码

老版本的 Termux 的直接使用mysql_secure_installation可以设置密码,但是新版本的安全策略变更了 我们在设置密码的时候回提示当前密码不正确,所以这条路行不通了。

这里我们只能使用 MySQL 的另一个用户名,即 Termux 用户名登录,然后来修改 root 的密码,使用如下命令修改 root 密码:

bash

# 登录 Termux 用户
mysql -u $(whoami)

# 修改 root 密码的 SQL语句
use mysql;
set password for 'root'@'localhost' = password('你设置的密码');

# 刷新权限 并退出
flush privileges;
quit; 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

细节图片

细节图片

OK! 如何和图片上差不的效果,那么修改 root 密码就成功了。

root 用户登录

修改完密码之后我们就可以美滋滋地使用 root 用户来登录了:

bash

mysql -u root -p
Enter password: xxxxx(这里输入你的密码)
  • 1
  • 2

远程登录 MySQL

使用 ip a 后查看 IP 地址后,尝试电脑端远程访问 Termux 的数据库:

发现默认是无法成功连接的,这个时候我们需要到数据库手动开启 root 用户的远程访问权限:

这里的 P@ssw0rd 是我的 root 密码

sql

grant all on *.* to root@'%' identified by 'P@ssw0rd' with grant option;
flush privileges;
  • 1
  • 2

执行完成后 尝试 PC 端远程过去看看:

Nginx

Nginx 是一个高性能的 Web 和反向代理服务器,Nginx 用的熟悉的话,下面搭建各种网站也就轻而易举了。

安装 Nginx

Termux 安装 Nginx 也很简单,一条命令即可:

bash

pkg install nginx
  • 1

安装完成后,国光的习惯是查看一下版本信息:

1.17.10 版本

1.17.10 版本

测试 Nginx

测试检查 Nginx 的配置文件是否正常:

bash

nginx -t
  • 1

现在测试肯定是 OK 的,这个多用于我们修改完 Nginx 的配置文件后的检查。

启动 Nginx

早期版本的 Termux 需要在termux-chroot 环境下才可以成功启动 Nginx ,新版本的 Termux 可以直接启动,还是很方便的:

bash

nginx
  • 1

Termux 在 Nginx 上默认运行的端口号是 8080, 使用pgrep命令也可以查看 Nginx 进程相关的 PID 号。

然后手机本地直接访问http://127.0.0.1:8080 查看 Nginx 是否正常启动:

重启 Nginx

一般当修改完 Nginx 相关的配置文件时,我们需要重启 Nginx,使用如下命令即可重启:

bash

nginx -s reload
  • 1
停止 Nginx

方法一 原生停止

bash

nginx -s stop
  • 1

或者

bash

nginx -s quit
  • 1

quit 是一个优雅的关闭方式,Nginx 在退出前完成已经接受的连接请求。Stop 是快速关闭,不管有没有正在处理的请求。

方法二 杀掉进程

只需三番钟,里造会干我一样,爱象节款游戏 扯远了,只需要 1 条命令,即可优雅的终止掉 Nginx 服务:

bash

kill -9 `pgrep nginx`
  • 1

貌似手机党 并不好敲 这个 ` 符号 =,= ,如果实在敲不出来,那就分两步走吧:

bash

# 查询 nginx 进程相关的 PID 号
pgrep nginx

# 杀掉 查询出的 PID号进程
kill -9 PID
  • 1
  • 2
  • 3
  • 4
  • 5

Nginx 解析 PHP

Termux 下的 Nginx 解析 PHP 这里单独拿出一级标题来叙述,成功解析的话,下面安装 wordpress等 PHP网站就会轻松很多。

安装 php-fpm

Nginx 本身不能处理 PHP,它只是个 Web 服务器,当接收到 PHP 请求后发给 PHP 解释器处理。Nginx 一般是把请求转发给 fastcgi 管理进程处理,PHP-FPM 是一个PHP FastCGI管理器,所以这里得先安装它:

bash

pkg install php-fpm
  • 1

安装完成顺便检查一下版本信息吧:

配置 php-fpm

编辑 php-fpm 的配置文件 www.conf

bash

vim $PREFIX/etc/php-fpm.d/www.conf
  • 1

定位搜索 listen = 找到

ini

listen = /data/data/com.termux/files/usr/var/run/php-fpm.sock
  • 1

将其改为:

ini

listen = 127.0.0.1:9000
  • 1
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/997962
推荐阅读
相关标签
  

闽ICP备14008679号