开头:之前做了个文档转换的小项目,想部署在安卓手机上,自己可以随时看看,所以才有了下面这篇文章,内容或有瑕疵,望请批正。文末放我自己部署文档转换网址,仅供大家参考,谢谢!

选择:Termux 还是 Linux Deploy 还是 AidLinux

我自己的情况就是:linux deploy安装ram方式以后,每次重启手机后就无法启动ssh(水平有限解决不了就放弃了);aidlinux安装了商店一打开就闪退,听说是root过了才会这样,当然网上有root过以后怎么安装aidlinux的方法,我偷懒没去深究,就放弃了。最后选择了Termux

Termux安装方式

1、下载F-Droid这个软件,然后在这个软件商城里面搜索Termux,安装就行。

新安装的Termux配置可以参考国光大大的教程:Termux 高级终端安装使用配置教程 | 国光 (sqlsec.com)

首先先说明一下,Termux不管root没root过都能用,root过的可以使用tsu命令转成root用户(谨慎操作),没root的使用termux-chroot。

#没执行termux-chroot命令之前,你打开Termux后pwd的目录是这样的:
~ $ pwd
/data/data/com.termux/files/home
#而执行termux-chroot命令之后,pwd的目录就变成这样:
~ $ termux-chroot
~ $ pwd
/home

注意!

我个人的建议是,像nginx、redis、或你的jar包这些的运行最好是在执行termux-chroot命令切换之后再跑起来,因为像我写的文档转换,就会因为找不到系统字体而报错无法进行转换(无论是把windows字体迁过来后也一样报错),而且整个环境在路径上,有时候你不得不使用绝对路径加上前面这串/data/data/com.termux/files/...才能识别,而执行过termux-chroot之后,你的java程序里面写/home是完全能够识别的,而不会报找不到路径这种错...

Termux版常用软件安装

安装之前需要注意的事情:

  1. 首先先更新系统
apt update
apt upgrade

2、我们先记住一个命令:pkg files xxx 这个命令可以看你安装后的软件的路径,包括配置文件等,有利于你自己查找并修改配置文件的内容。

termux的方便之处就在于你安装即配置,前提条件是你安装已有的,比如jdk17,一个安装命令就能安装并配置系统环境变量,但如果你安装的是jdk8或者其它非17的版本,你需要自己去配置环境变量(看个人)

3、特别注意:我以下的启动方式都是在执行termux-chroot命令之后

nginx安装

输入直接安装

pkg install nginx

**输入可以直接启动 ** nginx

安装完成后,可以修改配置文件,查看安装的位置 pkg files nginx

JDK8安装

aarch版本

Java Downloads | Oracle

jdk-8u351-linux-aarch64.rpm

JDK17安装

apt install openjdk-17

直接可以查看java版本

java -version

Redis安装

在Termux上有相应的ARM版本的Redis安装包或二进制文件,并且很好安装

1、安装Redis

$ pkg install redis

2、&是以守护进程方式启动redis服务,启动后可以ctrl+c关闭,并不会关闭程序

$ redis-server &

3、登录redis客户端

$ redis-cli
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> exit

4、设置登录口令(密码)

Redis没有设置口令时,如果向公网暴露6379端口,就很有可能被黑客劫持

设置密码的方式有两种:第一种是登录客户端设置

127.0.0.1:6379> config get requirepass
1) "requirepass"
2) "" //默认为空
127.0.0.1:6379> config set requirepass [passwd] //pwd就是设置的口令
127.0.0.1:6379> ping //未验证口令进行心跳反馈
(error) NOAUTH Authentication required
127.0.0.1:6379> auth [passwd] //验证口令

第二种是在配置文件中修改

Windows在安装目录下打开redis.windows.conf文件,大约在443行

Linux在/usr/etc/目录下打开redis.conf文件,大约在507行

找到requirepass字段,取消注释,将后面的字符串修改为要设置的口令

requirepass [passwd]

保存退出

关闭redis,指定配置文件重新启动, 重新登录客户端验证口令

$ redis-server /etc/redis.conf &
$ redis-cli
127.0.0.1:6379> auth [passwd]
OK
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> exit

可以带口令/IP/端口登录客户端

$ redis-cli -h [host] -p [port] -a [passwd]
127.0.0.1:[port]> ping
PONG
127.0.0.1:[port]> exit

MySql安装

MySQL数据库没有在ARM平台的二进制安装文件/源码包,而其重要分支也是目前主要的MySQL替代产品MariaDB有在手机等ARM平台的安装包/源码包.

下面开始在安卓手机Termux终端中安装数据库

1、安装MariaDB(即mysql)

pkg install mariadb

切换到etc目录查看是否有my.cnf.d目录

$ cd /data/data/com.termux/files/usr/etc
$ ls

没有就新建一个

$ mkdir my.cnf.d

配置MariaDB

$ mysql_install_db

如果提示mysql.user table已经存在,则配置

$ mysql_upgrade

启动MySQL/MariaDB服务

$ mysqld &

$ mysqld_safe -u root &

mysqld是mysql数据库的守护进程,而mysqld_safe相当于是mysqld的守护进程,&是让进程后台运行,不占用终端,如果没加,Ctrl+C等方式退出进程重新加上&,或另起一个终端.

1、登录数据库

由于MariaDB默认没有密码,提示输密码时直接回车

$ mysql -uroot -p

或者不加参数

$ mysql

$ mariadb

2、查看数据库是否有'mysql'这个数据库

MariaDB [(none)]> show databases;

(如果没有则请使用上面的命令重新安装)

3、再看mysql数据库里是由有'user'这个表

MariaDB [(none)]> use mysql;
MariaDB [(mysql)]> show tables;

(有mysql数据库就一般有user表,没有也重新安装)

4、 查看表信息

MariaDB [(mysql)]> select * from user;

可以看到安装后有两个用户,'root'和'a0_****',两个用户默认都没有密码.

如果密码执行mysql_secure_installation命令更新root密码报错:Access denied for user 'root'@'localhost'

就先把mysqld的进程杀了,重启执行:mysqld --skip-grant-tables &

如果要输入密码,直接回车,然后切换到mysql数据库:use mysql

然后执行修改密码的命令:alter user 'root'@localhost identified by '你的密码';

如果报错: The MariaDB server is running with the --skip-grant-tables option so it cannot execute this statement,则执行flush privileges,然后再重新执行上面的修改密码的命令,再flush privileges;就可以了

5、为用户设置密码

MariaDB [(mysql)]> alter user 'root'@'localhost' identified by 'xxx';

6、设置远程登录的权限

设置脚本开机自启动ssh

输入命令编辑

vi ~/.bash_profile

如果出现syntax error near unexpected token `fi',则有可能编码有问题。使用cat -v ~/.bash_profile命令可以看到每一行的结尾都带着^M 明显不对,因为^M是window的换行符,不是linux的

vi ~/.bash_profile
:set ff #查看发现是dos
:set ff=unix #设置为unix模式
:wq #保存退出即可
if pgrep -x "sshd" >/dev/null
then
echo "ssh-service运行中..."
else
sshd >/dev/null &
echo "ssh-service已开启..."
fi

注意,.bashrc脚本是每当有一个新会话就会执行里面的命令,而.bash_profile脚本是一个用户登录就会执行,不管后面有多少个新会话使用这个用户都不会再执行

定时执行脚本cronie

这个定时执行的脚本我是用来定时巡检自己的软件有没有宕机的,如果有宕机了则重新启动这样

1、安装 pkg install cronie

2、指令集 crond [options]

 -h         print this message打印此消息
-i deamon runs without inotify support在没有inotify支持的情况下运行
-m <comm> off, or specify preferred client for sending mails在没有inotify支持的情况下运行
-n run in foreground在前台运行
-f run in foreground, the same as -n在前台运行,与-n相同
-p permit any crontab允许任何crontab
-P inherit PATH from environment instead of using default value of "/data/data/com.termux/files/usr/bin"从环境继承PATH,而不是使用默认值
-s log into syslog instead of sending mails我们登录syslog而不是发送邮件
-V print version and exit打印版本并退出
-x <flag> print debug information打印调试信息
Usage:
crontab [options] file
crontab [options]
crontab -n [hostname]
Options:
-e edit user's crontab
-l list user's crontab
-r delete user's crontab
-i prompt before deleting
-T <file> test a crontab file syntax
-V print version and exit
-x <mask> enable debugging

3、常用命令,在crontab命令编辑界面输入crontab命令:  * * * * * date >> /home/date1.txt   (前面五个* * * * *表示时间是每隔一分钟 date命令就是得到当前的系统时间, >> 命令表示将结果累加到文件后面 > 命令则表示将结果覆盖文件 )

#添加定时执行任务按ctrl+其它提示键操作、编辑内容
crontab -e
#查看已添加的任务调度列表
crontab -l
#开启
crond start

小结

感谢大家的观看,最后在这里附上我写的免费文档转换的小网站(希望可爱的你不要攻击我的小网站,拜托/(ㄒoㄒ)/~~) http://www.mitchconvert.top





安装部署Java项目的更多相关文章

  1. RedHat Linux 5.5安装JDK+Tomcat并部署Java项目

    与大家分享下RedHat Linux 5.5安装JDK+Tomcat并部署Java项目的步骤,希望对大家有用. 1.下载并安装jdk 虚拟机中安装RedHat Linux 5.5 64位企业版, 这里 ...

  2. tomcat部署java项目

    tomcat部署java项目 1.启动tomcat 进入到tomcat安装目录下的bin #cd /opt/tomcat/bin #./startup.sh // 执行重启命令 2.重建一个新目录导入 ...

  3. windows一键部署java项目

    windows一键部署java项目 因为公司需求,要在windows的环境上做一键部署启动java项目,同时还要支持从安装界面动态修改配置文件的IP地址.就像安装软件一样将jdk,tomcat,mys ...

  4. jenkins部署java项目,脚本文件放在远程仓库中 和jar一起打包(六)

    jenkins部署java项目到远程linux上,脚本文件和项目一起上传到gogs上,直接执行gogs上的脚本文件来执行项目 (1)新建maven项目 pom.xml的配置 <project x ...

  5. 通过Jenkins部署java项目

    部署java项目-创建私有仓库 Jenkins大多数情况下都是用来部署Java项目,Java项目有一个特点是需要编译和打包的,一般情况下编译和打包都是用maven完成,所以系统环境中需要安装maven ...

  6. 阿里云部署java项目

    第一步:注册阿里云账号(如果有请看第二步) 1.百度搜索阿里云,点击进入阿里云官网 2.点击右上角免费注册 3.进入注册页面,按照要求填写信息 4.注册完成后登陆 登陆之后首先购买阿里云esc与服务器 ...

  7. git jenkins 部署java项目

    1.Java项目部署基本概述:  1.什么是Java项目?  2.为什么Java项目需要使用Maven编译?  3.手动实现Java项目构建?  4.手动实现Java项目架构图? 源码包   jar包 ...

  8. Win10搭建Jenkins部署Java项目(本机和远程Win10部署)

    目录 一.前言&背景 二.环境准备 三.插件安装 四.全局配置 Maven JDK Git Maven 五.新建项目并配置 新建项目 配置 1.Discard old builds 2.Thi ...

  9. 关于weblogic部署Java项目的包冲突问题

    我们可能会用各种应用服务部署我们的Java应用,比如Tomcat.WAS.weblogic等.Tomcat和WAS可能会比较少遇到一些奇怪的问题,但是用weblogic部署项目则经常遇到一些比如包冲突 ...

  10. 如何在tomcat安装部署php项目

    java开发者都知道,tomcat是用来部署java web项目的.前几天老k偶然得知PHP/Java Bridge,通过它可以实现在jsp和php之间共享session,详见<如何实现jsp和 ...

随机推荐

  1. python实现多接口翻译软件

    本实验用pyqt5做了一个小软件,里面使用了市面上主流的6种翻译软件接口:谷歌.百度.有道.金山词霸.腾讯.必应,界面如图所示: 以下是程序代码: import time,sys,os,hashlib ...

  2. Vitepress搭建组件库文档(上)—— 基本配置

    在 vite 出现以前,vuepress 是搭建组件库文档不错的工具,支持以 Markdown 方式编写文档.伴随着 vite 的发展,vitepress 已经到了 1.0.0-alpha.22 版本 ...

  3. 《上传那些事儿之Nest与Koa》——文件格式怎么了!

    转载自:juejin - 马睿不想说话 概要 本文主要针对在使用node作为服务端接口时,前端上传上传文件至node作为中转,再次上传至oss/cdn的场景.以及针对在这个过程中,需要对同一个文件进行 ...

  4. DelCrLfSpace V0.9

    开发界面 Option Explicit 'SourceTextBox 是上面的源框 'ResultTextBox 是下面的处理预览框 'Form KeyPreview = True Private ...

  5. 从BeanFactory源码看Bean的生命周期

    下图是我搜索"Spring Bean生命周期"找到的图片,来自文章--Spring Bean的生命周期 下面,我们从AbstractAutowireCapableBeanFacto ...

  6. LAPM概述及配置

    一.LAMP概述 1.1LAMP的概念 LAMP架构是目前成熟的企业网站应用模式之一,指的是协同工作的一整套系统和相关软件,能够提供动态web站点服务及其应用开发环境 LAMP是一个缩写词,具体包括L ...

  7. Installing harbor-2.6.2 on openEuler

    一.Installing harbor-2.6.2 on openEuler 1 地址 https://goharbor.io https://github.com/goharbor/harbor 2 ...

  8. JSP利用AJAX实现页面即时校验验证码

    在JSP页面实现验证码校验文章中当时是使用的Servlet类来进行的验证码校验,但是这种方式并不能即时校验,在正常情况下都是直接在用户输入之后就进行校验,这样对用户来说很方便的. AJAX 即&quo ...

  9. python选课系统项目详解

    选课系统项目详解 选课系统简介及分析 选课系统架构设计分析 选课系统目录设计 管理员视图 注册 登录 创建学校 创建课程 创建讲师 学生视图 注册 登录 选择学校 选择课程 查看分数 教师视图 登录 ...

  10. UEFI引导linux启动过程的顺序,及修改办法

    注意这里我说的是 uefi 启动 启动过程顺序 正常安装完一个Linux系统,硬盘会被分成俩个分区,一块是 fat32 文件系统(启动项存放位置),一块是ext4 文件系统(也就是系统真正的安装位置) ...