实战:Ubuntu Dapper下架设Tomcat5+MySQL5+JSP

来源:互联网 发布:路由器mac ip地址绑定 编辑:程序博客网 时间:2024/05/22 13:58

转自: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启动服务器。

 
原创粉丝点击