Struts项目向Linux迁移小结

 

Struts项目向Linux迁移小结

1. 系统兼容性处理

 

1路径符号问题:

a.windows 路径使用 ///都是可以的,但Linux中只能使用/

处理方法:

查找程序中所有含有类似“//”路径的代码(共84),进行修改,//替换为File.seperator,从而兼容Linux

 

b. windows,获取的路径的函数是:

“盘符:/.../tomcat/webapps/XXX/

Linux中,是“usr/local/tomcat/ webapps/XXX/,该路径在Linux无法识别,需要在前面增加“/”。

处理办法:函数进行修改:

Properties props=System.getProperties(); //获得系统属性集 String osName = props.getProperty("os.name"); //操作系统名称  根据操作系统的名称,进行路径设置。

2)文件写权限问题:

系统中有部分程序需要进行文件写操作,相关程序执行失败。原因是Linux有严格的文件操作权限,默认是不给写权限的。所以需要对相关的文件和文件夹授予写的权限,需要授权的文件(夹)有:

具体命令:#Chmod  -R 777  文件名

 

(3)文件名大小写敏感问题

由于windows对文件后缀名的大小写是不敏感的,而Linux下是敏感的。所以在程序中引用的文件名的后缀与实际大小写不一致,在Linux下是无法识别的。

解决方法:

修改文件的后缀名

4)数据库中表名大小写问题

表名大小写在windows下默认是不敏感的;而在Linux下是敏感的

解决办法:

  1通过修改MySql Server安装目录下的 my.cnf 文件, 设置 lower_case_table_names=1

2) 修改建库脚本,将所有涉及到的表名都修改为小写

3)对于已经存在的系统:对所有表名大写的表,执行如下语句:

ALTER  TABLE table_name RENAME TO new_table_name

5jfreechart中文日文字体显示问题

a.       由于Java虚拟机找不到字体文件造成的。

 

解决办法:

(1)把字体文件Simsun.ttf(可以从windowsSimsun.ttc拷贝一份到Linux下)

拷贝到JRE的字体目录$JAVA_HOME/jre/lib/fonts下,

(2)编辑字体目录下的文件fonts.dir,把第一行的数字加1,然后在最后加一行加上:

simsun.ttf -SungtiL GB-medium-r-normal--0-0-0-0-c-0-gb2312.1988-0

保存文件。

(3)切换到该目录下的 jre/lib 目录下, font.properties 备份一下:

# cd /usr/java/j2sdk1.4.2_01/# cd jre/lib/# mv font.properties font.properties.bak

(4) font.properties.zh_cn.sun 复制为 font.properties

# cp font.properties.zh_cn.sun font.properties

(5) 编辑复制得到的 font.properties 文件, 跳到文件尾部,

找到“filename.xxx=”这一行, 将后面的路径修改为你机器上的 simsun.ttf 所在的全路径,

下面的 appendedfontpath 一行也做相应修改, 将路径指向你的 simsun.ttf 所在文件夹。

filename.-hanyi-hanyisong-medium-r-normal--*-%d-*-*-c-*-gbk-0=/usr/share/fonts/local/simsun.ttf

appendedfontpath=/usr/share/fonts/local/

 

 

2、安装问题说明

 

问题一Tomcat无法启动

解决方法:

(1)    更换端口号 Server.xml 中:8080修改为8088

(2)    Tomcat/bin下所有的sh文件写权限开放

 

问题二:访问Tomcat,出现jsp无法编译的错误

解决方法:

Linux自带的jdkjar不全,没有dt.jar.

重新下载jdk进行部署(j2sdk-1_4_2_19-Linux-i586.bin

 

问题三:编译MySql时报错“Linux thread not found

解决方法:

因为MySQL 4.0 不支持使用了 NTPL线程,用以下命令处理:
1# cp /usr/include/pthread.h /usr/include/pthread.h.bak
2
# echo ‘/* Linuxthreads */’ >> /usr/include/pthread.h
3
# ./configure –with-pthread –with-named-thread-lib=-lpthread
4# make && make install

 

问题四windows客户端无法访问Mysql

解决方法:

由于(1telnet 3306端口无响应

2mysql在本机可以通过命令行访问,

3)使用  show variables like ‘port’ 命令查看,发现端口号=0;说明该mysql的端口设置无效,有可能被别的程序占用;

4netstat –anp,发现3306端口没有被使用。使用rpm -qa mysql命令查看,发现该Linux下已经安装了另一个版本的mysql;

使用Rpm –e –nodep mysql5.0  命令进行卸载,再执行show variables like ‘port’ 命令,

端口号=3306

5windows客户端访问Mysql,出现访问被拒绝提示。但telnet 3306,已经能够连接。

6iptables添加开放了3306端口
#iptables -A INPUT -p tcp -m tcp --sport 3306 -j ACCEPT
#iptables -A OUTPUT -p tcp -m tcp --dport 3306 -j ACCEPT
#service iptables save
#service iptables restart

在防火墙中添加该端口 vi /etc/sysconfig/iptables

添加-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT

更改完了之后输入service iptables restart

(7)mysql增加访问权限:

登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称"%"
mysql -u root –p root>use mysql;mysql>update user set host = '%' where user = 'root';mysql>select host, user from user;

flush privileges

8/etc/my.cnf 里注释掉 skip-networking;在 /etc/hosts.allow 加入MySQL 服务侦听 mysqld: 127.0.0.1

 

最终解决问题。

 

 

附件:安装步骤说明   

1. Java环境安装:

1www.sun.com网站下载jdk1.4.2版本的安装包j2sdk-1_4_2_19-Linux-i586.bin

2)安装。#.    

 

