Centos7.6 部署 JavaWeb项目

阿里云 Centos7.6 部署 JavaWeb项目

在云服务器部署自己的JavaWeb项目 查询了许多的资料,但多数只有片段的描述,
更好的去理解 以及日后的学习 是挺有必要写成一篇博客来记录一下自己的学习过程
为了通用性、也为了日后可能更改云服务器、减少学习成本出发 选取目前腾讯云/阿里云的通用Centos7.6版本

本文使用阿里云实例

Centos7.6 Nginx PHP 配置

环境配置:

  • 创建阿里云实例
  • 配置安全环境
  • 安装 Java
  • 安装 Tomcat
  • 安装 Mysql
  • 上传WAR到云服务器

其中 安装Tomcat是可以省略的, 前提是使用Springboot将web项目打包成jar包 发布到云服务器上通过 命令:nohup java -jar xxx.jar & 运行项目;但我这篇博客是使用Springboot打包成war 然后部署到Tomcat上运行的 如果使用jar部署的可以不在云服务器上安装Tomcat

开发工具:

  • SecureCRT/XShell
  • Navicat
  • IntelliJ IDEA


配置:

1 创建阿里云实例:

  登录到阿里云 购买云服务器 如果是学生的话 可以试一下领取6个月的免费云服务器阿里云高校 学生在校实践计划;


  创建成功后 点击右上角的控制台 进入云服务器管理界面 并且点击对应的云服务器实例 进入以下界面 点击更多重置密码 远程连接可以在浏览器操作Linux
Centos7.6 部署 JavaWeb项目_第1张图片


2 配置环境:

配置本实例的安全组

Centos7.6 部署 JavaWeb项目_第2张图片


设置访问规则 自行设置端口号

Centos7.6 部署 JavaWeb项目_第3张图片


通过浏览器远程连接云服务器 ,成功连接后执行 命令:yum -y install lrzsz 用于后面SecureCRT上传war项目

Centos7.6 部署 JavaWeb项目_第4张图片


3 安装java:

yum -y install java-1.8.0-openjdk.x86_64

//安装完毕后 通过java -version 查看java版本

4 安装Tomcat:

选择Tomcat合适的版本

//将Tomcat安装到 /opt 目录下
cd /opt

//下载Tomcat
wget https://mirrors.cnnic.cn/apache/tomcat/tomcat-9/v9.0.34/bin/apache-tomcat-9.0.34.tar.gz

//解压Tomcat
tar xzf apache-tomcat-9.0.34.tar.gz

//可以调用 ls 来查看 /opt目录下的 tomcat文件名 然后通过mv命令 修改文件名
mv apache-tomcat-9.0.34 tomcat9.0

//参考win10 tomcat的启动命令 bin/startup.bat Linux启动命令是bin/startup.sh来启动Tomcat
cd ~
/opt/tomcat9.0/bin/startup.sh 

//在浏览器输入 公网IP:8080 验证是否成功



5 安装Mysql:

默认配置文件路径:

配置文件:/etc/my.cnf

日志文件:/var/log/mysqld.log

服务启动脚本:/usr/lib/systemd/system/mysqld.service

socket文件:/var/run/mysqld/mysqld.pid

下载MYSQL

//通过wget下载mysql rpm包
wget https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm

//下载mysql 5.7
rpm -ivh mysql57-community-release-el7-9.noarch.rpm

//到此目录下执行安装命令
cd /etc/yum.repos.d/

yum install mysql-server

//启动mysql服务
systemctl start mysqld

//开机启动
systemctl enable mysqld

配置MYSQL

//目前我们并未设置密码 可以随便输入一下
mysql -u root -p //提示输入密码 但我们并未设置
//出现密码错误

//输出临时密码
grep "password" /var/log/mysqld.log

//重新执行 并输入临时密码
mysql -u root -p

Centos7.6 部署 JavaWeb项目_第5张图片

//进入 MYSQL后 修改密码
alter user user() identified by "MYSQL密码";

//开放远程连接权限
grant all privileges on *.* to 'root'@'%' identified by 'MYSQL密码' with grant option;

flush privileges;

//修改 MYSQL编码
vim /etc/my.cnf
    //最后添加
    character_set_server=utf8
    init_connect='SET NAMES utf8'

//重启mysql服务
systemctl restart mysqld    


//通过 Navicat 远程连接 检测是否成功



6 上传WAR到云服务器

准备:
检查Springboot的html中的异步请求 和 yml配置文件中的数据库 ip 信息是否正确
如果是部署Tomcat到的话 ajax的url实例:http:公网ip:8080/war名/…


pom.xml和SpringBootApplication修改
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.7.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <groupId>com.example</groupId>
    <artifactId>demo</artifactId>
    <version>0.0.1-SNAPSHOT</version>

    <!--          war          -->
    <packaging>war</packaging>
    <!--          war          -->

    <name>demo</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>

         <!--            WAR web config          -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-tomcat</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.1.0</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <scope>provided</scope>
        </dependency>
        <!--               WAR web config            -->

        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.1.2</version>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-autoconfigure</artifactId>
            <version>2.2.7.RELEASE</version>
        </dependency>

    </dependencies>

    <build>
        <!--           war名          -->
        <finalName>Test</finalName>
        <!--           war名          -->
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
</project>
@SpringBootApplication
@MapperScan("com.example.demo.repository")
public class DemoApplication extends SpringBootServletInitializer {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        return builder.sources(DemoApplication.class);
    }
}

双击Maven Package打包 在项目目录下的target 生成一个 Test.war的文件

Test war名

Centos7.6 部署 JavaWeb项目_第6张图片

上传war到云服务器

//启动 SecureSRT/XShell 连接 云服务器

//停止Tomcat服务
/opt/tomcat9.0/bin/shutdown.sh

//参考win10环境下Tomcat对web项目部署
cd /opt/tomcat9.0/webapps

//在 SecureSRT/XShell 执行 rz命令 将项目上传

//启动Tomcat服务
/opt/tomcat9.0/bin/start.sh

//在浏览器输入 公网IP:8080/war名/... 来测试是否部署成功

补充

在实现的过程中 参考挺多安装的教程 许多教程习惯将Java Tomcat Nginx PHP MYSQL等等自定义安装在 /usr/local/xxx 目录下 这种安装软件比较方便用户进行管理 但大多数需要修改配置文件 以及建立软连接

使用 命令:whereis xxx 发现yum直接安装是/usr/share/xxx目录下 比较傻瓜式的安装 也无需关心太多配置

欢迎指出文章错误 有空修改/回复 [Doge][Doge][Doge]

你可能感兴趣的:(Linux)