- Linux


>> Linux 遠程控制管理

Linux安裝的是Ubuntu服務器版本(UBuntu Server 16.04 X64),作爲服務器的電腦,一般不會放在身邊,一般放在機房有專人看管維護,或者託管到運營商,我們平時操作的電腦是客戶機;所以要控制服務器,就要通過遠程控制的方式;

傳統的網絡服務程序,FTP、POP、Telnet本質上都是不安全的,因爲它們在網絡上通過明文傳送口令和數據,這些數據很容易被截獲;

SSH(Secure Shell)是LInux上的一種安全遠程連接技術,由客戶端和服務端組成;它可以把傳輸數據進行加密、壓縮,預防攻擊的同時還可以加快傳輸速度;

  • SSH 默認端口號:22
  • 遠程連接工具:SecuetCRT

只要是連接,就有服務端和客戶端;服務端創建監聽端口,一直等待客戶端請求服務端的監聽端口;客戶端發送請求到服務端,兩端一連上就是長連接(tcp/ip連接),連上之後數據就能互相傳遞了;

SSH連接有兩種方式:

  • 基於口令的連接方式:知道服務器的賬號密碼即可遠程登錄,口令和數據會在傳輸過程中國被加密;
  • 基於祕鑰的安全驗證:客戶端創建一對祕鑰,公有祕鑰上傳到服務端上自己的宿主機目錄中,私鑰保存在本地;客戶端在訪問服務端IP地址的時候,會將私鑰傳到服務端,與服務端上保存的公鑰進行匹配,若匹配成功就可直接登錄;
    (免密登錄:沒有免密纔是最安全的!)

~ Shell

Shell是一個特殊的應用程序,本質上是一個命令解釋器,下通系統調用,上通各種應用,連接系統和應用之間的交互;

在沒有圖形界面之前,Shell充當用戶界面,用戶需要運行某些應用的時候,要通過Shell輸入命令,建立運行程序;

同時Shell是可編程的,可以執行符合Shell語法的文本,這個文本稱爲Shell腳本;

Shell是Linux默認主流的bash;

echo $SHELL:查看當前shell版本;
cat /etc/shells:查看本機器支持的shell的版本;
chsh -s /bin/sh:切換到指定的shell上;


>> Linux 目錄結構

bin:存放二進制可執行文件;(綠色顯示)(.exe)(ls、cat、mkdir等)
boot:存放用於系統引導時使用的各種文件;就是啓動文件,系統啓動時運行的文件;
dev:用於存放設備文件;
etc:存放系統配置文件;
home:存放所有用戶文件的根目錄;
lib:存放跟文件系統中的程序運行所需要的共享庫及內核模塊;Linux運行需要的依賴,類似Java程序運行時需要的第三方依賴;
mnt:系統管理員安裝臨時文件系統的安裝點;
opt:額外安裝的可選應用程序包所放置的位置;
proc:虛擬文件系統,存放當前內存的映射;
root:超級用戶目錄;
sbin:存放二進制可執行文件,只有root才能訪問;
tmp:用於存放各種臨時文件;
usr:(存放手動安裝的程序) 用於存放系統應用程序,比較重要的目錄/usr/local本地管理員軟件安裝目錄:自己安裝的程序必須放置在該目錄;
var:用於存放運行時需要改變數據的文件;Eg:MySQL的dtd文件;

Linux安裝軟件,軟件中的文件是分開存放的,例如:配置文件放在/etc目錄下,可執行文件放在/bin目錄下;而Windows安裝的軟件的文件存放在一起;


>> Linux 常用命令

coreutils 聯機幫助

  • 命令區分大小寫;
  • 命令太長一行放不下時,可在第一行尾輸入“\”字符,按回車鍵,這時shell會返回大於號“>”作爲提示符,表示該命令尚未結束,允許繼續輸入命令;
  • XX --help:打印XX命令用法;
  • man find/其他指令:查看指令用法;

~ 重啓/關機

  • sudo reboot:重啓
  • sudo shutdown -r now:重啓
  • sudo shutdown -h now:關機

