目录
[2.1 apt](#2.1 apt)
[2.2 JDK](#2.2 JDK)
[2.3 MySQL](#2.3 MySQL)
1.创建xshell项目



2.搭建Java部署环境
2.1 apt
apt(Advanced PackagingTool),Linux软件包管理工具.用于在Ubuntu、Debian和相关Linux发行版
上安装、更新、删除和管理deb软件包.
大多数apt命令必须以具有sudo权限的用户身份运行.
apt常用命令
列出所有软件包
apt list
这个命令输出所有包的列表,内容比较多,可以使用grep命令过滤输出。
sudo apt-get update
- 更新软件包数据库
sudo apt-get update
apt实际上在可⽤软件包的数据库上⼯作.如果数据库没有更新,系统将不知道是否有更新的软件包可 ⽤.这就是为什么在安装任何Linux系统之后,第⼀件事应该是更新apt数据库
如果切换到root用户,命令前就不需要加sudo了
切换root用户
sudo su
-
安装软件包
sudo apt install package_name
-
移除软件包
sudo apt remove package_name

2.2 JDK
-
更新软件包
sudo apt-get update
-
安装openjdk
#查找jdk包 apt list |grep "jdk" #安装jdk sudo apt install openjdk-17-jdk
使用java -version 验证是否安装成功.
2.3 MySQL
-
使用apt安装MySQL
#查找安装包 apt list |grep "mysql-server" #安装mysql sudo apt install mysql-server
-
查看MySQL状态
(看到绿点表示成功)
sudo systemctl status mysql
-
MySQL安装安全设置
默认的MySQL设置是不安全的,MySQL安装提供了一个安全脚本,用于解决不太安全的默认选项。
sudo mysql_secure_installation
接下来按照提示输入:
sudo mysql_secure_installation #安装安全设置 Press y|Y for Yes, any other key for No: Y #是否设置验证密码组件 Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 2 #设置密码强度 Remove anonymous users? (Press y|Y for Yes, any other key for No) : Y #默认情 况下,MySQL安装有⼀个匿名用户, 允许任何人登录MySQL. 是否删除匿名用户? Disallow root login remotely? (Press y|Y for Yes, any other key for No) : Y #仅 应允许root从'localhost'连接 Remove test database and access to it? (Press y|Y for Yes, any other key for No) : Y #默认情况下, MySQL带有⼀个test数据库, 是否删除? Reload privilege tables now? (Press y|Y for Yes, any other key for No) : Y #是 否现在加载配置, 使刚才的修改⽣效?
-
设置密码
连接MySQL服务器
sudo mysql
root 用户登录 MySQL 时,因未提供密码而被拒绝"。需要使用带密码的登录命令 (mysql -uroot -p),并输入正确的 root 用户密码
使用alteruser命令修改密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '要修改的密码';
3.部署web项目到Linux
-
创建要保存的目录
//查询目录 ll //创建一个名为 forum 的新目录(文件夹) mkdir forum //进入名为 forum 的目录 cd forum //显示当前工作目录的完整路径(绝对路径) pwd
-
连接数据库
mysql -uroot -p
-
执行SQL脚本
将数据库拖入之前创建的目录下
//删除文件夹 rm 404Lounge.sql.0 //执行当前文件中的sql语句 source /root/404Lounge/404Lounge.sql
-
修改代码中数据源位置
-
修改配置文件中的日志级别与日志文件路径
在当前所在的目录路径下创建日志文件路径
root@VM-20-5-ubuntu:~/404Lounge# mkdir /log root@VM-20-5-ubuntu:~/404Lounge# cd /log root@VM-20-5-ubuntu:/log# mkdir 404Lounge root@VM-20-5-ubuntu:/log# cd 404Lounge/ root@VM-20-5-ubuntu:/log/404Lounge# pwd /log/404Lounge //该路径即为配置文件中所要配置的日志路径
root@VM-20-5-ubuntu:/log/404Lounge# cd ~ root@VM-20-5-ubuntu:~# cd 404Lounge/
-
打包程序
-
上传到服务器
将package打包的.jar文件拖到xshell中
//将名称改为forum.jar mv forum-0.0.1-SNAPSHOT.jar 404Lounge.jar
-
后台运行挂起
nohup java-jar 404Lounge.jar &
nohup
:
- 全称 "no hang up"(不挂起),作用是让命令在退出终端(或断开 SSH 连接)后,依然能在后台继续运行。如果直接运行
java -jar forum.jar
,一旦关闭终端,程序就会停止,而nohup
可以避免这种情况。
java -jar forum.jar
:
java
:调用 Java 运行时环境。
-jar
:表示要运行的是一个可执行的 JAR 包(Java Archive,Java 归档文件,将 Java 应用的类、资源等打包成的一个文件,可直接运行)。
forum.jar
:要运行的 JAR 包文件名,这里假设你的 Java 项目打包后叫forum.jar
,实际需替换为你自己的 JAR 包名称。
&
:
- 放在命令末尾,作用是让命令在后台运行。这样终端不会被程序的输出占用,你可以在同一终端继续执行其他命令。
//先列出系统中所有进程的详细信息,再从中筛选出包含 java 的进程
ps -ef | grep java
第一部分:
ps -ef
ps
:是 Process Status 的缩写,用于 "查看系统中正在运行的进程"。
-e
:显示所有用户的所有进程(不局限于当前用户)。
-f
:以 全格式(full format) 显示进程信息,包括UID
(用户 ID)、PID
(进程 ID)、PPID
(父进程 ID)、C
(CPU 使用率)、STIME
(启动时间)、TTY
(终端)、TIME
(占用 CPU 时间)、CMD
(进程命令)等详细内容。
- 第二部分:
grep java
grep
:是 Global Regular Expression Print 的缩写,用于 "在文本中搜索匹配正则表达式的内容"。
java
:是要搜索的关键词,这里表示 "筛选出包含java
字样的进程"(因为 Java 程序通常以java -jar...
或java...
命令启动)。
- 管道
|
的作用
管道
|
将前一个命令(ps -ef
)的输出,作为后一个命令(grep java
)的输入。因此,整个命令的作用是:先列出系统中所有进程的详细信息,再从中筛选出包含
java
的进程。
//查询端口 58080 网络连接状态
netstat -an|grep 58080
