天天看點

centos部署springboot項目

    本人就讀軟體工程專業,現研二,通過阿裡雲官網了解到“飛天加速計劃·高校學生在家實踐”活動。

   因課題組需要整合sprinboot項目與c++項目,是以在centos伺服器上對項目進行整合測試。針對幾個讓我記憶深刻的問題進行複盤。

   1. 對項目必要的環境進行安裝,如java,tomcat,mysql。登陸阿裡雲控制台,在雲伺服器esc中有我的教程,可以參考這些教程對環境進行安裝。

centos部署springboot項目
   2. 因同課題組的同學測試時是在版本交新的ubuntu系統上進行測試的,是以在整合c++項目過程中,需要如下問題:

    • cmake 未安裝或者安裝版本過低(項目要求3.20以上的版本)

       解決方案:

wget -c https://github.com/Kitware/CMake/releases/download/v3.17.0-rc3/cmake-3.17.0-rc3.tar.gz
tar zxvf cmake-3.17.0-rc3.tar.gz
cd cmake-3.17.0-rc3./bootstrap
gmake #時間會比較長
gmake install
cmake --version #版本檢視      
    • 編譯時記憶體不足的問題 c++: internal compiler error: Killed (program cc1plus) 

解決方案:

#count的大小就是增加的swap空間的大小,64M是塊大小,是以空間大小是bs*count=2048MB
sudo dd if=/dev/zero of=/swapfile bs=64M count=32

#把剛才空間格式化成swap格式
sudo mkswap /swapfile


chmod 0600 /swapfile  

#使用剛才建立的swap空間
sudo swapon /swapfile

#檢視交換空間的使用情況
free -m 

#釋放空間指令
swapoff -a      

在編譯過程中也遇到了需要嚴格按照c标準的問題。如sprinf_s(), _strdup()等函數,若有編譯時會出錯,可以考慮使用c函數或者指定 -std=gun11。

    • 編譯結束之後,測試接口時發現/usr/lib64/libm.so.6: version `GLIBC_2.29' not found問題

解決方案:安裝glibc_2.29

wget http://ftp.gnu.org/gnu/glibc/glibc-2.29.tar.gz 
tar -zxvf glibc-2.29.tar.gz
cd glibc-2.29
mkdir build
cd build
# 指定路徑,不要與解壓的路徑相同,避免出現/usr/bin/install: `include/limits.h' and `/opt/glibc-2.14/include/limits.h' are the same file 這個錯誤
../configure --prefix=/opt/glibc229
make
make install      
  1. 整個過程中,也複習了一部分linux指令,如下:
# find 指令用來在指定目錄下查找檔案。
# 列出目前目錄下字尾為c的所有檔案
find . -name "*.c"
# 查找系統中所有檔案長度為 0 的普通檔案,并列出它們的完整路徑:
find / -type f -size 0 -exec ls -l {} \;

#strings 指令是二進制工具集 GNU Binutils 的一員,用于列印檔案中可列印字元串,strings指令在對象檔案或二進制檔案中查找可列印的字元串。字元串是4個或更多可列印字元的任意序列,以換行符或空字元結束。strings指令對識别随機對象檔案很有用。
# 檢視glibc支援的版本
strings /lib64/libc.so.6 | grep GLIBC

ssh root@IP
scp localSrc root@IP:remoteDest
rm -rf dir
cp -r src dest      

以上就是在部署過程中遇到的一些問題。

此次部署以及過程中遇到的一些問題,個人感觸頗深的是對作業系統要有一個深刻的了解,尤其是對linux的核心的一些原理。(看來是時候在重新過一遍作業系統了-_-!)。對linux中的指令,用進廢退:(,該項目維護中,需要對linux指令多加實踐操作,進而熟悉指令。

最重要的事:日志與備份極其重要。日志與備份極其重要。日志與備份極其重要。重要的事情說三遍((。ì _ í。)