~ 操作文件目錄命令

  • ls:顯示文件和目錄列表;

    • ls [-l -a] [name]
    • -l:列出文件的詳細信息;
    • -a:列出當前目錄所有文件,包含隱藏文件;
    • -d:只顯示當前目錄下的各個子目錄名;
  • mkdir:創建目錄;

    • mkdir [-p] dirName
    • -p:父目錄不存在的情況下先生成父目錄;
  • cd:切換目錄;

    • cd [dirName]
  • touch:創建文件 - 生成一個空文件;(文本文件)
    修改指定文件的時間標籤,把已存在的文件的時間標籤更新爲系統當前時間(默認方式),它們的數據原封不動的保存下來;若該文件尚未存在,則創建一個空新文件;

    • touch fileName.txt
  • echo:寫文件 - 生成一個帶有內容的文件;

    • echo message > 1.txt
    • message後面不加 > 表示直接將message在控制檯顯示;message用單引號括起來表示原樣輸出,否則多個空格合併爲一個輸出;
    • 一個 > 表示message替換文件中原有內容;
    • 兩個 >> 表示追加內容,不刪除文件中原有內容;
  • cat:讀文件 - 顯示文本文件內容;

    • cat fileName:控制檯顯示
    • cat f1 f2 > f3:合併文件;
  • cp:複製文件或目錄;(目的目錄要存在)

    • cp source dest
    • -r:同時複製目錄下所有文件及子目錄內容;
    • 所有目標文件指定的目錄必須已經存在,cp命令不能創建目錄!
    • cp file /home/mengqc/f:將file複製到/home/mengqc目錄下,並改名爲f;
  • rm:刪除文件;

    • rm fileName
    • -f:強制刪除文件或目錄;
    • -r:遞歸刪除,同時刪除該目錄下的所有文件;
    • -i:使用文件擴展名刪除多個文件時,逐一詢問是否要刪除文件;
  • mv:剪切文件或目錄,或者重命名;

    • mv source dest
    • 若將一個文件移到另一個已經存在的目標文件中,則目標文件的內容會被覆蓋;
    • mv 命令可將源文件移至一個目標文件中,或將一組文件移至一個目標目錄中;
    • 源文件被移至目標文件有兩種結果:
        若目標文件是到某一目錄文件的路徑,源文件會被移到此目錄下,且文件名不變;
        若目標文件不是目錄文件,則源文件名(只能有一個)會變爲此目標文件名,並覆蓋已經存在的同名文件;若源文件與目標文件在同一個目錄下,mv的作用就是改文件名;
    • 當目標文件是目錄時,源文件或目錄參數可以有多個,則所有源文件都會被移至目標文件中,所有移到該目錄下的文件都將保留以前的文件名;
  • find:在文件系統中查找指定的文件(搜索文件);

    • find -name fileName:從當前目錄 遞歸查找指定文件;精確查找
    • find -iname fileName:-iname表示文件名忽略大小寫;不區分大小寫
    • find / -name fileName:從linux的根目錄/下開始, 遞歸查找指定文件;模糊查找
    • find ~ -name "*.txt":從當前用戶的home目錄下查找指定文件;
  • grep:在指定的文本文件中查找指定字符串(檢索文件內容);

    • grep "要搜索的字符串" "指定查找的文件範圍"
    • grep "要搜索的字符串":不指定文件範圍,會從標準輸入設備(控制檯)讀取數據;
    • -o:只輸出符合正則表達式的字符串;
    • -v:過濾掉包含相關字符串的內容;
    • grep:一次只能搜索一個指定的模式;
    • egrep:等同於grep -E,可以使用擴展的字符串模式進行搜索;
    • fgrep:等同於grep -F,是快速搜索命令,它檢索固定字符串,但是不識別正則表達式;
  • **管道操作符 |:將指令連接起來,前一個指令的輸出作爲後一個指令的輸入;

    • 管道操作符只能處理前一個命令的正確輸出,不處理錯誤輸出;
    • 右邊命令必須能夠接收標準輸入流,否則傳遞過程中數據會被拋棄;
    • 常用來作爲接收管道數據的命令有:sed、awk、grep、cut、head、top、less、more、wc、join、sort、split等;
  • awk:對文件內容做統計;grep過濾數據,awk進行統計;

    • 一次讀取一行文本,按輸入分割符進行切片,切成多個組成部分;將每個分片直接保存在內建的變量中,$1,$2,…($0表示行的全部內容),引用指定的變量可以顯示指定的切片的內容;支持對單個切片的判斷,支持對所有切片進行循環判斷,默認分隔符爲空格;

    • awk '{print $1,$4}' fileName1 fileName2:獲取指定文件的第一列和第四列的內容;逐行遍歷文本內容,將每行的各個部分按照空格切片出來,進行保存;

    • awk '$1=="aa" && $2==12{print $0} fileName’:獲取指定文件第一列值爲"aa",第二列值爲12的行的所有內容;

    • awk '($1=="aa" && $2==12) || NR==1 {print $0} fileName':顯示錶頭內容;NR表示從awk開始執行後,按照記錄分隔符,讀取的數據的次數,默認的記錄分隔符爲換行符,因此NR默認讀取的就是數據的行數;

    • awk -F "," '{print $2}' fileName:指定切片分隔符;

    • grep 'str' fileName | awk '{arrStr[$1]++}END{for(i in arrStr) print i "\t" arrStr[i]}':定義一個數組,用它的下標來保存行切片的內容,數組的值就對應行切片的值,進行累加,END表示掃描結束需要做什麼操作,就是執行花括號裏面的內容:遍歷數組裏面的內容;

  • sed:批量替換/刪除文件內容;

    • stream editor,流編輯器,適用於對文本的行內容進行處理、編輯;
    • sed -i 's/^zhang/Zhang/g' fileName:將以zhang開頭的的字符串,改成Zhang;
      -i:直接在目標文本中做修改;默認是將修改後的內容輸出到終端;
      s:表示要進行字符串的操作;
      第一個反斜槓後面:要被替換的內容,^表示篩選出以xx開頭行;'s/./str//str/':表示以xx結尾;斜槓表示轉義特殊字符;
      第二個反斜槓後面:要替換成的目標內容;
      第三個反斜槓後面:不寫g,默認替換每一行第一次匹配的內容;g表示替換所有;
    • set -i 's/\.$/\;/g':將以.結尾的行的.替換成;
    • set -i '/^ *$/d':刪除空行;
    • set -i '/str/d':刪除包含str的行;
  • tree:以樹狀圖列出目錄的內容;

  • ln:建立軟連接;

    • ln 需要創建軟連接的文件的位置 目標 - ln a/1.txt 2.txt
    • 軟連接相當於是快捷方式;在2.txt文件中修改文件內容,1.txt文件中同步修改;
  • more:分頁顯示文本文件內容;

    • Space鍵,顯示文本的下一屏內容;
    • Enter鍵,只顯示文本下一行內容;
    • 按斜線**“/”**,接着輸入一個模式,可以在文本中尋找下一個相匹配的模式;
    • H鍵,顯示幫助屏,該屏上有相關的幫助信息;
    • B鍵,顯示上一屏內容;
    • Q鍵,退出more命令;
  • less:分屏顯示文件內容;

    • more區別:more只能向前瀏覽,less能向前、向後瀏覽文件;
    • PageUp鍵,向上翻頁;
    • PageDown鍵,向下翻頁;
    • Q鍵,退出 less 程序;
  • head:顯示文件開頭內容;

  • tail:顯示文件結尾內容;

    • -f:跟蹤輸出;
    • tail -100f XXX.log:查看最近100行;

