当前位置:Linux教程 - RedHat - 最新RedHat Linux 网络服务器构架实务(chs_0.0.2.1)之四

最新RedHat Linux 网络服务器构架实务(chs_0.0.2.1)之四



         说明:
    1、这是上次发布的《RedHat Linux 网络服务器构架实务》的更新版本,该文档的更新部分详见附录;
    2、该文档较长,分为四篇发布,第一篇主要是相关说明,如果你需要直接进入主体内容,可以从第二篇开始阅读;
    3、该文档已经做成PDF文档,如果你需要PDF格式,可以致信到[email protected],需要说明的是,如果你取得了PDF文档,你需要使用Acrobat Reader 5.0打开;

    以下是正文,这是第四篇:




    Step 17 Configuration debug

    ##调试过程可能的错误如下:

    常见错误一:You don have permission
    Forbidden
    You don have permission to access / on this server.

    Apache/1.3.22 Server at www.yesgo.loc Port 80

    原因可能是:
    1、 你没有为该目录或者该文件设置guest组权限;
    2、 你没有将该文件名设置为默认页面,尤其是在仅用域名访问的情况下。
    解决办法:
    chmod 701 /home/www
    chmod 701 /home/www/*

    vi /usr/local/apache/conf/httpd.conf
    DirectoryIndex index.html index.jsp index.xtp index.php index.php3

    常见错误二:404 Not Found
    404 Not Found
    /index.jsp was not found on this server.

    Resin 2.0.5 (built Thu Nov 15 17:56:24 PST 2001)

    原因可能是:
    1、 你请求的文件名输入错误;
    2、 你没有在resin.conf和httpd.conf中都建立相应的主机。
    解决办法:
    1、 检查文件名,尤其注意大小写问题;
    2、 参照Resin install步骤中的配置支持JSP的虚拟主机部分。

    常见错误三:java.lang.ClassNotFoundException
    500 Servlet Exception
    java.lang.ClassNotFoundException: org.gjt.mm.mysql.Driver
    at com.caucho.util.DynamicClassLoader.loadClass(DynamicClassLoader.java:479)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:253)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:313)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:120)
    at _cnmysql__jsp._jspService(/cnmysql.jsp:4)
    at com.caucho.jsp.JavaPage.service(JavaPage.java:74)
    at com.caucho.jsp.Page.subservice(Page.java:485)
    at com.caucho.server.http.FilterChainPage.doFilter(FilterChainPage.java:176)
    at com.caucho.server.http.Invocation.service(Invocation.java:278)
    at com.caucho.server.http.CacheInvocation.service(CacheInvocation.java:129)
    at com.caucho.server.http.RunnerRequest.handleRequest(RunnerRequest.java:338)
    at com.caucho.server.http.RunnerRequest.handleConnection(RunnerRequest.java:270)
    at com.caucho.server.TcpConnection.run(TcpConnection.java:140)
    at java.lang.Thread.run(Thread.java:484)

    Resin 2.0.5 (built Thu Nov 15 17:56:24 PST 2001)

    原因可能是:
    1、你没有安装驱动程序;
    2、驱动程序没有设置到系统CLASSPATH中。
    解决办法:
    参见 Classes Install 和 edit /etc/profile两部分

    常见错误四:Invalid authorization specification
    500 Servlet Exception
    java.sql.SQLException: Invalid authorization specification: Access denied
    for user: [email protected] (Using password: YES)
    at org.gjt.mm.mysql.MysqlIO.init(MysqlIO.java:330)
    at org.gjt.mm.mysql.Connection.connectionInit(Connection.java:261)
    at org.gjt.mm.mysql.jdbc2.Connection.connectionInit(Connection.java:89)
    at org.gjt.mm.mysql.Driver.connect(Driver.java:167)
    at java.sql.DriverManager.getConnection(DriverManager.java:517)
    at java.sql.DriverManager.getConnection(DriverManager.java:177)
    at _cnmysql__jsp._jspService(/cnmysql.jsp:5)
    at com.caucho.jsp.JavaPage.service(JavaPage.java:74)
    at com.caucho.jsp.Page.subservice(Page.java:485)
    at com.caucho.server.http.FilterChainPage.doFilter(FilterChainPage.java:176)
    at com.caucho.server.http.Invocation.service(Invocation.java:278)
    at com.caucho.server.http.CacheInvocation.service(CacheInvocation.java:129)
    at com.caucho.server.http.RunnerRequest.handleRequest(RunnerRequest.java:338)
    at com.caucho.server.http.RunnerRequest.handleConnection(RunnerRequest.java:270)
    at com.caucho.server.TcpConnection.run(TcpConnection.java:140)
    at java.lang.Thread.run(Thread.java:484)

    Resin 2.0.5 (built Thu Nov 15 17:56:24 PST 2001)
    原因可能是:
    1、 源代码中的主机名、数据库名、帐号或者密码输入错误;
    2、 如果数据库名、帐号、密码均正确,那说明是主机名不匹配;
    3、 如果使用数据源连库,检查数据源的设置和源代码中名称是否输入正确。
    Solution:
    1、 参见Resin install和Server test两部分;
    2、 注意:数据库的连接不仅仅是帐号和密码决定的,而是由主机名、数据库名、用户名和密码四个参数决定的。

    常见错误五:Invalid authorization specification
    500 Servlet Exception
    java.lang.AbstractMethodError
    at _cnmysql__jsp._jspService(/cnmysql.jsp:11)
    at com.caucho.jsp.JavaPage.service(JavaPage.java:74)
    at com.caucho.jsp.Page.subservice(Page.java:485)
    at com.caucho.server.http.FilterChainPage.doFilter(FilterChainPage.java:176)
    at com.caucho.server.http.Invocation.service(Invocation.java:278)
    at com.caucho.server.http.CacheInvocation.service(CacheInvocation.java:129)
    at com.caucho.server.http.RunnerRequest.handleRequest(RunnerRequest.java:338)
    at com.caucho.server.http.RunnerRequest.handleConnection(RunnerRequest.java:270)
    at com.caucho.server.TcpConnection.run(TcpConnection.java:140)
    at java.lang.Thread.run(Thread.java:484)

    Resin 2.0.5 (built Thu Nov 15 17:56:24 PST 2001)

    原因可能是:
    1、你安装的JDK版本太低以至于JDBC版本并不是2.0的;
    3、 更大的可能性是你的驱动程序不支持JDBC2.0,JDBC只是提供了抽象类接口,它需要驱动程序作为其实体类来具体实现。
    解决办法:
    1、 升级JDK,我的建议是 is j2sdk-1_3_1_01-linux-i386.bin,参见Jvm install部分;
    2、 替换数据库驱动,你很有可能使用的是mysql_comp.jar ,使用 mm.mysql-2.0.4-bin.jar.zip替代它。

    常见错误六:中文乱码
    可能的原因:
    安装操作系统时候,你没有选择i18n的简体包也没有在源文件中加以处理
    解决办法:
    1、Html方式,添加如下一行到你的JSP源代码:
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    2、JSP方式一:
    <%@ page contentType = "text/html; charSet=gb2312" %>
    3、JSP方式二:
    一般说来使用Resin作为JSP引擎是不需要本方法的,我就从来都没用到,只有使用象Tomcat之类的东东才可能用到这个繁琐的方法,不过这个方法也有它的好处,就是提高了程序的可移植性,不至于换了系统或者引擎就乱码了。
    <%
    String chs=”这个方法肯定可以!”;
    byte[] bchs=chs.getBytes();
    out.print(new String(bchs,”8859_1”));
    %>






    Appendix
    Appendix I : Thanks

    人物:
    我的很多知识来源于同事和朋友的指教,请允许我在这里占用一点篇幅向我的朋友表达我最真诚的感谢。
    Mr. Jim Zhao 是我原先的一位同事,一个富有突破性的人才,狂热的Linux爱好者,他是我在UNIX和Linux方面的启蒙者,是他引导我进入这块美妙的天地并在我初学的路上给予诸多帮助,谢谢你,Jim。
    很多未曾谋面的网友也对我教益量多,象Mr. Axman和Mr. popeye。Mr. Axman 是Linux和JAVA方面的高手,他出类拔萃的才能和侠肝义胆的古道热肠令我为之钦佩;Mr.popeye年龄很小却有优秀的技能,也曾指教我很多问题。另外,沈阳的刘洋先生就MySQL客户端、JDBC驱动和文中举例等问题也提出了很多建议。像这样的朋友还有很多,恕不一一列出。

    站点:
    我也从很多站点和论坛上得到很多的知识和资源,向这些站点的所有者和参与者真诚感谢:
    LinuxByte: http://www.linuxbyte.net
    LinuxAid: http://www.linuxaid.com.cn
    中国JSP网络 http://www.cnjsp.net
    中国Linux论坛: http://www.linuxforum.net

    谢谢你们!
    Appendix II : Todo List
    计划添加的内容:
    1、 如何定制化安装操作系统;
    2、 添加Qmail的配置方法和webmail开发思路;
    3、 磁盘配额的实现;
    4、 增强系统安全性的方法;
    5、 负载均衡的实现办法;
    6、 添加FAQ列表;
    7、 OPENSS的安装配置;
    8、 Proftpd的安装配置;
    9、 防火墙的安装配置;
    10、 使启动脚本更完善,更规范;

    Appendix III: Revision log
    1、 12/20/2001 首次发布。
    语言:英文
    版本:0.0.1
    发布:
    http://www.linuxbyte.net
    标题:最新RedHat 7.2 WEB开发服务器配置文档
    http://www.iuirc.com/cnjspbbs/
    标题:最新的RedHat 7.2 WEB开发服务器配置文档(PDF格式)

    2、 12/22/2001 第二次发布。
    语言:简体中文;
    版本: 0.0.2
    发布:
    http://www.linuxbyte.net
    标题:RedHat Linux 网络服务器构架实务(chs_0.0.2_12-22-2001)
    http://www.iuirc.com/cnjspbbs/
    标题:RedHat Linux 网络服务器构架实务(chs_0.0.2_12-22-2001)
    修改:

    2 将语言换为简体中文;
    2 添加了许多注释;
    2 修改了几处文字错误;
    2 添加了连接池的使用方法;
    2 添加了组件的使用方法,并提供了一个数据库处理组件;
    2 更新了目录结构;
    2 修改了TODO列表;

    3、 01/18/2002 第三次发布。
    语言:简体中文;
    版本: 0.0.2.1
    发布:
    http://www.linuxbyte.net
    标题:最新RedHat Linux 网络服务器构架实务(ver 0.0.2.1)
    修改:

    2 升级了MySQL 、Resin和 phpMyAdmin到最新版本;
    2 PHP采用了DSO安装模式,与Apache分别独立安装;
    2 完善了phpMyAdmin的安装步骤;
    2 Resin由2.0.4升级到2.0.5解决了默认文档不能打开的问题;
    2 增强了Jsp站点下classes目录的安全性;
    2 修改了数据库处理组件的几处冗余;
    2 提示了远程登陆不能实现的原因;
    2 更新了TODO列表;
    2 修改了版权声明;
    发布人:叶三耿 来自: