1. 程式人生 > >從零開始學習Linux部署Java web專案

從零開始學習Linux部署Java web專案

前言

最近越來越發現需要學習的東西太多了,前幾天公司伺服器出現問題,需要對伺服器硬體進行維護,當然伺服器上的服務需要部署到另一個伺服器上。這對於我來說是很陌生的,雖然這件工作沒有讓我去做,但是還是很好奇web專案是如何部署到伺服器的。其實很早之前就想學習這些,但是一直沒有行動。所以趁著這股興奮勁,就決定去學習一下,並做此次總結。

準備工作

虛擬機器 : VMware10
Linux : CentOS-7-x86_64-DVD
JDK : java 1.7
Xmanager Enterprise (Xshell) : Xmanager Enterprise 5( Xshell 5)
Tomcat :

Tomcat-8.5

VMware安裝

對於VMware的安裝沒什麼可說的,直接下一步就可以了,在最後會出現一個填註冊碼的地方,這個軟體是收費的,所以我們需要破解,在上傳的VMware10安裝包中,有一個vm10keygen.exe可執行檔案,該檔案是生成註冊碼序列的,直接將Serial後的一串字元複製填寫即可破解使用。

這裡寫圖片描述

CentOS7安裝

在VMware上安裝Linux,需要先建立一個虛擬機器。開啟VMware後點擊檔案-新建-虛擬機器(接下來上圖了,看圖更清晰)

這裡寫圖片描述

之後我們選擇制自定義,當然如果你不想麻煩的話可以選擇典型安裝,這個也是預設的安裝的方式。點選下一步

這裡寫圖片描述

硬體的相容性我們直接選擇預設的的就行。

這裡寫圖片描述

在這裡就出現了選擇安裝的作業系統的方式,有光碟,iso檔案及稍後安裝作業系統。在這裡選擇了第三項先稍後安裝作業系統。

這裡寫圖片描述

這裡就是選擇要安裝的作業系統,以及作業系統的版本。顯然選擇Linux,CentOS 64位就好了

這裡寫圖片描述

這裡給虛擬機器命名及選擇安裝位置,點選下一步就會出現處理器設定,以及虛擬機器記憶體設定,可以直接選擇預設的就行了。再點選下一步就會出現網路型別設定,網路型別選擇NAT,之後就一路下一步就可以了。

這裡寫圖片描述

走到上面注意一下,這裡選擇磁碟大小,根據自己的使用設定,預設是20G,磁碟儲存選擇中間的那一項將虛擬磁碟儲存為單個檔案。

這裡寫圖片描述
上面選擇虛擬磁碟儲存的位置,可以選擇上面虛擬機器的安裝位置就可以,當然也可以按你自己意願選擇位置。再下一步就出現完成的按鈕,點選完成即可。此時硬體資訊都給你羅列出來了,你可以選擇你建立的虛擬機器右鍵設定,去更改這些選項。如下圖

這裡寫圖片描述

最後需要點選上圖DVD選項,選擇使用ISO檔案,並選擇你iso檔案所在的地方,點選確定。然後選擇開啟虛擬機器就開始進行安裝了

這裡寫圖片描述

出現上面圖示,通過上下鍵選擇第一項Install CentOS 7然後回車。

這裡寫圖片描述

出現上面語言選擇,我這裡選擇了預設語言英語,你可以選擇中文。然後就出現一些設定項如下

這裡寫圖片描述

上面選項的配置如DATE,KEYBOADY,LANGUAGE SUPPORT等不作介紹,可以自己設定。主要介紹下磁碟分割槽

這裡寫圖片描述

如果你想省事就直接尊重第一項Automatically就可以,它會自己幫助你分配,選擇自己配置,第二個選項。

這裡寫圖片描述

上面分割槽模式選擇標準方式,及第一項。

這裡寫圖片描述

點選左下角那個加號即可自己增加。之後選擇網路選項設定網路

這裡寫圖片描述

如上圖將右上角設定為ON模式,會出現下面IP地址等資訊。確定之後選擇右下角Begin Installation

這裡寫圖片描述

到這裡就正式安裝系統了,上面有設定使用者的,你可以設定root使用者密碼,及建立自己使用者,登入時驗證。(Xshell遠端登入時需要使用者名稱密碼)後面就耐心等待安裝就可以了,時間相對較長。

