a. 只要安装盘或安装源没问题,安装就不会出问题,如果有问题,99% 都是硬件原因引起的(尤其是内存)。
b. 系统升级有可能失败,如果确定网络没问题,可以更换其他的 apt 源重试。
6.2 tomcat
a. 服务启动失败
根据提示判断原因,通常只有几种可能:
a1. 当前用户权限不足,无法创建运行期文件和目录
a2. Java 环境配置不正确,找不到 jre 或相关的 .jar 文件
a3. 指定的端口被占用(tomcat 默认为 8080)
确定了原因,对应的解决方法都比较简单。
b. 站点解析失败
这里有个特别的情况,比如我站点 sun-web.xml 里配置了 context-root 为 iGN,但实际发布的 .war 文件名为 iGN_JSP.war,这样部署到 tomcat6/webapps 下时,自动解包为 iGN_JSP,而在浏览器里的实际 root 就成了 iGN_JSP,这一点跟在 Windows 平台上有差别。
c. Java 安全策略问题
之前做 Flash 的时候,在它的安全策略上折腾了近一周才搞定。没想到 Java 也有这一手,又被折磨了几天。
问题发生在 jsp 连接 MySQL 的时候,在 Class.forName() 后用 DriverManager.getConnection() 总是无法返回有效的连接,并且也没有抛出 SQLException 异常。
找资料的痛苦过程就不必细说了,最终找到一份 Sun 官方的关于安全策略的文档,终于参照解决。
Java 跟 Flash 在安全管理上是类似的做法,不同域间的互访,需要提供服务方指定对应的安全策略。Java 中通过 java.net.SocketPermission() 指定许可的主机和操作。
于是,修改 /var/cache/tomcat6/catalina.policy 文件,在其中加入如下权限设置:
// 26/dec/2008, scum
permission java.net.SocketPermission "localhost", "connect,resolve";
这样便允许了 localhost 的连接和解析请求,更详细的资料在 JDK 文档里也有。
修改后,重启 tomcat,jsp 终于连接上 MySQL 了...
* 关于 Java 安全策略,还有很多内容,未及细看,也许有更简便或更标准的解决方法,以后再说。
7、结束语
现在服务器应用越来越多地偏向 Linux 了,个人感觉,二者各有所长,至少 Lin 还没到能完全替代 Win 的时候。
稳定性,Windows 2003 绝不比 Linux 差,而且易用性强,如果一个人在对二者同样不熟悉的情况下,要实现管理配置,Lin 当然是个噩梦。
安全性,这一点上,Lin 是更强些,除了本身内核的稳定外,潜在的攻击者对 Lin 的熟悉程度不如 Win 高也是个原因。
开放性,Win 是开放,允许所有合理的应用,但是内核的问题只有 MS 自己解决。Lin 是放开,允许所有合理的修改,在容易快速得到完善和进步的同时,也存在混乱和庞杂的隐患。而且个人感觉,所谓安全,一是只有不公开的部分,才是真正安全的;二是一切安全,都是暂时绝对的永远相对的。
更多的讨论就没有意义了,接下来还要配置一台服务器,打算用 Windows 2003,为什么不 Linux,因为 Linux 上暂时还不能完美地运行 .net 服务。