linux系統tomcat部署SpringBoot+vue前后端分離項目正式部署


如果還沒有安裝jdk、mysql、tomcat可以先參考我的另一篇博客,linux系統tomcat部署SpringBoot+vue前后端分離項目准備工作

如果准備工作已經做完了,那么就開始正式部署吧。

上一篇僅僅安裝成功了,既沒有創建數據庫,也沒有導入數據,也沒有將前后台文件放上來,接下來就一一進行操作。

上傳數據庫的sql文件,上傳方式在上一篇博客中有詳細介紹,就不再追敘。

1、進入mysql的安裝目錄,找到bin目錄,在該文件夾下輸入./mysql -u用戶名 -p  然后回車,輸入密碼,再次回車就能進入mysql了,對了,前提是mysql的服務已經啟動了,mysql的服務啟動命令是,service mysql start

[root@localhost static]$cd /usr/local/mysql/
[root@localhost mysql]$ls
bin  data  docs  include  lib  LICENSE  man  README  share  support-files
[root@localhost mysql]$cd bin/
[root@localhost bin]$pwd
/usr/local/mysql/bin
[root@localhost bin]$clear
[root@localhost bin]$pwd
/usr/local/mysql/bin
[root@localhost bin]$ls
innochecksum    myisamlog          mysqladmin                  mysql_config         mysqld_multi   mysql_embedded    mysqlpump                  mysql_ssl_rsa_setup  mysqlxtest  resolve_stack_dump
lz4_decompress  myisampack         mysqlbinlog                 mysql_config_editor  mysqld_safe    mysqlimport       mysql_secure_installation  mysqltest_embedded   perror      zlib_decompress
myisamchk       my_print_defaults  mysqlcheck                  mysqld               mysqldump      mysql_install_db  mysqlshow                  mysql_tzinfo_to_sql  replace
myisam_ftdump   mysql              mysql_client_test_embedded  mysqld-debug         mysqldumpslow  mysql_plugin      mysqlslap                  mysql_upgrade        resolveip
[root@localhost bin]$./mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 80
Server version: 5.7.33 MySQL Community Server (GPL)

Copyright (c) 2000, 2021, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 

2、創建數據庫,show databases;顯示現在已經存在的數據庫,create database 數據庫名;創建數據庫的命令,創建后再次show databases;就能看到剛才創建的數據庫了,use 數據庫名; 開始進入該數據庫,source sql的存放路徑;就可以導入sql了。

mysql> show databases; +--------------------+
| Database           |
+--------------------+
| information_schema |
| firewall_new       |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.06 sec)

mysql> create database mydata;
Query OK, 1 row affected (0.03 sec)

mysql> show databases; +--------------------+
| Database           |
+--------------------+
| information_schema |
| firewall_new       |
| mydata             |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
6 rows in set (0.00 sec)

mysql> use mydata
Database changed
mysql> source /opt/myfile/xxx.sql

數據庫導入成功,檢查一下表的個數,再執行個查詢sql確認一下,然后就可以打包后台程序了,因為spring是內置tomcat,我這次是打算打成war包,部署在tomcat上,那么就需要特殊處理一下。

1、將打包方式修改為war的方式,修改pom文件

<packaging>war</packaging>

2、移除內置tomcat,我使用的是spring-boot-starter-web-services,有的是在spring-boot-starter-web這個引入的下面,最主要是找到內置spring-boot-starter-tomcat,也可能存在父依賴中。

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web-services</artifactId>
            <!-- 移除嵌入式tomcat插件 打包--> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> </exclusion> </exclusions>
        </dependency>

3、添加Tomcat servlet-api的依賴

    <!--打包war-->
        <dependency>
            <groupId>org.apache.tomcat</groupId>
            <artifactId>tomcat-servlet-api</artifactId>
            <version>8.0.36</version>
            <scope>provided</scope>
        </dependency>

4、增加SpringBootStartApplication類,我們需要類似於web.xml的配置方式來啟動spring上下文了,在Application類的同級添加一個SpringBootStartApplication類,其代碼如下:

package com.interact.firewall;

import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;

public class SpringBootStartApplication extends SpringBootServletInitializer {

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        // 注意這里要指向原先用main方法執行的Application啟動類
        return builder.sources(FirewallApplication.class);
    }
}

文件路徑,跟啟動類同級

 

 

 5、打包部署,在maven命令行里輸入:clean package 即可, 等待打包完成,出現[INFO] BUILD SUCCESS即為打包成功,如下圖操作,

 

 

 6、然后把target目錄下的war包放到tomcat的webapps目錄下(war包可自行重命名),啟動tomcat,即可自動解壓部署

[root@localhost webapps]$pwd
/usr/tomcat/apache-tomcat-8.5.61/webapps
[root@localhost webapps]$ls
docs  examples  firewall  firewall.war  host-manager  manager  ROOT  static  static.zip

 

 

 7、將vue前端項目,通過npm run build,將前端打包

E:\project\Git\firewall-ui>npm run build

 8、打包完成后,找到對應的dist文件夾,將其中的index.html和static文件夾,上傳到linux

 

 9、將static文件夾和index.html放入tomca上部署后台項目的靜態資源下,/usr/tomcat/apache-tomcat-8.5.61/webapps/firewall/WEB-INF/classes/static

[root@localhost static]$pwd
/usr/tomcat/apache-tomcat-8.5.61/webapps/firewall/WEB-INF/classes/static

 10、啟動項目即可訪問,訪問時,如果修改war名稱,需要添加該war名稱,比如改名為firewall.war,訪問時,http://192.168.199.214:8080/firewall/。

 

 需要注意如果只是輸入ip+端口,默認走的是ROOT,頁面會顯示tomcat的默認頁面。

 

 

 

還需要注意的是,配置文件中的一些路徑,項目根路徑、數據存放路徑、配置文件路徑等等,需要處理的最好都細心處理一下。

或者直接將原來的ROOT文件夾刪除,然后將咱們后台打包好的ROOT.war,放上去,也可以直接訪問,下邊這個標紅的ROOT.war就是我們自己項目打的war包

[root@localhost webapps]$ls
docs  examples  host-manager  manager  ROOT  ROOTBak  ROOT.war
[root@localhost webapps]$

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM