Linux项目部署全攻略:从环境搭建到前后端部署实战
注:根据黑马程序员javaweb+AI视频课程总结
:
视频地址
详细讲义地址
一、Linux基础入门:为什么选择Linux?
要成为一名Java开发工程师,掌握Linux是企业级开发的必备技能。主流操作系统中,Linux在服务器领域凭借安全稳定、免费开源、高占有率的特性占据主导地位(如表格所示)。
操作系统 | 特点 | 应用场景 |
---|---|---|
Windows | 用户基数大 | 桌面办公 |
macOS | 体验流畅 | 设计开发 |
Linux | 安全稳定、免费开源 | 服务器部署 |
Linux系统分为内核版(Linus团队维护)和发行版(厂商扩展),常见发行版包括Ubuntu(桌面友好)、CentOS(企业级首选)、RedHat(付费稳定版)等。对于开发者而言,选择CentOS进行学习和部署最为合适。
二、开发环境搭建:虚拟机与远程连接
(一)虚拟机安装:VMware快速入门
- 安装步骤
- 下载VMware安装包,双击执行“下一步”完成安装。
- 安装完成后,通过“虚拟网络编辑器”配置NAT模式,设置子网IP为
192.168.100.0
。
- 挂载Linux系统
- 首先解压CentOS镜像文件,双击
.vmx
文件导入虚拟机。 - 启动虚拟机时选择“我已移动该虚拟机”,登录账号为
root
,密码1234
(输入不显示)。
- 首先解压CentOS镜像文件,双击
(二)远程连接:FinalShell高效管理
通过SSH工具远程操作Linux是开发常态,推荐使用FinalShell(免费、功能强大):
- 安装完成后,新建SSH连接,配置IP
192.168.100.128
、用户名root
、密码1234
。 - 连接成功后,即可通过图形化界面执行命令,支持文件上传、终端分屏等功能。
三、Linux核心操作:从目录到命令的全面掌握
(一)目录结构:树形结构的哲学
Linux以/
为根目录,采用树形结构组织文件,与Windows盘符逻辑完全不同。关键目录作用如下:
目录 | 功能 |
---|---|
/bin |
存放可执行文件 |
/etc |
存储系统配置 |
/home |
用户文件主目录 |
/var |
运行时数据(如日志) |
/usr |
系统应用程序 |
(二)常用命令:效率工具集
目录操作
ls -al
:查看目录所有文件(含隐藏文件)及详细信息。cd ..
:切换到上级目录;cd ~
:回到用户主目录。mkdir -p itcast/test
:递归创建多层目录。
文件操作
cat -n file
:显示文件内容并编号;more file
:分页查看大文件。tail -f log.txt
:动态监控日志文件末尾内容。
拷贝移动
cp -r source dest
:递归复制目录;mv file new_name
:重命名或移动文件。
打包压缩
tar -zcvf package.tar.gz dir
:打包并压缩目录;tar -zxvf package.tar.gz -C /usr/local
:解压到指定目录。
文本编辑
vim
编辑器三模式:- 命令模式(默认):移动光标、删除行(
dd
)、进入插入模式(i/a/o
)。 - 插入模式:编辑文本,按
ESC
返回命令模式。 - 底行模式:保存退出(
:wq
)、查找(/keyword
)、显示行号(:set nu
)。
- 命令模式(默认):移动光标、删除行(
四、软件安装实战:JDK、MySQL、Nginx
(一)JDK安装:二进制包快速部署
- 上传解压:将从官网下载的
jdk-17.0.10_linux-x64_bin.tar.gz
上传至/root
,解压到/usr/local
。 - 配置环境变量:
vim /etc/profile export JAVA_HOME=/usr/local/jdk-17.0.10 export PATH=$JAVA_HOME/bin:$PATH source /etc/profile # 使配置生效
- 验证:
java -version
显示版本信息即安装成功。
(二)MySQL安装:从依赖到远程访问
- 卸载冲突组件:
rpm -qa | grep mariadb # 检查是否有MariaDB rpm -e --nodeps mariadb-libs-xxx # 强制卸载
- 解压配置:上传从官网下载的MySQL压缩包,解压后移动至
/usr/local/mysql
,配置环境变量并初始化:groupadd mysql && useradd -r -g mysql -s /bin/false mysql mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
- 远程访问配置:
- 创建远程用户并授权:
CREATE USER 'root'@'%' IDENTIFIED BY '1234'; GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'; FLUSH PRIVILEGES;
- 开放防火墙端口或关闭防火墙:
firewall-cmd --zone=public --add-port=3306/tcp --permanent firewall-cmd --reload
- 创建远程用户并授权:
(三)Nginx安装:源码编译与前端部署
- 依赖安装:
yum install -y pcre pcre-devel zlib zlib-devel openssl openssl-devel gcc-c++
- 编译安装:上传从官网下载的Nginx源码包,解压后执行:
./configure --prefix=/usr/local/nginx make && make install
- 启动验证:
浏览器访问/usr/local/nginx/sbin/nginx # 启动 ps -ef | grep nginx # 检查进程
http://192.168.100.128
,显示“Welcome to nginx!”即成功。
五、项目部署:从前后端到后台运行
(一)前端部署:Nginx静态资源服务
- 准备工作:删除Nginx默认
html
目录下的文件,上传项目静态资源(如HTML、CSS、JS)。 - 配置修改:替换Nginx配置文件
nginx.conf
,重新加载配置:/usr/local/nginx/sbin/nginx -s reload
- 访问测试:浏览器输入服务器IP,强制刷新(Ctrl+F5)查看页面。
(二)后端部署:Spring Boot项目上线
- 配置修改:修改
application.yml
中的数据库连接为Linux服务器IP。 - 打包上传:使用Maven打包成JAR包,上传至Linux的
/usr/local/app
目录。 - 后台运行:
nohup java -jar project.jar &> tlias.log & # 后台运行并输出日志 ps -ef | grep project # 查看进程 kill -9 PID # 停止进程
(三)阿里云OSS配置:环境变量管理
将OSS访问密钥配置为Linux系统环境变量:
echo "export OSS_ACCESS_KEY_ID=your_key_id" >> /etc/profile
echo "export OSS_ACCESS_KEY_SECRET=your_secret" >> /etc/profile
source /etc/profile # 生效配置
六、总结:从入门到实战的核心路径
关键要点包括:
- 多敲多练:Linux指令需通过实践加深记忆(如
ls
、cd
、vim
)。 - 环境隔离:开发用虚拟机,生产用物理机,确保配置一致性。
- 日志与监控:使用
tail
、nohup
管理日志,ps
、kill
监控进程。
后续可进一步学习Docker容器化部署、Kubernetes集群管理等进阶技术,提升项目部署效率与稳定性。
附:常用命令速查表
类别 | 命令 | 说明 |
---|---|---|
目录操作 | ls -al |
查看所有文件详情 |
cd ~ |
返回用户主目录 | |
mkdir -p |
递归创建目录 | |
文件操作 | cat -n |
带行号显示文件 |
tail -f |
动态监控日志 | |
tar -zxvf |
解压压缩包 | |
软件管理 | yum install |
安装依赖 |
systemctl start mysql |
启动服务 | |
firewall-cmd |
防火墙配置 | |
项目部署 | nohup java -jar |
后台运行JAR包 |
nginx -s reload |
重载Nginx配置 |