Linux之換源、Tomcat及jdk的安裝配置和設定Tomcat自動啟動

涵ヂ發表於2020-10-02

換源(CentOs更換為阿里雲的源)

  1. 確保更換之前自己是否安裝wget,若是沒有安裝wget,直接安裝即可
    yum list wget
    在這裡插入圖片描述

yum -y install wget
在這裡插入圖片描述
在這裡插入圖片描述

  1. 首先備份
    mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
  2. 下載阿里雲的yum源到/etc/yum.repos.d/
    wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

在這裡插入圖片描述

  1. 清除快取
    yum clean all
    在這裡插入圖片描述

  2. 更新本地YUM快取
    yum makecache
    在這裡插入圖片描述

  3. 按一個軟體試下,檢視下載源是否已經變成阿里雲了
    yum -y install lrzsz
    在這裡插入圖片描述

注:lrzsz是一款在linux裡可代替ftp上傳和下載的程式。

Tomcat及jdk的安裝配置和設定Tomcat自動啟動

上傳及下載檔案

  • 安裝及使用lrzsz
  • 上傳
    rz
  • 下載
    sz 檔名

上傳jdk和tomcat的安裝檔案到指定資料夾

mkdir /usr/local/mytools

在這裡插入圖片描述

注1:安裝見資料
apache-tomcat-8.5.20.tar.gz
jdk-8u151-linux-x64.tar.gz

在這裡插入圖片描述