JDK安裝

為了真實模擬伺服器,我用Xshell 5登入到Linux系統,用root使用者登入的。

Xshell:\> 

Connecting to 192.168.199.130:22...
Connection established.
To escape to local shell, press 'Ctrl+Alt+]'.

Last login: Wed Dec  7 08:46:57 2016 from 192.168.199.1
ABRT has detected 1 problem(s). For more info run: abrt-cli list --since 1481071617
[[email protected] ~]# java -version
java version "1.7.0_75"
OpenJDK Runtime Environment (rhel-2.5.4.2.el7_0-x86_64 u75-b13)
OpenJDK 64-Bit Server VM (build 24.75-b04, mixed mode)
[[email protected] ~]# 

登入之後,我們通過java -version命令可以看到CentOS 作業系統預設安裝的是有JDK的,當然如果你不想使用這個版本的JDK,可以自己安裝。

Tomcat 安裝

我們先進入home目錄下,建立tomcat8資料夾

[root@xiehui /]# cd home
[root@xiehui home]# mkdir tomcat8
[root@xiehui home]# ls
tomcat8  xiehui

然後將apache-tomcat-8.5.8.tar.gz複製到新建立的資料夾中,解壓檔案

[root@xiehui tomcat8]# tar -zvxf apache-tomcat-8.5.8.tar.gz

解壓之後,我們進入解壓的檔案

[root@xiehui apache-tomcat-8.5.8]# ls
bin  conf  lib  LICENSE  logs  NOTICE  RELEASE-NOTES  RUNNING.txt  temp  webapps  work

bin目錄中存放Tomcat的一些指令碼檔案,最重要的也是用的最多就是啟動和關係tomcat服務指令碼。
conf:存放Tomcat伺服器的各種全域性配置檔案,其中最重要的是server.xml和web.xml
webapps:Tomcat的主要Web釋出目錄,預設情況下把Web應用檔案放於此目錄
logs:存放Tomcat執行時的日誌檔案
那麼我們進入bin目錄將tomcat啟動

[[email protected] apache-tomcat-8.5.8]# cd bin
[[email protected] bin]# ./startup.sh
Using CATALINA_BASE:   /home/tomcat8/apache-tomcat-8.5.8
Using CATALINA_HOME:   /home/tomcat8/apache-tomcat-8.5.8
Using CATALINA_TMPDIR: /home/tomcat8/apache-tomcat-8.5.8/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /home/tomcat8/apache-tomcat-8.5.8/bin/bootstrap.jar:/home/tomcat8/apache-tomcat-8.5.8/bin/tomcat-juli.jar
Tomcat started.

執行後我們發現最後有提示Tomcat started,表示服務已經啟動。然後通過下面命令檢視服務詳細資訊

[[email protected] bin]# ps -ef|grep tomcat
root      5110     1 54 11:12 pts/0    00:00:21 java -Djava.util.logging.config.file=/home/tomcat8/apache-tomcat-8.5.8/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -classpath /home/tomcat8/apache-tomcat-8.5.8/bin/bootstrap.jar:/home/tomcat8/apache-tomcat-8.5.8/bin/tomcat-juli.jar -Dcatalina.base=/home/tomcat8/apache-tomcat-8.5.8 -Dcatalina.home=/home/tomcat8/apache-tomcat-8.5.8 -Djava.io.tmpdir=/home/tomcat8/apache-tomcat-8.5.8/temp org.apache.catalina.startup.Bootstrap start
root      5143  4533  0 11:12 pts/0    00:00:00 grep --color=auto tomcat
[[email protected] bin]# 

通過上面命令,我們可以看到啟動使用者,程序id,配置等資訊。對於結束服務我們可以在bin目錄執行./shutdown.sh。也可以使用下面命令

[root@xiehui bin]# kill -9 5110
[root@xiehui bin]# ps -ef|grep tomcat
root      5211  4533  0 11:18 pts/0    00:00:00 grep --color=auto tomcat

kill -9後面的數字就是服務的程序號,如果想啟動再次執行./shutdown.sh就可以了。再次把服務開啟,然後在本機訪問Linux Tomcat ,發現並不能訪問,但是在Linxu內部的瀏覽器卻是可以的,這種原因一般是防火牆的問題。關閉下防火牆就可以訪問了

