阿里云centos7服务器部署springboot项目,项目打包,上传,安装jdk8、tomcat8、mysql5.7

0、首先需要购买阿里云轻量级服务器,我卖的是学生机套餐。系统我选择centos7。24岁以下并且身份证认证了的,可以去买学生套餐,学生套餐地址:https://promotion.aliyun.com/ntms/act/campus2018.html

本来想图个便宜买个单品,发现一直选不了:

老是弹出这个东西,怎么选都是这样。

实在没办法,逼我去买阿里云学生套餐:

他丫的竟然可以选了:买就是了。

买不了学生套餐可以如下操作进行购买:

扫描二维码关注公众号,回复: 10436986 查看本文章

在首页中选择创建实例进入购买即可:

1、由于我前面第一次安装,百度一堆乱七八糟的教程文章,按着操作,出现很多坑,导致我的服务器安装得乱七八糟,里面的设置也是,所以我打算重新初始化磁盘,让它变成新的Linux系统,方便后面的安装。如果是第一次安装,新机就跳过此第1步。

      ->       

需要将服务器给停止掉,才能去重新初始化磁盘:

来到配置信息这里:

会跳到这里:

需要重新设置服务器密码:

这个密码是我们远程连接服务器要用的,随后就是需要验证短信二维码。完成之后就重新启动了一个新的实例磁盘了。

2、在云服务器管理控制台->实例镜像->实例,查看公网ip地址,此时远程连接还差个密码,我们需要重置密码:

              ->             

3、下载安装XShell,用他来远程连接服务器,我这里不提供下载链接以及安装教程,需要的请自行解决。

  • 连接账号:服务器公网ip
  • 连接密码:我们重置的密码

4、连接上去了,我们需要去上传东西就需要安装一个软件:

yum install lrzsz

安装成功后,我们输入命令:

rz

会弹出一个文件选择框,来让我们上传文件,这时候我们就可以上传文件了。这里为后面上传项目做一些准备。

5、首先安装下jdk1.8:

来到官网:https://www.oracle.com/cn/java/technologies/javase-downloads.html

复制链接地址。有可能要让你登录,我这里提供一个,可能会过期:

https://download.oracle.com/otn/java/jdk/8u241-b07/1f5b5a70bf22433b84d0e960903adac8/jdk-8u241-linux-x64.tar.gz

然后使用wget命令来下载,如果提示没有wget命令,就需要我们去安装:yum install wget

wget 拼上你复制的链接

本地测试链接超时,下载不了,我本地下载然后上传上去了。

下面进行安装:(有时候你直接复制下面完整命令和路径,可能会报错,需要先填写命令再填文件名称,按tab键会自动补全)

  • 首先新建一个目录: mkdir /usr/java
  • 添加可执行权限并解压到/usr/java:chmod +x jdk-8u241-linux-x64.tar.gz
  • 解压: tar xzf jdk-8u241-linux-x64.tar.gz -C  /usr/java
  • 设置环境变量:vi /etc/profile       按   i  键  添加如下内容:
  • # set java environment
    export JAVA_HOME=/usr/java/jdk1.8.0_241
    export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib
    export PATH=$JAVA_HOME/bin:$PATH
  • 保存并退出:    按  esc  键,再加上    :wq     回车。
  • 运行   source /etc/profile    命令加载环境变量。
  • 运行   java -version   命令显示JDK版本信息。

安装成功。

6、安装tomcat之前,我们需要做一些准备操作:

  • 在阿里云服务器管理控制台,在左侧导航栏,单击网络与安全 > 安全组。
  • 再添加一组80端口,方便日后操作。
  • 永久关闭防火墙:systemctl disable firewalld
  • 关闭SELinux,查看状态:getenforce
  • Disabled为关闭状态,Enforcing为开启状态。我们要永久关闭他:运行命令vi /etc/selinux/config编辑SELinux配置文件。回车后,把光标移动到SELINUX=enforcing这一行,按i键进入编辑模式,修改为SELINUX=disabled, 按Esc键,然后输入:wq并回车来保存并关闭SELinux配置文件。
  • 创建一般用户www来运行Tomcat:useradd www
  • 创建网站根目录: mkdir -p /data/wwwroot/default
  • 将需要部署的Java Web项目文件WAR包上传到网站根目录下,然后将网站根目录下文件权限改为www。本示例中,将依次运行以下命令直接在网站根目录下新建一个Tomcat测试页面,并将网站根目录下文件权限改为www:
  • echo Tomcat test > /data/wwwroot/default/index.jsp
  • chown -R www.www /data/wwwroot

7、安装tomcat8:wget https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.51/bin/apache-tomcat-8.5.51.tar.gz

该链接同样来自官网:https://tomcat.apache.org/download-80.cgi

  • 解压:tar xzf apache-tomcat-8.5.51.tar.gz
  • 重命名Tomcat目录:mv apache-tomcat-8.5.51 /usr/local/tomcat/
  • 设置用户权限:chown -R www.www /usr/local/tomcat/
  • tomcat下的webapps目录用来放我们的war包。
  • cd /usr/local/tomcat/conf/
  • 编辑server.xml文件:vi server.xml
  • 将如下内容复制进去:通过ip地址就能访问项目,需要将连接端口改成80,这样每次访问就不需要去写8080端口了
  • <?xml version="1.0" encoding="UTF-8"?>
    <Server port="8006" shutdown="SHUTDOWN">
    <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener"/>
    <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"/>
    <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener"/>
    <Listener className="org.apache.catalina.core.AprLifecycleListener"/>
    <GlobalNamingResources>
    <Resource name="UserDatabase" auth="Container"
     type="org.apache.catalina.UserDatabase"
     description="User database that can be updated and saved"
     factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
     pathname="conf/tomcat-users.xml"/>
    </GlobalNamingResources>
    <Service name="Catalina">
    <Connector port="8080"
     protocol="HTTP/1.1"
     connectionTimeout="20000"
     redirectPort="8443"
     maxThreads="1000"
     minSpareThreads="20"
     acceptCount="1000"
     maxHttpHeaderSize="65536"
     debug="0"
     disableUploadTimeout="true"
     useBodyEncodingForURI="true"
     enableLookups="false"
     URIEncoding="UTF-8"/>
    <Engine name="Catalina" defaultHost="localhost">
    <Realm className="org.apache.catalina.realm.LockOutRealm">
    <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
      resourceName="UserDatabase"/>
    </Realm>
    <Host name="localhost" appBase="/data/wwwroot/default" unpackWARs="true" autoDeploy="true">
    <Context path="" docBase="/data/wwwroot/default" debug="0" reloadable="false" crossContext="true"/>
    <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
    prefix="localhost_access_log." suffix=".txt" pattern="%h %l %u %t &quot;%r&quot; %s %b" />
    </Host>
    </Engine>
    </Service>
    </Server>
  • 设置JVM内存参数:vi /usr/local/tomcat/bin/setenv.sh

  • 添加如下内容进去:JAVA_OPTS='-Djava.security.egd=file:/dev/./urandom -server -Xms256m -Xmx496m -Dfile.encoding=UTF-8' 

  • 设置Tomcat自启动脚本:wget https://github.com/lj2007331/oneinstack/raw/master/init.d/Tomcat-init

  • 下载成功显示这样:

  • 重命名Tomcat-init:mv Tomcat-init /etc/init.d/tomcat

  • 添加可执行权限:chmod +x /etc/init.d/tomcat

  • 设置启动脚本JAVA_HOME:sed -i 's@^export JAVA_HOME=.*@export JAVA_HOME=/usr/java/jdk1.8.0_241@' /etc/init.d/tomcat

  • 设置Tomcat开机自启动:chkconfig --add tomcat 

  • chkconfig tomcat on    

  • 启动tomcat:service tomcat start

  •                          

8、安装mysql:https://blog.csdn.net/qq_41723615/article/details/93001225

9、上传sql文件,我项目使用的数据库是mysql,我需要将项目sql给转储下,保存起来。输入rz命令,选择我们本地存储的sql文件,进行上传。

10、创建数据库,并运行我们的sql文件:source xxx.sql

11、我们需要将我们的项目给打成war包,在打包前,我们需要修改项目中一些资源路径,如果项目中有图片资源或者其他的文件,还有数据库连接配置也需要去修改。

例如我们打算在centos下安装mysql,并创建一个数据库叫myweb,mysql需要去设置账号和密码,项目中的配置就要改过来。

项目资源路径要改成我们设置的网站根目录,我这边不打算用对象存储,直接全部装进阿里云服务器里。

查找当前目录命令:pwd

将项目打成war包:

  • 添加依赖:
  • <dependency><!--打war包第一步-->
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-tomcat</artifactId>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <scope>provided</scope>
    </dependency>
  • 将build改成:
  • <build>
        <finalName>myweb</finalName><!--打war包第二步-->
        <plugins>
            <plugin>
                <!--<groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <fork>true</fork>
                </configuration>-->
    
                <!--打war包第三步-->
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <configuration>
                    <failOnMissingWebXml>false</failOnMissingWebXml>
                </configuration>
            </plugin>
        </plugins>
    </build>
  • 添加:
    <packaging>war</packaging><!--打war包第四步-->
  • 主启动类需要继承个东西,并重写:
  • @SpringBootApplication
    public class MywebApplication extends SpringBootServletInitializer {
    
        /**
         * 需要把web项目打成war包部署到外部tomcat运行时需要改变启动方式
         */
        @Override
        protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
            return builder.sources(MywebApplication.class);
        }
    
        public static void main(String[] args) {
            SpringApplication.run(MywebApplication.class, args);
        }
    
    }
  • 使用cmd进入本地项目根目录,利用mvn 命令打war包:mvc clean package
  • 可能会出现一个错误: No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?
  • 这个问题还不知道怎么解决?网上说需要用jdk里面的jre,有两个jre,需要分清楚。我这里选择使用idea来进行打包:
  • 选择打包位置:
  • 创建出框中的目录出来:
  • 选中classes目录:
  • 选中我们的项目,点ok。
  • 这样项目就可以以war包和jar包的方式进行运行了。
  • 随后将我们的war包上传到我们在服务器设置的网站根目录下即可。

12、在公网无法访问ip:8080怎么办?

可以使用命令查找问题,进入tomcat/bin目录:./catalina.sh run & 

我这里出现了端口被占用是一个8006的端口占用了

查看下该端口:netstat -anp | grep 8006

杀掉该进程: kill -9 xxxx

发布了753 篇原创文章 · 获赞 72 · 访问量 13万+

猜你喜欢

转载自blog.csdn.net/qq_41723615/article/details/104861425