轉自:forum.ubuntu.org.cn 作者:Vstar
首先確認已經安照新手設定指南裡(wiki.ubuntu.org.cn裡的新手指南)的方法安裝好了jdk,然後在系統中填加JAVA環境變數
sudo gedit /etc/bash.bashrc
在結尾處增加
export JAVA_HOME=/usr/jvm/java-1.5.0-sun
export JRE=$JAVA_HOME/jre
一、Tomcat
1、安裝
sudo aptitude install tomcat5 tomcat5-admin tomcat5-webapps
2、設定
Tomcat預設的admin和manager帳號是沒有啟用的,可以編輯/usr/share/tomcat5/conf/tomcat-users.xml檔案來啟用
cd /usr/share/tomcat5/conf
sudo gedit tomcat-users.xml
在裡面新增兩個角色admin和manager,增加一個使用者root,密碼為123456(這裡只是例子,使用者名稱和密碼可以自己設),編輯後的檔案為:
引用: |
<?xml version='1.0' encoding='utf-8'?> <tomcat-users> <role rolename="tomcat"/> <role rolename="role1"/> <role rolename="admin"/> <role rolename="manager"/> <user username="root" password="123456" roles="admin,manager"/> <user username="tomcat" password="tomcat" roles="tomcat"/> <user username="both" password="tomcat" roles="tomcat,role1"/> <user username="role1" password="tomcat" roles="role1"/> </tomcat-users>
|
儲存退出,重啟tomcat
sudo /etc/init.d/tomcat5 restart
3、測試
這時在瀏覽器裡開啟http://127.0.0.1:8180,看見頁面就說明Tomcat已經安裝成功了。然後可以點擊左側的Tomcat Administration和Tomcat Manager進行管理員和網站管理頁面。運行首頁裡左側的Examples裡面的執行個體可以測試一下jsp運行情況。
其實我個人覺得添加這個系統管理使用者沒有多大必要,由於許可權,在管理頁面進行的更改重啟後又會消失。因此如果一定要在管理頁面變更,請設定Tomcat目 錄的許可權為所有使用者可寫。即sudo chmod 777 -R /usr/share/tomcat5。個人不推薦這和作法,因為這樣會破壞安全性。推薦使用文本進行配置,會在後面談到。
二、MySQL
1、安裝
sudo aptitude install mysql mysql-admin mysql-client-5.0 mysql-navigator mysql-query-browser mysql-server-5.0
2、測試並建立測試帳號
安裝後進入終端輸入
sudo mysql -uroot
建立一個測試帳號javatest,密碼為javadude,並指定可從任意主機登入,授權這個使用者擁有資料庫javatest的所有許可權。添加一個資料庫javatest
引用: |
mysql>GRANT ALL PRIVILEGES ON javatest.* TO javauser@"%" IDENTIFIED BY "javadude"; mysql>create database javatest;
|
三、安裝JDBC驅動
到http://dev.mysql.com/downloads/connector/j/5.0.html 下載驅動,僅僅解壓其中的mysql-connector-java-5.0.3-bin.jar的檔案,複製到 /usr/share/tomcat5/common/lib下即可。
教育網速度慢的話可以到http://mysql.mirror.edu.cn下載。
四、測試Tomcat+MySQL
添加一個虛擬目錄
cd /usr/share/tomcat5/conf/Catalina/localhost
sudo gedit javatest.xml
添加如下資訊:
引用: |
<Context path="/javatest" docBase="javatest" debug="0" reloadable="true"/>
|
然後進入tomcat5的webapps目錄,添加一個javatest目錄,並在其中添加一個檔案test.jsp
cd /usr/share/tomcat5/webapps
sudo mkdir javatest
sudo gedit test.jsp
編輯裡面的內容為
引用: |
<%@ page contentType="text/html; charset=utf-8" %> <%@ page language="java" %> <%@ page import="com.mysql.jdbc.Driver" %> <%@ page import="java.sql.*" %> <% Class.forName("com.mysql.jdbc.Driver").newInstance(); Connection conn=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/javatest?user=javauser&password=javadude"); Statement stmt=conn.createStatement(); %> |
建議使用這種方法進行測試,當然還有兩種方法可以添加虛擬目錄,一個是編輯conf下的 server.xml把先前javatest.xml中的內容填加server.xml中最末頁的</host>前面。另一種方法是不必建立 javatest目錄,而是將test.jsp打包建立歸檔檔案,並選擇war類型,放到webapps下面,Tomcat會自動安裝名為javatest的虛擬目錄。
註:到目前為止可能會出現幾個問題,一會兒會談到。
接下來重啟Tomcat
sudo /etc/init.d/tomcat5 restart
通常情況的話,這時便已經可以了。開啟瀏覽器,輸入http://127.0.0.1:8180,然後進入Tomcat Manager,可以看到一個名為javatest的目錄,點擊後會看到一個檔案清單,點擊其中的test.jsp。如果看到一個空白頁面,說明正常。這時可以從終端登入mysql,通過命令show processlist;查看當前串連到的使用者資訊。
什嗎?開啟test.jsp時只看到一片錯誤資訊?別急,我說了,這裡可能會遇到幾個問題,如果是通常情況下上面的配置是正確的,就可以看到空白頁面和MySQL下的串連資訊了。不過目前Ubuntu內建的MySQL和Tomcat存在兩個問題(我不知道算不算是BUG),因此連不上很正常。
*問題一:有可能MySQL沒有使用locahost:3306,即127.0.0.1:3306,而是使用的本機IP或其它地址作為串連地址。可以通過telnet 127.0.0.1 3306來測試一下,如果是拒絕串連,就是存在這個問題了,這個和開啟test.jsp裡面的access denied很像。
*問題二:通過/etc/init.d/tomcat啟動tomcat服務時跟本無法串連資料庫,而要通過/usr/share/tomcat/bin/startup.sh來啟動。
找到這個原因非常困難,一直以為問題出在jdbc驅動上,隨即下載添加mysql-connnect,調試,用了一周多的時間,也沒有解決問題。
好了,現在可以解決了。
首先編輯MySQL的設定檔/etc/mysql/my.cnf,將其中bind-address的預設值由本機IP換成127.0.0.1。
然後停止tomcat
sudo /etc/init.d/tomcat stop
再通過startup.sh啟動tomcat
sudo /usr/share/tomcat5/bin/startup.sh
OK,這時開啟瀏覽器,輸入http://127.0.0.1:8180/javatest/test.jsp,按下斷行符號,介面空白。終端下登入mysql,使用show processlist;查看,可以看到一個User為javauser的使用者已經登入。
不過開機會自動運行/etc/init.d下的tomcat5,我一直想找到這個檔案的問題所在並進行修正,不過我對shell編程不是很瞭解。目前的解 決方法,只能是開機時禁止這個檔案的運行,並使用usr/share/tomcat5/bin下的startup.sh啟動伺服器。