~ 系統管理命令

  • lsb_release -a:查看Ubuntu系統版本;

  • stat:顯示指定文件的相關信息,比ls命令顯示的內容更多;

  • who:顯示所有正在使用系統的用戶、所有終端名和註冊到系統的時間;

    • who am i:列出使用該命令的當前用戶的相關信息;
  • hostname:顯示主機名稱;

  • uname:顯示系統信息;

  • top:顯示當前系統中耗費資源最多的進程;相當於任務管理器;

  • ps:顯示瞬間的進程狀態;

  • du:顯示指定的文件/目錄已使用的磁盤空間的總量;-h:換算爲M;

  • df:顯示文件系統磁盤空間的使用情況;

  • free:顯示當前內存和交換空間的使用情況;

  • ifconfig:顯示網絡接口信息;

  • ping:測試網絡的聯通性;

  • netstat:顯示網絡狀態信息;

  • clear:清屏

  • kill:殺死一個進程;

    • -9:徹底殺除;

~ 壓縮命令

tar

  • tar [] 打包之後壓縮包的名稱 欲打包目錄
  • 壓縮文件:tar -czvf aa.tar.gz .,將當前目錄使用gzip算法打包壓縮;
  • 壓縮文件:tar -cjvf bb.tar.bz2 .,使用bzip2壓縮;
  • 解壓縮:tar -xzvf aa.tar.gz,將壓縮文件解壓到當前目錄;
  • -c:創建壓縮包;
  • -x:解壓縮包;
  • -z:是否需要使用gzip壓縮;
  • -j:是否需要使用bzip2壓縮;
  • -v:壓縮過程中顯示文件;
  • -f:使用檔名,在f之後要立即接檔名;
  • -tf:查看歸檔文件裏面的文件;

zip
apt-get install unzip
unzip ***.zip


>> Linux 軟件的安裝與卸載

  • 更新數據源https://blog.csdn.net/qq_37546891/article/details/80482031#t5

  • apt:(Advanced Packaging Tools 高級安裝包工具)
    是Ubuntu下的軟件包管理程序,使用它可以找到想要的軟件包,並進行安裝、更新、卸載;

  • apt-get 是一個下載安裝軟件包的簡單命令行接口,一般需要root權限執行;

    • apt-get update:更新軟件包列表;
    • apt-get [選項] install pkg1 [pkg2 ...]:安裝軟件包;
    • apt-get [選項] remove pkg1 [pkg2 ...]:刪除軟件包;
  • 常用命令:
    update - 更新軟件包列表
    upgrade - 更新操作系統版本(慎用!!)
    install - 安裝軟件包
    remove - 移除軟件包
    autoremove - 自動移除全部不使用的軟件包;刪除軟件包及其依賴;
    purge - 移除軟件包和配置文件
    source - 下載源碼檔案
    build-dep - 爲源碼包配置編譯依賴
    dist-upgrade - 發行版升級
    dselect-upgrade - 依照 dselect 的選擇更新
    clean - 清除下載的歸檔文件
    autoclean - 清除舊的的已下載的歸檔文件
    check - 檢驗是否有損壞的依賴

  • 選項
    -h 本幫助文件;
    -q 輸出到日誌 - 無進展指示;
    -qq 不輸出信息,錯誤除外;
    -d 僅下載 - 不安裝或解壓歸檔文件;
    -s 不實際安裝。模擬執行命令;
    -y 安裝包的時候會詢問y/n,這個參數是所有詢問默認y;
    -f 嘗試修正系統依賴損壞處;
    -m 如果歸檔無法定位,嘗試繼續;
    -u 同時顯示更新軟件包的列表;
    -b 獲取源碼包後編譯 -V 顯示詳細的版本號;


>> 用戶和組管理

~ 用戶

Linux操作系統是一個多用戶操作系統,它允許多用戶同時登錄到系統上並使用資源,系統會根據賬戶來區分每個用戶的文件、進程、任務、環境,使得每個用戶工作互不干擾;

安裝操作系統時創建了一個賬戶,該用戶爲root的代理用戶,使用sudo可以提升用戶權限成root的權限,不使用sudo時就是普通用戶;在實際生產操作中,我們基本都是使用超級管理員賬戶操作Linux系統的,Linux系統默認是關閉root賬戶的,所以需要爲root用戶設置一個初始密碼以方便使用;

  • sudo passwd root:設置root賬戶密碼;
  • su:切換到root;
  • 設置允許遠程登錄root:
    在這裏插入圖片描述

~ 組

  • 私有組:當創建一個用戶時沒有指定屬於哪個組,Linux就會建立一個與用戶同名的私有組,此私有組只含有該用戶;
  • 標準組:創建一個用戶時可以選定一個標準組,若一個用戶同時屬於多個組時,登錄後所屬的組爲主組,其他爲附加組;

~ 賬戶系統文件說說明

https://www.funtl.com/zh/linux/Linux-用戶和組管理.html#賬戶系統文件說明

/etc/passwd
/etc/shadow
/etc/group
/etc/gshadow

~ 用戶管理常用命令

https://www.funtl.com/zh/linux/Linux-用戶和組管理.html#賬戶管理常用命令

增加用戶
修改用戶
刪除用戶
組賬戶維護
口令維護
用戶和組狀態


>> 文件權限管理

~ ll / ls -al 查看文件/目錄的權限信息

-rw-r--r-- 1 zxj root 148 Aug 17 2015 .profile

  • - rw- r-- r--: 文件類型 / 文件所有者的權限 / 文件所屬用戶組的權限 / 其他用戶的權限;
    • 文件類型:
      • d:表示目錄;
      • -:表示普通文件;
      • l:表示鏈接文件(軟連接);
      • c:表示串行端口字符設備文件;
      • b:表示可供存儲的塊設備文件;
    • 文件權限:3個一組
      • -:0,無權限;
      • r:4,讀權限;
      • w:2,寫權限;
      • x:1,可執行權限;
  • 1:文件連接數,指有多少文件指向同一個索引節點;
  • zxj:文件/目錄所屬的用戶;
  • root:文件/目錄所屬的組;
  • 148:文件的大小,默認bytes;
  • Aug 17 2015:文件的創建時間;(最後被修改時間)
  • .profile:文件的名稱;

~ 更改操作權限

(1)chown:change owner,更改文件/目錄的所有者,所有者包含用戶和用戶組;

  • chown [-R] 用戶名稱:用戶組名稱 文件/目錄
    -R:進行遞歸式的權限更改,將目錄下的所有文件、子目錄更新爲指定用戶組權限;

(2)chmod:change modify,改變訪問權限;

chmod [who] [操作符號] [mode] 文件名

  • who:表示操作對象可以是以下字母的一個或組合;
    • a:表示所有用戶;(系統默認的,不指定表示a)
    • u:表示用戶user;
    • g:表示用戶組group;
    • o:表示其他用戶;
  • 操作符號:
    • +:表示添加某個權限;
    • -:表示取消某個權限;
    • =:表示賦予給定的權限,取消文檔以前的所有權限;
  • mode:表示可執行的權限,可以是r、w、x;
  • 文件名:可以是使用空格分開的文件列表;

chmod +x a.txt:表示給所有用戶添加對文件a的可執行權限;
chmod u=rwx,g+r,o+r test.txt-rwxrw-r--

~ 數字設定法

r=4,w=2,x=1,無=0

  • rwx:4+2+1=7
  • r-x:4+0+1=5
  • rw-:4+2+0=6

chmod 756 fileName:表示給文件加權限rwxr-xrw-


>> 軟連接和硬鏈接

軟鏈接:
1.軟鏈接,以路徑的形式存在。類似於Windows操作系統中的快捷方式
2.軟鏈接可以 跨文件系統 ,硬鏈接不可以
3.軟鏈接可以對一個不存在的文件名進行鏈接
4.軟鏈接可以對目錄進行鏈接

硬鏈接:
1.硬鏈接,以文件副本的形式存在。但不佔用實際空間。
2.不允許給目錄創建硬鏈接
3.硬鏈接只有在同一個文件系統中才能創建


>> Linux 安裝Java/Tomcat/Mysql

Ubuntu系統安裝完了,數據源也配置好了,root用戶的遠程訪問也打開了,這時候通過SSH遠程連接的這個系統可以關機了:shutdowm -h now

現在打開VMware,克隆一個Ubuntu Server;

一個虛擬機也是一個對象,現在已經封裝好了一個Ubuntu Server,現在創建一個它的子類(克隆),因爲在操作系統中安裝軟件的時候,可能因爲一個軟件裝壞而導致整個操作系統全壞,系統壞了就得重裝系統,再重新配置:更新數據源、打開root遠程訪問等,麻煩!所以現在基於已經配置好的Ubuntu系統,創建一個克隆版本,克隆版本壞了就刪除再重新克隆一個,這樣就不用重裝操作系統了;

克隆完之後,開啓克隆版本的操作系統,使用SSH遠程訪問;

~ 安裝Java

1、下載Linux x64的Java的JRE:jre-8u152-linux-x64.tar.gz;(JDK也可以)
https://www.oracle.com/technetwork/java/javase/downloads/index.html

2、使用ftp將jre從本地上傳到服務器:
安裝操作系統的時候,只安裝了Open SSH這一個服務,不用直接使用ftp服務,因爲ssh服務默認也支持文件傳輸(SFTP),這樣就不用額外安裝ftp服務器了;

Mac版SecureCRT需要使用rz和sz命令才能完成文件的上傳或者下載,若Linux中沒有這兩個命令工具,則需要先安裝:apt-get install lrzsz

  • rz:上傳本地文件到Linux服務器;
    運行該命令會彈出選擇文件的對話框,選擇需要上傳的文件之後,點擊OK,就能完成上傳操作;
  • sz 文件完整路徑:從服務器下載文件到本地;
  • 上傳/下載文件目錄設置:Options --> session options --> terminal --> X/Y/Zmodem

3、文件上傳到執行rz命令的當前目錄下(root的~),上傳完成後,在服務器創建文件夾soft,將文件剪切到soft目錄,然後解壓縮:root@Ubuntu:~/soft# tar -xzvf jdk-8u152-linux-x64.tar.gz

4、手動安裝的軟件只能放在/usr/local目錄下,所以在該目錄下創建目錄java,然後將解壓縮的jdk文件拷貝過去:
root@Ubuntu:~/soft# mkdir /usr/local/java
root@Ubuntu:~/soft# mv jdk1.8.0_152/ /usr/local/java
root@Ubuntu:~/soft# cd /usr/local/java

5、配置系統環境變量:
vi /etc/environment

export JAVA_HOME=/usr/local/java/jdk1.8.0_152
export JRE_HOME=/usr/local/java/jdk1.8.0_152/jre
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib

6、配置用戶變量:
vi /etc/profile(在2個if中間添加)

export JAVA_HOME=/usr/local/java/jdk1.8.0_152
export JRE_HOME=/usr/local/java/jdk1.8.0_152/jre
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOME/bin

7、使用戶環境變量生效:source /etc/profile

8、驗證:cdjava -version

在這裏插入圖片描述

~ 安裝Tomcat

1、下載壓縮文件並上傳到服務器:
root@Ubuntu:~# cd soft/
root@Ubuntu:~/soft# rz

2、解壓縮,並將文件移動到/usr/local目錄下:
root@Ubuntu:~/soft# tar -xzvf apache-tomcat-8.5.23.tar.gz
root@Ubuntu:~/soft# mv apache-tomcat-8.5.23 /usr/local

3、修改端口號:8080 --> 80
root@Ubuntu:/usr/local# cd /usr/local/apache-tomcat-8.5.23/conf
root@Ubuntu:/usr/local/apache-tomcat-8.5.23/conf# vi server.xml

4、啓動Tomcat:
root@Ubuntu:/usr/local# cd /usr/local/apache-tomcat-8.5.23/bin
root@Ubuntu:/usr/local/apache-tomcat-8.5.23/bin# ./startup.sh

5、瀏覽器訪問:
192.168.141.176:80

6、關閉Tomcat服務:
root@Ubuntu:/usr/local/apache-tomcat-8.5.23/bin# ./shutdown.sh

~ 安裝MySQL

1、安裝mysql-serverapt-get install mysql-server

2、查看MySQL安裝在哪:whereis mysql

3、通過查看配置文件,來查看MySQL數據存放路徑:
root@Ubuntu:/etc/mysql# cat my.cnf:查看配置文件,配置是分開的,該文件引入了下面兩個文件的內容;
在這裏插入圖片描述

4、配置MySQL數據存放路徑的配置在/etc/mysql/mysql.conf.d路徑下:
root@Ubuntu:/etc/mysql/mysql.conf.d# vi mysqld.cnf
datadir = /var/lib/mysql
cd /var/lib/mysql
默認有3個數據庫:
在這裏插入圖片描述

5、配置遠程訪問:
cd /etc/mysql/mysql.conf.d
vi mysqld.cnf
bind-address 0.0.0.0

6、重啓MySQL服務:
service mysql restart

7、服務器上登錄mysql,授權:
mysql -u root -p
mysql> grant all privileges on *.* to 'root'@'%' identified by '123456';

8、MySQLWorkbench測試連接服務器:


>> 部署應用到生產環境

1、使用遠程登錄 導入數據庫到Linux服務器:
$ mysql -h 192.168.141.177 -u root -p:使用本地終端登錄到數據庫;
mysql> create database myforum;:創建數據庫;
mysql> use myforum;:使用剛纔創建的數據庫;
mysql> source /Users/zxj/文檔/Workspace/myforum/001_creat_myforumdb.sql;:使用腳本導入數據庫;

2、將項目打包:
cd /Users/zxj/文檔/Workspace/myforum進入到項目目錄;
mvn clean package -Dmaven.test.skip=true:打war包;
Building war: /Users/zxj/文檔/Workspace/myforum/target/myforum-0.0.1-SNAPSHOT.war:打好的war包在該目錄下;

3、部署的時候不直接部署war包,因爲war包更新的時候重新部署,會把原來的war包刪掉,爲了安全起見只直接部署文件夾;
所以將文件打包壓縮成zip文件,並上傳到Linux服務器;

apt-get install unzip:安裝解壓縮.zip文件的程序;
root@Ubuntu:~/soft# cd /usr/local/apache-tomcat-9.0.21/webapps/ROOT
root@Ubuntu:/usr/local/apache-tomcat-9.0.21/webapps/ROOT# rm -fr *:刪除root下所有內容;
root@Ubuntu:/usr/local/apache-tomcat-9.0.21/webapps/ROOT# mv /root/soft/myforum-0.0.1-SNAPSHOT.zip .將zip文件複製到Tomcat的webapp的Root目錄:
root@Ubuntu:/usr/local/apache-tomcat-9.0.21/webapps/ROOT# unzip myforum-0.0.1-SNAPSHOT.zip:解壓縮;將解壓縮後的文件直接放在root目錄下;
root@Ubuntu:/usr/local/apache-tomcat-9.0.21/bin# ./shutdown.sh
root@Ubuntu:/usr/local/apache-tomcat-9.0.21/bin# ./startup.sh

4、瀏覽器訪問失敗:沒有修改數據庫地址;
root@Ubuntu:/usr/local/apache-tomcat-9.0.21/logs# tail -f catalina.out:查看日誌;
root@Ubuntu:/usr/local/apache-tomcat-9.0.21/webapps/ROOT/myforum-0.0.1-SNAPSHOT/WEB-INF/classes# vi db.properties:修改數據庫地址爲服務器的地址;

5、瀏覽器訪問:http://192.168.141.177;將項目部署到Tomcat的webapps的ROOT目錄下,直接在地址欄輸入Linux服務器地址即可;將Tomcat端口由8080改爲80,訪問的時候也可以不輸入端口號;

文章參考博客視頻教程

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章