在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啟動腳本是可以通用的,所以這里就不用再搞鏈接了。。。