2012年1月20日 星期五

在Windows Server 2008 R2上將Tomcat安裝成服務的方法


  在Windows Server 2008 R2要把Tomcat安裝成服務時,不知為什遭遇到很多問題,可我花了好一番功夫才解決呢,特將安裝步驟與遭遇的問題整理如下囉,供大家參考

  除OS外的相關軟體
  • Tomcat使用免安裝版(apache-tomcat-5.5.33)
  • Jdk也請裝x64(jdk-1_5_0_15-windows-amd64)

一、先裝Jdk與Tomcat吧,安裝完Jdk後,記得要去環境變數設JAVA_HOME

二、移至tomcat\bin目錄,將 tomcat5.exe 重新命名為 tomcat5.exe.32

三、從tomcat\bin\x64目錄中,將 tomcat5.exe 覆蓋到 tomcat\bin目錄下

   我看有人會去下列網址下載 x64的tomcat5.exe也是可以的,我自己測試過拿6.x的裝在5.x的也沒問題喔
http://svn.apache.org/viewvc/tomcat/tc5.5.x/tags/TOMCAT_5_5_27/connectors/procrun/bin/amd64/

四、切換至tomcat\bin目錄,並且輸入下列指令,來安裝新的 64 位元服務:

   service.bat install

五、確認服務安裝無誤後,執行 tomcat\bin\tomcat5w.exe,以配置服務
  • Java頁籤
1.取消Use default勾勾  2.Java Virtual Machine指定jre的jvm.dll位置
  3.Initial/Maximum memory pool設大一點,預設有點小

  • Startup/Shutdown頁籤
   1.注意Mode是否為jvm就好


六、按Start啟動服務吧


七、若服務啟動成功,測試一下Tomcat首頁能不能連囉,建議在遠端用IP連結測試,萬一R2防火牆沒關閉,也可能沒法連喔

  http://ip:8080/

八、檢查一下tomcat\logs裡面的相關log有沒有異常的資訊,像我就看到下面兩個異常的資訊
  • The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path...
  • ...tcnative-1.dll:Can't load IA 32-bit .dll on a AMD 64-bit platform ...
   以上兩個異常資訊都是在講APR的問題,APR是Tomcat提升性能的元件,參見Apache Portable Runtime and Tomcat,我就不多說了

  這錯誤是要你裝x64的tcnative-1.dll,我是直接從tomcat\bin\x64下拷貝tcnative-1.dll,然後覆蓋tomcat\bin\下的,然後重啟tomcat即可

   我看有人是去Index of /dist/tomcat/tomcat-connectors/native下載最新的tcnative-1.dll囉,也是可以的

九、再檢查一下tomcat\logs裡面的log,應該沒有異常資訊了

十、 這時候怪事發生了,在遠端用http://ip:8080/連竟然出現下列錯誤

  Internet Explorer 無法顯示網頁

十一、為了除錯,我想看tomcat的連線記錄,不過這預設是沒開啟的,要修改tomcat\conf\server.xml,把access log這段的註解拿掉,記得再重啟tomcat

十二、遠端用http://ip:8080/再連一次,一樣無法顯示網頁,檢查localhost_access_log竟然沒有任何連線紀錄,我只好在本機用http://ip:8080/連連看,一樣不行,不過http://localhost:8080/竟然可以連,很詭異吧,再檢查一下localhost_access_log,發現有連線紀錄了,如下圖



  "::1"不是IPv6的local位址嗎!(如果你去檢查hosts檔案,會發現"::1"與localhost對應喔),這樣感覺像是IPv6與IPv4的問題,用netstat檢查一下監聽那些port,如下圖


   8080 port竟然只監聽IPv6的,而80 port的IPv6與IPv4都有監聽,難怪用http://ip:8080無法連啊

  解決辦法就是限定8080 port只走IPv4,反正目前用不到IPv6,去修改server.xml ,在connector的標籤裡加上'address="0.0.0.0"'即可,如下圖


   改完記得重啟tomcat喔,然後再用netstat檢查一下,有監聽IPv4的8080囉


十三、用http://ip:8080再連一次,沒有問題

0 意見:

張貼留言