linux壓縮和解壓命令

  • tar壓縮命令
    tar壓縮命令為 tar -zcvf 壓縮名.tar.gz 檔案/目錄
    tar解壓命令為 tar -zxvf 壓縮包名

  • zip檔案
    zip壓縮命令 zip -q -r 壓縮包名.zip 目錄/檔名
    zip -r xxx.zip ./*
    zip解壓命令 unzip filename.zip

linux中JDK的安裝與配置

  • 操作:解壓jdk
    cd /usr/local/mytools
    tar -zxvf jdk-8u151-linux-x64.tar.gz -C /usr/local 解壓到指定資料夾

注1:在解壓的時候 -C 是解壓到指定目錄中,一定要加-C引數,而且區分大小寫的,-_- 555555555555555,“很痛的很痛的很痛的領悟”
注2:&&可將多條命令合成一行
cd /usr/local/mytools && tar -zxvf jdk-8u151-linux-x64.tar.gz -C /usr/local

  • 操作:配置jdk的環境變數
    vim /etc/profile
    #開啟配置檔案並在檔案的最後新增如下內容(注意:=兩邊沒有空格)
  export JAVA_HOME=/usr/local/jdk1.8.0_151
     export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
     export PATH=$JAVA_HOME/bin:$PATH
  • 重啟系統使環境變數生效
    reboot

    • 執行如下命令,也可以讓環境變數生效
      source /etc/profile
  • 檢視環境變數是否配置成功
    java -version
    在這裡插入圖片描述

tomcat安裝與配置

  • 解壓tomcat到指定路徑
    tar -zxvf apache-tomcat-8.5.20.tar.gz -C /usr/local

  • 解壓完成後進入tomcat的bin目錄
    cd /usr/local/apache-tomcat-8.5.20/bin

  • 啟動或關閉tomcat
    cd /usr/local/apache-tomcat-8.5.20/bin
    ./startup.sh
    ./shutdown.sh
    在這裡插入圖片描述

注1:如何檢視遠端伺服器的日誌
cd /usr/local/apache-tomcat-8.5.20/logs
tail -f catalina.out #實時檢視日誌檔案
tail -100f catalina.out #實時檢視日誌檔案後一百行
在這裡插入圖片描述
注2:tomcat啟動後,外部瀏覽器無法訪問,原因:防火牆中8080埠未開放,
防火牆的開啟詳情見:附錄二

ESC伺服器-安全組規則

以上步驟完成後,還是無法釋出專案的
- 新增管理員、密碼、許可權
cd /usr/local/apache-tomcat-8.5.20/conf
vim tomcat-users.xml

  然後在`<tomcat-users>`標籤中插入以下內容(即新增管理員、密碼、許可權
 <role rolename="manager-gui"/> 
  <user username="admin" password="123" roles="manager-gui"/>
  • 允許admin遠端訪問tomcat
    此步驟完成後manager應用仍然會拒絕訪問,因為tomcat8.5以後在manager應用中,預設只允許本機訪問
    cd /usr/local/apache-tomcat-8.5.20/webapps/manager/META-INF
    vim context.xml

將Valve標籤註釋即可

<Context antiResourceLocking="false" privileged="true" >
       <!--將下面的一行程式碼註釋即可
       <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
       -->
       <Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/>
  </Context>

瞭解如何修改tomcat的埠號即可,無需修改
6.將tomcat埠號port="8080"改為80
cd /usr/local/java/apache-tomcat-8.5.20/conf
vim server.xml

  • 重啟tomcat,使修改生效
    cd /usr/local/apache-tomcat-8.5.20/bin
    ./shutdown.sh

  • 通過admin使用者遠端釋出web專案,例如:hello.war

  • 但是重啟CentOS7之後,hello專案無法再次訪問

Centos7下設定Tomcat開機自啟動

  • systemctl命令
    • 檢視全部服務命令:systemctl list-unit-files --type service ctrl+c可以回到命令輸入
    • 檢視服務:systemctl status 服務名.service
    • 啟動服務:systemctl start 服務名.service
    • 停止服務:systemctl stop 服務名.service
    • 重啟服務:systemctl restart 服務名.service
    • 增加開機啟動:systemctl enable 服務名.service
    • 刪除開機啟動:systemctl disable 服務名.service

注1:字尾.service可以省略

  • tomcat增加啟動引數
    • tomcat需要增加一個pid檔案(注意:此檔案由系統自動建立,我們只需要指定此檔案的位置即可)
      tomcat.pid檔案與bin目錄平級。

    • 在tomcat的bin目錄下面,增加setenv.sh配置,catalina.sh啟動的時候會呼叫,同時配置Java記憶體引數
      vim /usr/local/apache-tomcat-8.5.20/bin/setenv.sh

      在setenv.sh增加以下內容:
      #add tomcat pid
      CATALINA_PID="$CATALINA_BASE/tomcat.pid"
      #add java opts
      #測試環境下記憶體可適當調小一些,正式環境下當然是越大越好
      #JAVA_OPTS="-server -XX:PermSize=256M -XX:MaxPermSize=1024m -Xms512M -Xmx1024M -XX:MaxNewSize=256m"
      JAVA_OPTS="-server -XX:PermSize=128M -XX:MaxPermSize=512m -Xms256M -Xmx512M -XX:MaxNewSize=128m"

      注意:檔案的儲存路徑不要搞錯了“tomcat/bin/setenv.sh”

    • 在/usr/lib/systemd/system目錄下建立tomcat.service檔案
      #vim編輯檔案,檔案不存在就建立此檔案,並進行編輯
      vim /usr/lib/systemd/system/tomcat.service

注1:詳情見:資料/tomcat.service

tomcat.service

###注意:請將jdk和tomcat改為自己的安裝路徑
###/usr/local/jdk1.8.0_151改為自己的jdk路徑
###/usr/local/apache-tomcat-8.5.20改為自己的tomcat路徑
###Environment="JAVA_HOME=/usr/local/jdk1.8.0_151"這裡要配置環境變數,在/etc/profile中的配置在系統服務中不生效
###[unit]配置了服務的描述,規定了在network啟動之後執行。[service]配置服務的pid,服務的啟動,停止,重啟
###[install]配置了使用使用者
[Unit]
Description=Tomcat
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
Environment="JAVA_HOME=/usr/local/jdk1.8.0_151"
PIDFile=/usr/local/apache-tomcat-8.5.20/tomcat.pid
ExecStart=/usr/local/apache-tomcat-8.5.20/bin/startup.sh
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
  • 重啟系統讓tomcat.service檔案生效(此次tomcat還未自動啟動)

  • 接下來配置tomcat開機啟動

    • 設定tomcat開機啟動:systemctl enable tomcat
    • 啟動tomcat服務:systemctl start tomcat
    • 檢視服務中有沒有tomcat:ps -ef |grep tomcat
      在這裡插入圖片描述
  • reboot再次重啟系統後,發現tomcat已自動啟動了

附錄

附錄一:CentOS7防火牆查詢、啟動和關閉

CentOS 7.0預設使用的是firewall作為防火牆

  1. 檢視防火牆狀態
    firewall-cmd --state
    在這裡插入圖片描述

  2. 停止firewall
    systemctl stop firewalld.service

  3. 禁止firewall開機啟動
    systemctl disable firewalld.service

附錄二:CentOS 7快速開放埠

CentOS7防火牆firewalld預設是開啟的,下面記錄如何使用firewalld開放Linux埠:

  • 開啟埠
    firewall-cmd --zone=public --add-port=8080/tcp --permanent
    在這裡插入圖片描述

  • 刪除指定埠
    firewall-cmd --zone=public --remove-port=8080/tcp --permanent

  • 查詢指定埠號是否開啟:
    firewall-cmd --query-port=8080/tcp

  • 重啟防火牆(不重啟以上的設定是不會生效的):
    firewall-cmd --reload
    在這裡插入圖片描述

  • 查詢有哪些埠是開啟的:
    firewall-cmd --list-port
    在這裡插入圖片描述

  • 命令含義:
    –zone #作用域
    –add-port=8080/tcp #新增埠,格式為:埠/通訊協議
    –permanent #永久生效,沒有此引數重啟後失效

附錄三:

  1. SSH是什麼?
    ssh是一種安全協議,主要用於給遠端登入會話資料進行加密,保證資料傳輸的安全
  2. SSH分為客戶端和服務端。
    服務端是一個守護程式,一般是sshd程式,在後臺執行並響應來自客戶端的請求。提供了對遠端請求的處理,一般包括公共金鑰認證、金鑰交換、對稱金鑰加密和非安全連線
  3. 工作機制
    3.1 客戶端傳送一個連線請求到遠端服務端
    3.2 服務端檢查申請的包和IP地址,再傳送金鑰給SSH客戶端;
    3.3 客戶端再將金鑰發回服務端,自此建立連線

附錄四:

Linux 軟體安裝到 /usr,/usr/local/ 還是 /opt 目錄?

  1. /usr:系統級的目錄,可以理解為C:/Windows/,/usr/lib理解為C:/Windows/System32。
  2. /usr/local:使用者級的程式目錄,可以理解為C:/Progrem Files/。使用者自己編譯的軟體預設會安裝到這個目錄下。
  3. /opt:使用者級的程式目錄,可以理解為D:/Software,opt有可選的意思,這裡可以用於放置第三方大型軟體(或遊戲),當你不需要時,直接rm -rf掉即可。
    在硬碟容量不夠時,也可將/opt單獨掛載到其他磁碟上使用。

相關文章