今天做的網(wǎng)站要上線了。部署的過程中遇到許多問題,在這里記錄一下。
步驟
- 項目采用war包的形式發(fā)布。war包的生成:使用idea中的maven project中的install命令(一般可以先clean一下)
- 安裝tomcat 8和java 1.8,(java版本根據(jù)項目需求)。配置環(huán)境變量CATALINA_HOME為tomcat的安裝目錄。java 8會自動配置環(huán)境變量,不需再配置。
- 因為是個小網(wǎng)站,力求配置過程簡單,沒有配置tomcat數(shù)據(jù)源啥的(主要是不會,囧),在項目中配置好數(shù)據(jù)庫的連接,密碼就是服務器數(shù)據(jù)庫的密碼。
- 將war包放到tomcat webapps目錄下就好了,tomcat會自動解壓。
- 打開tomcat conf server.xml文件,0將<Connector port="8080" protocol="HTTP/1.1 ...>"將這里的8080改成80,這樣的話就可以直接輸入域名來訪問網(wǎng)站了(不用加端口號了)。另外如果項目中有存在漢字的url需要加一個屬性 URIEncoding="utf-8"。完整的是這樣的:
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
URIEncoding="utf-8"
redirectPort="8443" />
- 繼續(xù)在server.xml中配置
找到Host標簽,大概長這樣:
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
這個不用動,參考一下就行。在下邊新加一個Host 大概是這樣:
<Host name="blog.example.com" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Context path="" docBase="blog" debug="0" privileged="true"/>
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
其中docBase是你的war文件名,如這里是blog
blog.example.com是你的域名,context里的path設置為空,就是訪問時,域名或不用在加任何東西(如有需要可以設置)
- 配置域名解析到服務器ip
其他:
- 配置war包名稱。默認的war包名是構(gòu)件id加上版本號。如果要改成其他名字可以在pom.xml的<build>標簽下加上<finalName>name</finalName> 其中填寫的name就是最終生成的war包名,如此例子下為name.war
- 在windows服務器上將tomcat注冊成系統(tǒng)服務。用命令行窗口進入到tomcat bin目錄下,這個目錄下有個service.bat文件,這個文件就是為了將tomcat注冊成系統(tǒng)服務準備的。執(zhí)行
service.bat install Tomcat8 后面的Tomcat8是服務的名稱,可以自己取。如果取消服務,可以
service.bat remove Tomcat8。注冊成系統(tǒng)服務后就可以用net start Tomcat8和net stop Tomcat8來啟動或關閉Tomcat。