当前位置: 首页 > news >正文

Linux项目部署全攻略:从环境搭建到前后端部署实战

Linux项目部署全攻略:从环境搭建到前后端部署实战

注:根据黑马程序员javaweb+AI视频课程总结
视频地址
详细讲义地址
在这里插入图片描述

一、Linux基础入门:为什么选择Linux?

要成为一名Java开发工程师,掌握Linux是企业级开发的必备技能。主流操作系统中,Linux在服务器领域凭借安全稳定、免费开源、高占有率的特性占据主导地位(如表格所示)。

操作系统特点应用场景
Windows用户基数大桌面办公
macOS体验流畅设计开发
Linux安全稳定、免费开源服务器部署

Linux系统分为内核版(Linus团队维护)和发行版(厂商扩展),常见发行版包括Ubuntu(桌面友好)、CentOS(企业级首选)、RedHat(付费稳定版)等。对于开发者而言,选择CentOS进行学习和部署最为合适。
在这里插入图片描述

二、开发环境搭建:虚拟机与远程连接

(一)虚拟机安装:VMware快速入门

  1. 安装步骤
    • 下载VMware安装包,双击执行“下一步”完成安装。
    • 安装完成后,通过“虚拟网络编辑器”配置NAT模式,设置子网IP为192.168.100.0
      在这里插入图片描述

在这里插入图片描述

  1. 挂载Linux系统
    • 首先解压CentOS镜像文件,双击.vmx文件导入虚拟机。
    • 启动虚拟机时选择“我已移动该虚拟机”,登录账号为root,密码1234(输入不显示)。

(二)远程连接:FinalShell高效管理

通过SSH工具远程操作Linux是开发常态,推荐使用FinalShell(免费、功能强大):

  1. 安装完成后,新建SSH连接,配置IP192.168.100.128、用户名root、密码1234
  2. 连接成功后,即可通过图形化界面执行命令,支持文件上传、终端分屏等功能。
    在这里插入图片描述

三、Linux核心操作:从目录到命令的全面掌握

(一)目录结构:树形结构的哲学

在这里插入图片描述
在这里插入图片描述

Linux以/为根目录,采用树形结构组织文件,与Windows盘符逻辑完全不同。关键目录作用如下:

目录功能
/bin存放可执行文件
/etc存储系统配置
/home用户文件主目录
/var运行时数据(如日志)
/usr系统应用程序

(二)常用命令:效率工具集

  1. 目录操作

    • ls -al:查看目录所有文件(含隐藏文件)及详细信息。
    • cd ..:切换到上级目录;cd ~:回到用户主目录。
    • mkdir -p itcast/test:递归创建多层目录。
  2. 文件操作

    • cat -n file:显示文件内容并编号;more file:分页查看大文件。
    • tail -f log.txt:动态监控日志文件末尾内容。
  3. 拷贝移动

    • cp -r source dest:递归复制目录;mv file new_name:重命名或移动文件。
  4. 打包压缩

    • tar -zcvf package.tar.gz dir:打包并压缩目录;tar -zxvf package.tar.gz -C /usr/local:解压到指定目录。
  5. 文本编辑

    • vim编辑器三模式:
      • 命令模式(默认):移动光标、删除行(dd)、进入插入模式(i/a/o)。
      • 插入模式:编辑文本,按ESC返回命令模式。
      • 底行模式:保存退出(:wq)、查找(/keyword)、显示行号(:set nu)。

四、软件安装实战:JDK、MySQL、Nginx

(一)JDK安装:二进制包快速部署

  1. 上传解压:将从官网下载的jdk-17.0.10_linux-x64_bin.tar.gz上传至/root,解压到/usr/local
  2. 配置环境变量
    vim /etc/profile
    export JAVA_HOME=/usr/local/jdk-17.0.10
    export PATH=$JAVA_HOME/bin:$PATH
    source /etc/profile  # 使配置生效
    
  3. 验证java -version显示版本信息即安装成功。

(二)MySQL安装:从依赖到远程访问

  1. 卸载冲突组件
    rpm -qa | grep mariadb  # 检查是否有MariaDB
    rpm -e --nodeps mariadb-libs-xxx  # 强制卸载
    
  2. 解压配置:上传从官网下载的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
    
  3. 远程访问配置
    • 创建远程用户并授权:
      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安装:源码编译与前端部署

  1. 依赖安装
    yum install -y pcre pcre-devel zlib zlib-devel openssl openssl-devel gcc-c++
    
  2. 编译安装:上传从官网下载的Nginx源码包,解压后执行:
    ./configure --prefix=/usr/local/nginx
    make && make install
    
  3. 启动验证
    /usr/local/nginx/sbin/nginx  # 启动
    ps -ef | grep nginx  # 检查进程
    
    浏览器访问http://192.168.100.128,显示“Welcome to nginx!”即成功。
    在这里插入图片描述

五、项目部署:从前后端到后台运行

(一)前端部署:Nginx静态资源服务

  1. 准备工作:删除Nginx默认html目录下的文件,上传项目静态资源(如HTML、CSS、JS)。
  2. 配置修改:替换Nginx配置文件nginx.conf,重新加载配置:
    /usr/local/nginx/sbin/nginx -s reload
    
  3. 访问测试:浏览器输入服务器IP,强制刷新(Ctrl+F5)查看页面。

(二)后端部署:Spring Boot项目上线

  1. 配置修改:修改application.yml中的数据库连接为Linux服务器IP。
  2. 打包上传:使用Maven打包成JAR包,上传至Linux的/usr/local/app目录。
  3. 后台运行
    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指令需通过实践加深记忆(如lscdvim)。
  • 环境隔离:开发用虚拟机,生产用物理机,确保配置一致性。
  • 日志与监控:使用tailnohup管理日志,pskill监控进程。

后续可进一步学习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配置

相关文章:

  • Python实现的在线词典学习工具
  • Axure设计数字乡村可视化大屏:构建乡村数据全景图
  • prisma连接非关系型数据库mongodb并简单使用
  • 【TTS回顾】深度剖析 TTS 合成效果的客观评估与主观评价
  • 【D1,2】 贪心算法刷题
  • 《AI革命重塑未来五年:医疗诊断精准度翻倍、自动驾驶事故锐减90%,全球科技版图加速变革》
  • Go 语言 vs C+Lua(Skynet)游戏服务器方案对比分析
  • 睿抗足球机器人
  • 国产 iPaaS 与国外 iPaaS 产品相比如何?以谷云科技为例
  • Scala与Spark:原理、实践与技术全景详解
  • 服务端安全测试:OWASP ZAP使用
  • 计算机网络(2)——应用层(上)
  • 智象科技:自动化模块驱动IT运维效能升级
  • C语言:在操作系统中,链表有什么应用?
  • elasticsearch之记录es7.17升级8.17 springboot2.7.0 程序改造坑
  • react事件绑定的方法
  • 微前端记录
  • SpringBoot 中文转拼音 Pinyin4j库 拼音转换 单据管理 客户管理
  • 远程数据采集智能网关支持下的雨洪资源分布式监测网络搭建实践
  • Vue3.5 企业级管理系统实战(十九):菜单管理
  • 马上评|房屋“注胶堵漏”骗局何以屡屡得逞
  • 完善劳动关系协商协调机制,《共同保障劳动者合法权益工作指引》发布
  • 蒲慕明院士:好的科普应以“质疑、讨论公众关切的科学问题”为切入点
  • 受关税政策影响,沃尔玛将上调部分商品在美售价
  • 赡养纠纷个案推动类案监督,检察机关保障特殊群体胜诉权
  • 新华时评:让医德医风建设为健康中国护航