[root@xiehui sysconfig]# systemctl stop firewalld

因為配置的是NAT,即使本地和虛擬機器不在一個網段也是可以訪問的。安裝好Tomcat後,在webapps下面自帶一個demo

[root@xiehui apache-tomcat-8.5.8]# cd webapps/
[root@xiehui webapps]# ls
docs  examples  host-manager  manager  ROOT
[root@xiehui webapps]# 

發現此時打開了部署的web專案。
這裡寫圖片描述

部署專案只需要把把專案複製到Tomcat的Webapps下即可。這也是最簡單的一種方式。如果我們想更改我們的tomcat服務介面,那麼可以到tomcat下的conf目錄,裡面有個server.xml檔案。重要的配置資訊在這裡

  <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
  <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">

在配置檔案中有一個unpackWARs引數,如果設定為false即可以部署war包專案,tomcat會自動解壓檔案。還可以在server.xml中使用Context標籤指定專案在任何位置。

<Context path="定web應用的虛擬路徑名" docBase="要部署的Web應用的源路徑(實際位置)" reloadable="true" /> 

到這裡,通過自己的學習並實踐將專案部署掌握了,從此部署專案So easy。應了那句話自己動手豐衣足食。
最後再發幾個常用命令

df -h   檢視磁碟使用資訊
vi filename 檢視檔案輸入後進入命令列模式,命令列模式輸入I進入插入模式,此時可更改檔案內容,更改完成,按Esc退出編輯模式到命令列模式
: wq (輸入「wq」,存檔並退出vi) 
: q! (輸入q!, 不存檔強制退出vi) 
cat /proc/version  檢視正在執行的核心版本
cat /etc/issue       顯示的是發行版本資訊
lsof -i:埠號         檢視佔用某埠的程序
ps aux | grep 程序號        根據程序ID檢視程序詳細資訊
cat /proc/cpuinfo |grep "physical id"|sort |uniq|wc -l   物理CPU的個數
cat /proc/cpuinfo |grep "processor"|wc -l               邏輯CPU的個數
cat /proc/cpuinfo |grep "cores"|uniq                檢視CPU核心數
top  檢視系統負載,CPU,儲存,程序等詳細的使用資訊

相關推薦

開始學習Linux部署Java web專案

前言 最近越來越發現需要學習的東西太多了,前幾天公司伺服器出現問題,需要對伺服器硬體進行維護,當然伺服器上的服務需要部署到另一個伺服器上。這對於我來說是很陌生的,雖然這件工作沒有讓我去做,但是還是很好奇web專案是如何部署到伺服器的。其實很早之前就想學習這些,

學習Linux部署java web專案

準備工作虛擬機器 : VMware10 Linux : CentOS-7-x86_64-DVD JDK : java 1.7 Xmanager Enterprise (Xshell) : Xmanager Enterprise 5( Xshell 5) Tomcat : To

開始使用Docker構建Java Web開發執行環境

概述 前面我們講了關於Docker的一些基本概念和操作,今天我們以一個簡單的Java Web例子來說一下Docker在日常工作中的應用,本篇主要講如下幾部分內容:建立jdk映象、建立resin映象、啟動web專案。因為本篇中的內容都是基於Dockerfile來建立的,針對於

開始學習演算法(Java實現)~~~~之字串篇~~~判斷兩個字串是否是顛倒字母順序構成的

從今天開始記錄一下學習演算法的例程,貴在堅持! 寫出一個函式 anagram(s, t) 去判斷兩個字串是否是顛倒字母順序構成的 樣例    給出 s="abcd",t="dcab",返回 true 難都係數* 以下是java程式碼實現: public class So

linux部署java web 專案(筆記)

建立資料夾  # mkdir java //   建立資料夾java,mysql,tomcat 個人習慣 我喜歡分開資料夾安裝 # cd java //   開啟新建立的資料夾  JDK

開始學習Gradle之三---多專案構建

   隨著資訊化的快速發展,IT專案變得越來越複雜,通常都是由多個子系統共同協作完成。對於這種多系統、多專案的情況,很多構建工具都已經提供了不錯的支援,像maven、ant。Gradle除了借鑑了ant或者maven的繼承的方式定義子專案,也提供了一種更為方便的集中配置的方式,大大減少了構建帶來的複雜度。

開始Linux學習

日期時間 modules 種類 example arch ssi pri rst systemctl 計算機的組成及其功能 在馮諾依曼體系中,計算機的組成部分有 控制器:負責指揮、協調計算機系統的操作運算器:執行算術和邏輯運算操作存儲器:存儲數據、指令和程序等信息,並在需要

開始Linux學習

col ctrl name 情況 bcd 刪除 指定 同名 ati Linux上的文件管理類命令 常用的文件管理工具有:cp , mv , rm cp命令——copy:NAMEcp - copy files and directories復制 文件 和 目錄SYNO

開始Linux學習

重命名 信息 storage centos7 pass ins mem cut 通用 Linux用戶和組管理 今天我們來介紹Linux的用戶和組管理,在Linux系統上,用戶管理是基於用戶名和密碼的方式進行資源分配的。 Linux上的用戶即Username/UID分為:

開始Linux學習日誌

從零開始的Linux學習日誌 從零開始的Linux學習生活 搭建環境 常見的Linux指令 1. echo 2.date 3.reboot和poweroff 4.其他重要指令 小結 從零

開始學習 asp.net core 2.1 web api 後端api基礎框架(七)-新增一個查詢單筆資料的方法

再寫一個查詢單筆資料的方法: [Route("{id}")] public JsonResult GetProduct(int id) { return new JsonResult(ProductService.Curre

開始學習 asp.net core 2.1 web api 後端api基礎框架(六)-把獲取資料的程式碼整理成一個服務

建立一個Services目錄, 然後建立一個 ProductService.cs類 我們把獲取資料的程式碼整理成一個ProductService, 然後保證程式執行的時候, 操作的是同一批資料: namespace CoreBackend.Api.Services { public

開始學習 asp.net core 2.1 web api 後端api基礎框架(五)-Routing 路由

路由有兩種方式: Convention-based (按約定), attribute-based(基於路由屬性配置的).  其中convention-based (基於約定的) 主要用於MVC (返回View或者Razor Page那種的). Web api 推薦使用attribute

JAVA開始學習(2)

一、JAVA基本資料型別 JAVA的兩大資料型別 內建資料型別 引用資料型別 內建資料型別 Java語言提供了八種基本型別。六種數字型別(四個整數型,兩個浮點型),一個字元型別,還有一種布林型。 byte:(類比char) byte資料型別是8位,有符號的,以二進

JAVA開始學習(6)

一、Java正則表示式 正則表示式定義了字串的模式 正則表示式可以用來搜尋、編輯或處理文字 正則表示式並不僅限於某一種語言,但是在某種語言中有細微的差別 二、Java方法 System.out.println() println()是一個方法 System是系統

開始Linux學習日誌(2)

重定向命令列 1.標準輸入輸出重定向 標準輸入重定向(STDIN,檔案描述符為0) 預設從鍵盤輸入,也可從檔案或命令輸入。 標準輸出重定向(STDOUT,檔案描述符為1) 預設輸出到螢幕 錯誤輸出重定向(STDERR,檔案描述符為2) 預設

開始學習laravel web開發

所有的程式碼都是在app->http->controller裡面完成先建立路由然後寫controller,路由檔案是app\Http\routes.php資料庫配置檔案在config下面的d

Photon Server遊戲伺服器開始學習(一)部署第一個伺服器程式

概述 Photon引擎是一款實時的Socket伺服器和開發框架,快速、使用方便、容易擴充套件。 服務端架構在windows系統平臺上,採用C#語言編寫。 客戶端SDK提供了多種平臺的開發API,包括DotNet、Unity3D、C/C++以及ObjC等。

開始學習 asp.net core 2.1 web api 後端api基礎框架(四)-建立Controller

建立一個Controllers目錄, 然後建立一個“控制器類” ProductController.cs, 它需要繼承Microsoft.AspNetCore.Mvc.Controller 在Controller裡面寫這個Get方法: namespace CoreBack

開始學習移動端Web開發

背景 近年來,隨著智慧手機的普及,移動端開發受到了異常的關注。從傳統的安卓、IOS原生手機系統應用開發,轉向了移動端Web開發或者是混合開發,既然有需求,那就讓我們一起來學習移動端Web開發吧。本文旨在讓讀者以最快的時間瞭解移動Web開發基礎以及介紹一些