2.Tomcat安装

1http://tomcat.apache.org/下载tomcat软件包

2)安装。

#tar zxvf apach-tomcat-4.1.37.tar.gz
    #mv apach-tomcat-4.1.37 /usr/local  
(3)
设置环境变量

#vi /etc/profile

    export JAVA_HOME=/usr/local/j2sdk1.4.2_19
    export TOMCAT_HOME=/usr/local/apach-tomcat-4.1.39

Export PATH=$JAVA_HOME/bin;$PATH

Export CLASSPATH=.:$JAVA_HOME/lib/dt.jar: $JAVA_HOME/lib/tools.jar
  
保存退出

  # source /etc/profile  //让当前配置立即生效

(4)启动tomcat服务器
    $ /usr/local/apach-tomcat-6.0.16/bin/startup.sh
   
控制台会出现如下内容:
    Using CATALINA_BASE:   /usr/local/apache-tomcat-6.0.16
    Using CATALINA_HOME:   /usr/local/apache-tomcat-6.0.16
    Using CATALINA_TMPDIR: /usr/local/apache-tomcat-6.0.16/temp
    Using JRE_HOME:       /usr/local/jdk1.6.0_04

5)在浏览器中输入http://localhost:8080/就可以看到tomcatlog
  

 3.Linux中文字体支持设置

(1)把字体文件Simsun.ttf(可以从windowsSimsun.ttc拷贝一份到Linux下)

拷贝到JRE的字体目录$JAVA_HOME/jre/lib/fonts下,

(2)编辑字体目录下的文件fonts.dir,把第一行的数字加1,然后在最后加一行加上:

simsun.ttf -SungtiL GB-medium-r-normal--0-0-0-0-c-0-gb2312.1988-0

保存文件。

(3)切换到该目录下的 jre/lib 目录下, font.properties 备份一下:

# cd /usr/java/j2sdk1.4.2_01/# cd jre/lib/# mv font.properties font.properties.bak

(4) font.properties.zh_cn.sun 复制为 font.properties

# cp font.properties.zh_cn.sun font.properties

(5) 编辑复制得到的 font.properties 文件, 跳到文件尾部,

找到“filename.xxx=”这一行, 将后面的路径修改为你机器上的 simsun.ttf 所在的全路径,

下面的 appendedfontpath 一行也做相应修改, 将路径指向你的 simsun.ttf 所在文件夹。

filename.-hanyi-hanyisong-medium-r-normal--*-%d-*-*-c-*-gbk-0=/usr/share/fonts/local/simsun.ttf

appendedfontpath=/usr/share/fonts/local/

 

4MySQL安装:

1)建立相应目录和组:

# mkdir /usr/local/mysql

# groupadd mysql

# useradd -g mysql mysql //useradd -g mysql -d /usr/local/mysql name

2)开始安装mysql

# tar xzvf mysql-4.0.15.tar.gz //解压缩

# cd mysql-4.0.15 //进入解压后的文件目录

// Linux thread not found问题的处理

# cp /usr/include/pthread.h /usr/include/pthread.h.bak
# echo ‘/* Linuxthreads */’ >> /usr/include/pthread.h

# ./configure –with-pthread –with-named-thread-lib=-lpthread  --prefix=/usr/local/mysql
# make && make install

 

3copy配置文件

largemediumsmall三个环境下的,根据机器性能选择,如果负荷比较大,可修改里面的一些变量的内存使用值

# cp support-files/my-medium.cnf /etc/my.cnf //复制配置文件

 

4)更改目录权限和组

# cd /usr/local/mysql

# chown -R mysql .

# chgrp -R mysql .

5)建立数据库和表

# bin/mysql_install_db --user=mysql //初始化授权

6)再次更改目录权限和组

# chown -R root .

# chown -R mysql var

7)启动MySQL服务

# bin/mysqld_safe --user=mysql &

8)设置MySQL启动服务

# cp /usr/local/mysql/share/mysql/mysql.server /etc/init.d/mysqld

# chkconfig --add mysqld //在自动启动列表里添加mysqld

# chkconfig --level 345 mysqld on

9)修改MySQL密码

# /usr/local/mysql/bin/mysqladmin -u root password 'new-password' //修改密码

# /usr/local/mysql/bin/mysqladmin -u root -h localhost password 'new-password'

// localhost替换成你的主机域名,比如:zhaorg.csu.edu.cn

10)登录mysql数据库:

# mysql -u root -p

Enter password: root

Welcome to the MySQL monitor. Commands end with ; or /g.

Your MySQL connection id is 18 to server version: 5.0.19-log

Type 'help;' or '/h' for help. Type '/c' to clear the buffer.

mysql> use mysql;

mysql>delete from user where password=""; //删除用于本机匿名连接的空密码帐号

mysql>flush privileges;

mysql>quit

 

 

posted @ 2009-10-29 16:42  竹君子  阅读(123)  评论(0编辑  收藏  举报