在Linux下配置Java的开发环境以前也有好几次了,但时间一长,总有不少细节会忘了,到重新要配置时又要花不少时间去解决这些再次遇到的小问题。这次就写下来吧,做个笔记,以后再要配置时就省时了。
以下是这次要配置的环境:
Linux:FC4
JDK:1.4.2
服务器:apache-2.0.55 + resin-3.0.18
数据库:mysql-4.1.18 + phpMyAdmin-2.8
一、安装、配置JDK
安装:
官网上有两种版本的JDK下载。我下载回来的JDK文件名为:j2sdk-1_4_2_11-linux-i586.bin_File_j2sdk-1_4_2_11-linux-i586.bin。这个在官网上称为自解压版,这个版本我还是第一次下。以前用的都是RPM版。两者的区别就在于,自解压版运行后就在当前目录产生个JDK的目录。RPM版则直接安装到指定的目录。通常为/usr/java/jdk-version目录。
在安装目录上我有个建议,就是都装到/usr/java的子目录下,然后做个链接成/usr/java/jdk。如,我这里看装后的路径为/usr/java/j2sdk1.4.2_11。可以通过以下命令建立一个软链接。
ln -s /usr/java/j2sdk1.4.2_11 /usr/java/jdk
这样做的好处就是当有几个JDK并存时,要改变默认JDK的版本只要改变这个软链接就OK了。而且跟JDK相关的各种环境变量也不用变来变去,就把JAVA_HOME指向/usr/java/jdk就行了。
至于CLASSPATH的配置我就不用说了,因为我一向都是用IDE或者是ANT的,配CLASSPATH对我来说没意义。
中文支持的配置:
这个步骤好像不是必须的,因为听网上的一些朋友说有些Linux发行版在装好JDK后直接就支持中文。在配置前可以先运行一下$JAVA_HOME/jre/bin/ControlPanel和其它中文程序看是否可以正确显示中文(Linux的locale要设成中文ControlPanel才是中文的)。
进入$JAVA_HOME/jre/lib目录。拷贝一份font.properties.zh_CN.Redhat覆盖原来的font.properties文件。然后把font.properties以外的font.properties_***文件都删了。打开font.properties在最后一行会有类似下面的代码:
filename.-misc-zysong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1 =/usr/share/fonts/zh_CN/TrueType/zysong.ttf
把后面的/usr/share/fonts/zh_CN/TrueType/zysong.ttf改成自己的中文字体所在位置,如simsun或VeraSansYuanTi。simsun可以在windows的font目录里找到,VeraSansYuanTi可以在Linux公社下载。
如果用JDK5.0的可以参考这篇文章:http://addone.blogchina.com/blog/187527.html
二、MYSQL
在MySQL的下载页上有很多版本可供下载。由于我装MySQL只是作为开发用途,并不是作服务器,因此可以选择最简单的版本来下载。如:标准二进制版或对应Linux发行版的RPM包等。 我下载的是标准二进制版,文件名为:mysql-standard-4.1.18-pc-linux-gnu-i686.tar.gz。解压后就是一个已经编译,初始化好的文件夹。解压好后把文件夹移到某个目录,我这里为/usr/local/database/mysql41。然后建立软链接:
ln -s /usr/local/database/mysql41 /usr/local/mysql
由于mysql里很多默认设置都是指向/usr/local/mysql目录的,链到这里就省了不少事。我这里不直接把数据库放到/usr/local/mysql,而是通过链接,也是为了可以多版本共存。因为4.0, 4.1, 5.0这几多版本都比较多用,而且差别又比较大,所以共存的必要还是有的。
把$MYSQL_HOME/support-files/my-small.cnf拷贝到$MYSQL_HOME/data/my.cnf,建立一个软链接:
ln -s /usr/local/mysql/data/my.cnf /etc/my.cnf
编辑my.cnf文件,分别在以下区加入下面的行,这里的编码都用UTF-8
[client]
default-character-set=utf8
[mysqld]
default-character-set=utf8
default-storage-engine=INNODB
其中字符集的设置只有在4.1以后的版本才支持。这样设置了,建立数据库时默认就使用UTF-8编码,而且只要connector/j的版本号大于3.1,建立数据库链接时会自动使用数据库的编码。
在MYSQL>4.1 && connector/j > 3.1时,JDBC链接URL为:
jdbc:mysql://<host>/<database>?useServerPrepStmts=false
否则要在链接上指定连接编码:
jdbc:mysql://<host>/<database>?useUnicode=true&characterEncoding=utf-8
至于default-storage-engine=INNODB,则在当你的程序需要用到事务时可以方便点,就算没用到也没所谓,反正只是个开发环境,方便就OK。
再为启动MYSQLD进程添加用户,执行以下命令:
添加用户组
groupadd mysql
添加用户
useradd -g mysql mysql
设置MYSQL目录的拥有者
chown -R root .
设置数据文件目录拥有者
chown -R mysql data
设置目录所属组
chgrp -R mysql .
安装初始数据库
scripts/mysql_install_db --user=mysql
启动进程
bin/mysqld_safe --user=mysql &
如果没有显示mysqld end之类的字眼,通常都是正常启动了。
如果需要MYSQL开机时自动启动的:拷贝$MYSQL_HOME/support-files/mysql-server到/etc/rc.d/init.d/mysqld
再执行chkconfig --add mysqld即可
因为我试过4, 5版的MYSQL启动脚本是可以通用的,所以这里就不用再搞链接了。。。