阿里雲Linux服務器初探html
Linux圖像化界面(知道有這個東西就行了,不要安)
鳥哥的Linux 私房菜 基礎學習篇
Linux經常使用基本命令
在Windows上經過putty遠程登陸CentOS
Linux文件系統
Linux命令簡寫和全稱
Linux命令簡寫和全稱-2
Linux必學的60個命令
28 個必備的 Linux 命令行工具java
1.第一個程序包mysql
今天休息,隨後打算照着網上的說的方法,實驗一下eclipse處處war包的過程.隨後遇到了不少坑.這裏來挖一挖.高手略過.
先是我作了一個小程序,about輸入域名(domainname)查詢IP地址,用到了JSP,Servlet.
首先是一個表單用於輸入域名和點擊查詢:linux
其次對應表單的action還有一個IpChecker.java 即用一個Servlet處理表單:git
而後直接在eclipse裏點到IpCheck.jsp頁面啓動服務->Tomcat啓動,彈出頁面,輸入域名,隨後點擊查詢便能查詢到域名的IP地址.在這個Servlet裏面,使用的是InetSocketAddress類:程序員
以後利用RequestDispatcher的include方法把查詢的IP一同展現到當前頁面.web
找了一篇不錯博客關於Socket
http://www.javashuo.com/article/p-wvrmlahd-a.htmlsql
隨後,藉着Linux服務器想在線測試一下,不料發生了情況.shell
最後,總結了一下,服務器和本地開發環境要使用一致的版本.
不過,慶幸的是,IP查詢這個功能仍是作出來了,想一想以前在小互聯網公司作美工和網站維護時,常用的IP地址查詢…作起來原來這麼簡單.
固然,這只是一個小demo,更厲害的是能夠查詢IP的瀏覽量,搜索網站目錄結構及內容,和進行TCP/IP傳輸時截取和篡改了(*該項違反網絡安全協議,可用於本身網站測試用於網絡安全學習)…數據庫
2.在服務器端的神器Vim
以前看Unix系統編年史(也就是Linux系統的前身),瞭解到vi,也就是vim的做者 Bill Joy.
http://blog.csdn.net/adcxf/article/details/2091571 <-Bill Joy 介紹
在以前看PHP做者是個挺胖的哥們,而寫出了讓阿波羅成功登錄月球的代碼的竟然是個女的.名字叫 Margaret Hamilton <- 她的維基百科 https://en.wikipedia.org/wiki/Margaret_Hamilton_(scientist)
瑪格麗特·漢密爾頓 | 旁邊是「著做等身」的阿波羅制導系統的代碼
一樣是很偉大的程序員,在Bill Joy的Vim中開始界面也有做者提倡的幫助烏干達兒童的標語.
首先打開你的xshell或者putty.在Command line輸入命令: vi 而後按tab鍵兩下
查看有沒有vim,注意vi雖然是Bill的做品,但咱們要使用的是vim,沒有的話咱們安裝一個.
繼續在命令行輸入:yum -y install vim*(這裏是centos,也就是Linux發行版的命令.)
在一系列的安裝代碼飄事後,咱們在用vi命令查看下有沒有vim顯示了呢~
至此,vim安裝成功.在命令行輸入vim回車.
接下來咱們作點有趣的東西
…略…
這時界面已是HelloWorld.java的編輯頁面了.
好,咱們寫一個輸出用來測試. 記得要先按下鍵盤上的 i 鍵用來輸入.想切換回命令模式按一下 ESC.
好,千萬先別保存!,若是你和我同樣以前習慣性地按了ctrl+S ,那麼恭喜你,你如今的xshell或者已經卡住了.由於在vim中,保存什麼的也是要用命令的.
剛纔新建文件是用的 :new ,保存命令是 :x ,好,這時,你的HelloWorld.java文件才正式出如今文件夾root中.不要着急切換到root文件夾,由於root根目錄是能夠直接享受命令操控的.
用咱們熟悉的編譯方法 javac HelloWorld.java ,若是不提示錯誤,則編譯經過了,看到root文件夾下面會有它的.class文件,若是提示錯誤,會告訴你錯誤在哪裏.
也許你發現你在編輯HelloWorld.java時,打出字母並無高亮,那是由於你沒有對vim進行配置.
設置方法很簡單,回到初始命令行(若是你在別的目錄,使用 cd ~/ 回到初始目錄)
好,將以上內容寫入打開的 .vimrc 而後 :x 保存並退出, 再打開剛剛的 HelloWorld.java 是否是顯示得和個人同樣了?
3.重裝系統之殤
由於本地環境是tomcat9和jdk9,而服務器端當時沒看好安裝的是雙8系統,而在Oracle官網上也沒有這些老版本的維護了,因此決定從新安裝下系統.
中止服務器實例後,再選擇後面的更換系統盤:
我在以前作公司網站時,由於版本的問題這樣重啓服務器好屢次,而最熟悉的當屬aliyun linux…但選擇這項的話是不能選擇共享市場中配置的tomcat9和jdk9直接用的.
抱着學習態度…我選擇了:
這個系統是不帶tomcat和jdk的…因此從頭安裝一次,順便學習一下配置環境.
在xshell輸入java版本查詢,果真.not found(java命令不存在)
jdk下載時要選擇Linux版本.格式如圖.
有時候在xshell命令使用 yum list java*能夠查看可下載的java包,但那些常常不包含最新版本.
通常tomcat先下載完畢了,彆着急,通常tomcat是要有jdk才能運行的(java寫的tomcat嘛,固然咯!)
看了一下vim不用再下載了(雖然沒有了一些插件)(換系統這種事必定是要備份的,若是學習時,沒有過重要的文件暫且不弄,那確定也是很大的工程)
實際上是不能亂安裝的,每一個目錄的命名都是互相牽制的,沒什麼必要不要更名,找到一篇不錯的博客講解各個目錄的做用:
http://www.javashuo.com/article/p-skbczgnz-e.html
其中講到/usr/local是系統管理員安裝本身下載軟件的地方.那咱們查看下這個目錄.由於新服務器的緣故吧,雖然local裏有文件,可是大多都是空文件,不一樣管它們,建立兩個文件夾,一個叫java一個叫tomcat.
使用xshell命令 cd /usr/local 切換到local目錄,隨後使用建立文件夾命令 mkdir java tomcat 這樣就建立好啦!
爲了瞭解更多的遠程ssh工具,SSH:安全外殼協議 SSH: Secure Shell Protocol
安全外殼協議(SSH)是一種在不安全網絡上提供安全遠程登陸及其它安全網絡服務的協議。
我又下載了個Putty,準備用它的pscp功能直接用命令行上傳文件至服務器.
爲了方便調用pscp.exe,我在本地電腦環境變量設置了新的環境變量指定到pscp.exe的目錄,例如個人是E:\putty, 這樣,直接在本地命令行工具輸入pscp即能使用它啦!
調試了一陣終於能夠了,
注意,這是命令行,輸入是從pscp開始的,而文件jdk…前面沒有盤符是由於文件就在Administrator中,若是你的文件在 d盤 就在文件前面加上d:\jdk…gz ,注意!!!必定要輸入文件的全名,包括後綴名!這裏在windows中查看文件全名的方法再也不概述!
小提示: 上傳前先傳個小文件例如新建個 a.txt 上傳試試. 下載也是,好比創建新文件,選定文件夾後在xshell輸入 touch 1.txt 即建立了一個新的文件. 再下載這個文件,若是下載成功,則目錄選定正確.
OK,jdk包上傳完成了,如今進行解壓,使用命令:
參數 -zxvf 什麼意思呢?
-c 建立壓縮文件
-x 解開壓縮文件
-t 查看壓縮包內有那些文件
-z 用Gzip壓縮或解壓
-j 用bzip2壓縮或解壓
-v 顯示壓縮或解壓的過程
-f 目標文件名
-p 保留原始的權限與屬性
-P 使用絕對路徑來壓縮
-C 指定解壓到的目錄
爲了方便設置環境變量,咱們把文件夾目錄的長名字改得短一些.
首先cd到java目錄,用 ls 命令查看當前文件目錄, 然後使用簡單的更名方式 mv 當前名稱 要更名稱 進行更名. 如我如今的java目錄下的jdk目錄叫 jdk-9.0.1 ,咱們直接改成 jdk9 (最好有版本號).
則使用 mv jdk-9.0.1 jdk9 ,即改成了jdk9. (mv 也有移動文件的功能)
找了一篇配置環境的博客.比較新:我按照這個設置已經能夠看java -version了:
http://www.javashuo.com/article/p-otvhavaq-q.html
而後命令行執行: source /etc/profile
上面是個人 /etc/profile 關於jdk和tomcat環境配置的設置.能夠參考一下.
萬事俱備只欠東風,這下本地開發環境和線上徹底對應起來了.let’s go!
4.MySQL的沒落與MariaDB的興起
要製做動態頁面項目(Dynamic Web Project),要實現大量的用戶註冊登陸,要用到數據庫.這裏咱們往服務器安裝一個 linux版本的 MySQL ,首先依然是來到 /usr/local/目錄 新建一個mysql目錄.
在這一操做中,我想直接在母目錄 ~/ 直接使用命令建立mysql目錄後直接跳轉到mysql目錄:
這裏的&&能夠起到承上啓下的做用,鏈接好幾個操做.
以前操做不適合,但學會了刪除目錄的方法:
rm是remove的簡寫,而參數 r 就是向下遞歸,無論有多少級目錄,一併刪除.參數 f 就是直接強行刪除,不做任何提示的意思. 不建議帶參數 f .
而後在mysql目錄中下載mysql的安裝包:
「wget」 這個名稱來源於 「World Wide Web」 與 「get」 的結合。
這裏說明wget比較詳細:https://www.cnblogs.com/peida/archive/2013/03/18/2965369.html
下載好mysql的tar文件後咱們使用解壓命令進行解壓,注意這裏不是Gzip文件,首先用:
其次有 .gz 後再在tar 命令參數中加 -z ,即 -zxvf
設置mysql的環境變量: vim /etc/profile 在文檔下面輸入:
以後執行 source /etc/profile
再以後命令行輸入mysql,可是報錯…
調整報錯時學會了 find 命令:
好比想找一個叫 .vimrc 的文件能夠這麼調用命令:
若是存在,服務器會給你這個文件的路徑.
http://www.javashuo.com/article/p-qsfhfbkx-v.html mysql執行錯誤解析
從新安裝mysql
http://blog.csdn.net/u013451157/article/details/62422515
實在不行就用別的數據庫
這兩天讓服務器端 JDK 版本和 本地不匹配以及安裝mysql不到位等問題弄得我頭昏腦脹,
其實後來想了想,先用個安好mysql帶jdk其餘版本的鏡像,而後直接升級jdk不就好了嗎!
此次安裝的環境 https://market.aliyun.com/products/56024006/cmjj014888.html?spm=5176.140139.722352.2.HhLQKx
後來發現了個事兒,MySQL之父把mysql賣給SUN,Oracle把SUN收購,而後mysql遇到了瓶頸,因此MySQL之父開始了它的分支去開源:
這個叫作MariaDB的數據庫是以MySQL之父女兒名字命名的.
這裏有個博客說明了在Linux上安裝及配置MariaDB的流程配置,我已經試過了,能夠說徹底正確.http://blog.csdn.net/cccheer/article/details/56479090
下面是mariadb的官網:https://mariadb.com/
一樣的,MariaDB同樣有鏈接java的jar包:https://downloads.mariadb.org/connector-java/
而這篇文章,講解爲何MariaDB將取代MySQL:https://www.csdn.net/article/2013-07-12/2816207-5-reasons-its-time-to-ditch-mysql
好了,在重裝完JDK9, Tomcat9, 和最新的 MariaDB 後,正式開始咱們的java web案例製做!
5.Java Web Project 部署之路
首先在 Linux 登陸時,可使用命令 ls / 查看全部的文件夾.
由於aliyun linux這個系統在官方和網上沒有具體太詳細的說明,咱們就拿幾個公用的(linux系統都存在的)文件夾說明一下:
調用下面命令查看全部正在運行程序的快照.
以後若是須要獲得動態進行信息,使用top命令.
調用下面命令查看服務器CPU信息: 其實就是查看/proc下面的cpuinfo
顯示的total列就是咱們總的物理內存.後面的是已使用的和未使用的等等.
下面命令是查硬盤大小:
注意後面參數是 look 看單詞中的 l
說了這麼多,看上去很麻煩,由於Linux比windows來講要使用命令行,而不是直接能夠直觀地去查看.可是學習Linux更容易明白系統的本質,以及它與編程代碼之間的關係.
要部署項目,首先得了解tomcat支持什麼類型的文檔以及它的設置方法,好比鏈接你的域名.
http://blog.csdn.net/weinianjie1/article/details/7954425
http://blog.csdn.net/jubincn/article/details/4856293 tomcat基本配置
怎樣啓動tomcat呢?
先切換到tomcat下的bin目錄,執行其中的 ./startup.sh 注意,這裏必定要有 ./
關閉tomcat服務則是相同目錄下使用 ./shutdown.sh
查看tomcat是否已關閉: ps -ef | grep java
而後咱們的項目須要導出爲 .war 看了下網上不少博客講到須要 maven install 等,隨後下載 個 maven.
http://maven.apache.org/
下載的是最後帶.bin的zip,下載後解壓到目錄,並將該解壓的bin目錄加入環境變量.maven具體學習
maven單獨學習 今天截止到這 2018年1月4日 22:35:04 着手不聯網的學習.
第一個war包上線
如何導出war包 http://blog.csdn.net/kobe_8_24_23/article/details/51524619
部署war包到tomcat根目錄 http://blog.csdn.net/free4294/article/details/38230849
tomcat修改8080端口至80及虛擬主機設置 http://blog.csdn.net/zhuxinquan61/article/details/52152053
個人IP地址查詢項目線上版本: http://www.ykmimi.com/ukyoweb1/
6.Linux全面熟悉及深刻掌握
`2018年1月6日 13:50:32
今天遇到了一個問題,在我上傳了一個簡單的index.jsp的war包部署到服務端後,進行了tomcat的關閉和開啓工做,然後遇到了關閉時,沒有正常關閉的狀況. 後來查看網站,一直在loading狀態.並且用xshell也鏈接不到服務器了,但在阿里雲控制檯該實例是顯示運行中的.
最後沒有辦法,選擇了在阿里雲控制檯重啓該實例.
我想應該是在設置server.xml時出了差錯,而且不恰當的進行了tomcat的關閉和開啓工做.
以後阿里雲實例重啓後,把servlet.xml中 Host 欄目更改以下,並重啓 tomcat,給個人感受是,tomcat的配置web很慢,因此在上傳完war包後,要隔開一段時間再進行 ./startup.sh
下面是我如今頁面正常時候的server.xml中 Host 字段:
其中我把unpackWARs=」true」更改成了false,這樣tomcat就不用再花費多餘的時間去解壓war包,而能夠直接去運行war包. (其實私底下仍是去設置了路徑)
不過在webapps中,咱們沒有看到設置的path後面的 1 和 2 文件夾.它們如今存在於與 bin 文件夾同目錄的 work 文件夾下面,,,而且能夠看看編譯後的.java文件(雖然如今不明白)
http://www.ykmimi.com/1/ (暫時未啓用)
http://www.ykmimi.com/2/ (暫時未啓用)
這樣,咱們利用server.xml中 Host 標籤下的 Context path 設置了兩個不一樣的網站子頁!(路徑)