ubuntu16.04 搭建Java Web服務器


背景:已經有服務器,項目,putty,本地機器是window10。服務器上已經安裝了openssh-server並且可以正常是使用。也就是已經由公鑰私鑰並完成了配置。整個過程和在本機上安裝其實是一樣的,困難在於對遠程ubuntu的操作。下面基本沒有截圖,只說明。

1、檢查JDK環境。java -version 查看本地安裝的JDK版本。JDK我並沒有裝,ubuntu上已經有了。是OpenJDK,至於oracle java之間的區別,我的印象中在1.7版本的時候應該就沒有什么區別了。我這里是OpenJDK1.8。還有一個命令能查看,更能總概,忘了。有了java運行時環境,接着就是安裝tomcat。

2、安裝tomcat。現在能夠用apt安裝的最高該是8。所有有命令apt install tomcat8。這樣安裝系統能夠自己配置各方面的環境,不用自己在手動配置。如果想要自己配置以獲得更高版本的tomcat可以考慮wget命令。當然也可以在本地下載然后上傳到ubuntu上,下面會介紹這種方法。

3、mysql的安裝。在我搜到的信息里一般都是安裝mysql的三個部分。向這個博客所說 https://blog.csdn.net/james_nan/article/details/82053430 。但是我這里執行了一條命令 apt install mysql這個命令和前三條的命令我還不明白,但我搜索的結果是這調命令安裝的是服務端。我覺得我只需要服務端能打開命令行的交互界面就行,所以沒有安裝。別的。這里安裝的版本是5.7.27,可以通過命令mysql -V來查看。在安裝的過程中會提示填寫root用戶的密碼,填寫就好了,我沒有嘗試空密碼。同樣這里也可以自己下載進行配置。

4、動態web項目打war包。我的認知是jar包是java項目,war包是java web項目。使用什么工具就用對應的工具打包,不行的話可以使用命令行手動打包。

5、將war包傳到ubuntu對應目錄。首先想到ftp協議。使用putty中帶着的一個組件psftp,經搜索,這個程序是sftp的客戶端。至於sftp和ftp的區別看這個博客 https://www.cnblogs.com/xingxia/p/system_ftp.html 總之sftp是加密的ftp協議。而我恰好有sftp的客戶端。現在缺少sftp的服務端。https://www.cnblogs.com/xuliangxing/p/7120205.html 知道openssh-service中包含sftp服務端。這時候只需要連接上就行了。

連接sftp服務端,搜索到psftp的使用命令,連接sftp服務器時我的做法

 vim /etc/ssh/sshd_config sshd是ssh的服務端在openssh-service中,sshd_config就是ssh服務端的配置文件。找到PermitRootLogin no改為yes 即允許root用戶登陸。找到PasswordAuthentication no改為yes 即允許使用賬戶密碼登陸,區別於ssh登陸(使用ssh登陸並使用sftp我不會所以才找到了這個選項,也是ssh加密但是使用賬戶密碼登陸的)

service ssh restart重啟生效

然后使用psftp命令 open ip地址 會提示輸入帳戶名密碼,這是sftp的命令。put D:/uploadToUbuntu/timely.war /var/lib/tomcat8/webapps/timely.war 將打好的war包放入tomcat中對應路徑部署。

重啟tomcat,這里因為是apt安裝tomcat所以找到tomcat的啟動腳本在/usr/share/tomcat8/bin/startup.sh,然后出現錯誤touch: cannot touch '/usr/share/tomcat8/logs/catalina.out': No such file or directory./catalina.sh: 401: ./catalina.sh: cannot create /usr/share/tomcat8/logs/catalina.out: Directory nonexistent。他說缺少logs和logs/catalina目錄,然后在tomcat目錄下 mkdir ./logs然后進入logs目錄mkdir ./catalina。在執行上述腳本,啟動成功。在訪問前將mysql中的數據庫和表建立完成。ok。

遇到的各種問題。

1、psftp open+ip后輸入賬戶名直接失敗,然后閃退,在通過閃退消失前的截圖上面說fatal error。這是因為沒有將PasswordAuthentication 改為yes。

2、上傳文件時提示var/lib/tomcat8/webapps: open for write: failure,這是因為在上傳時錯誤填寫目的文件夾/var/lib/tomcat8/webapps,應該填寫為/var/lib/tomcat8/webapps/timely.war https://blog.csdn.net/zdb1314/article/details/77113759

3、找到webapp所在目錄 dpkg -L tomcat8

4、啟動出錯 https://blog.csdn.net/microlabs/article/details/48173965

5、執行腳本文件 https://blog.csdn.net/hpf247/article/details/79190600 sh ./startup.sh

如何建立sftp我搜到了許多博客,當然我的方法對於是最簡單的

較為簡單 https://blog.csdn.net/weixin_38883338/article/details/86546360

openssh-service詳細的解釋 https://www.cnblogs.com/long-cnblogs/p/10459293.html

sftp和ftp的命令隨便挑個,網上都是 https://blog.51cto.com/moerjinrong/2050593

沒看完但感覺很厲害 https://blog.csdn.net/u010708904/article/details/89886200

為什么service ssh restart能夠啟動服務,與目的關系不大,看了一點 https://www.cnblogs.com/qlqwjy/p/7746890.html

多賬戶多人訪問的sftp,可能以后會用到 https://blog.csdn.net/qq_24380391/article/details/81774471

由上面博客內容引出的用戶和用戶組的建立 https://blog.csdn.net/wxjsjp/article/details/80412602

由上面博客引出的用戶遍歷顯示的內容的意思 https://blog.csdn.net/m0_38007695/article/details/88872825

為了找到webapp目錄而找到的查找文件(夾)的命令與解釋 https://blog.csdn.net/dcrmg/article/details/78000961

留下的問題,很多博客都有這樣的內容

vim /etc/ssh/sshd_config
將如下這行用#符號注釋掉
# Subsystem sftp /usr/libexec/openssh/sftp-server
並在文件最后面添加如下幾行內容然后保存
Subsystem sftp internal-sftp

我不知道是為什么,我也沒有照做,但是也成功了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM