為 FreeBSD 打造 Java平台!

1.
安裝ImageMagic(遇到選單畫面取消printer驅動程式的安裝加快速度 大概要30-40分裝安裝)
cd /usr/ports/graphics/ImageMagick
make install clean

***********重要備註***********
#安裝過程中如出現訊息
#/libexec/ld-elf.so.1: Shared object \”libintl.so.5\” not found
#請
ln -s /usr/local/lib/libintl.so.6 /usr/local/lib/libintl.so.5
make deinstall
make reinstall clean

#安裝過程中如出現
#An older version of graphics/png is already installed (軟體名稱)
# You may wish to “make deinstall\’\’ and install this port again
# by “make reinstall\’\’ to upgrade it properly.
# If you really wish to overwrite the old port of graphics/png
# without deleting it first, set the variable \”FORCE_PKG_REGISTER\”
# in your environment or the \”make install\” command line.
#請進行
make deinstall
make reinstall clean

2.安裝JDK 1.4.2(要有心理準備 非常的久)
cd /usr/ports/java/jdk14
make install clean > /tmp/report.txt
#它會要到固定網址您取得以下4個檔案
#bsd-jdk14-patches-6.tar.gz
#j2sdk-1_4_2-bin-scsl.zip
#j2sdk-1_4_2-src-scsl.zip
#j2sdk-1_4_2_03-linux-i586.bin
#請使用fetch URL的方式取得比較方便
#過程中如發生意外 可參考/tmp/report.txt 訊息來獲得解決

此4個檔案我放在ftp://77bbs.com/java_bsd 裡

因為這是以模擬 linux 的方式去跑的! so 你要確定/etc/fstab 必須要有一個 linux 的 process
我想, 直接用 port 裝的話應該會自動幫你加上這行, 因為總得要安裝 可模擬linux 的程式嘛~…
linprocfs /compat/linux/proc linprocfs rw 0 0

安裝完後可以試看看 java 是否可以正常跑起來
$/usr/local/jdk1.4.2/bin/javac 可以 compile
$/usr/local/jdk1.4.2/bin/java 可以 run .class

3.安裝tomcat 5.0.19
cd /usr/ports/www/jakarta-tomcat5
make install clean

4.為 tomcat 啟動檔加入一些中文, java..等的參數
# joe /usr/local/etc/rc.d/020.jakarta-tomcat50.sh

export ENABLE_STARTUP_LOCATE=zh_TW.Big5
export LANG=zh_TW.Big5
export LC_CTYPE=zh_TW.Big5
export CATALINA_BASE=/usr/local/jakarta-tomcat5.0/webapps/ROOT
export TOMCAT_HOME=/usr/local/jakarta-tomcat5.0
export JAVA_HOME=/usr/local/jdk1.4.2
export CLASSPATH=./:/usr/local/jdk1.4.2/lib:/usr/local/jdk1.4.2/jre/lib/ext:/usr/local/jdk1.4.2/lib/tools.jar:/usr/local/share/java/classes:/usr/local/jdk1.4.2/jre:/usr/local/share/java/classes/

5.安裝 Apache , 用 1.3.x or 2.0.x 應該都可以, 不過在 configure 的時候要啟用 DSO !
./configure –enable_module=so
./make all ; make install

6.安裝mod_jk , 讓 Apache 和 Tomcat 可以結合
cd /usr/ports/www/mod_jk
make install clean

再在 /usr/local/apache/conf/httpd.conf 中加入下列幾行:

LoadModule jk_module libexec/mod_jk.so
AddModule mod_jk.c
Alias /jsp-examples /usr/local/jakarta-tomcat5.0/webapps/jsp-examples
Alias /servlets-examples /usr/local/jakarta-tomcat5.0/webapps/servlets-examples
Alias /webdav /usr/local/jakarta-tomcat5.0/webapps/webdav

JkWorkersFile /usr/local/apache/conf/workers.properties
JkLogFile logs/jk.log
JkLogLevel warn
JkMount /*.jsp worker1
JkMount /examples/* worker1
JkMount /servlet/* worker1

再 creat /usr/local/apache/conf/workers.properties 內容如下:

# Define 1 real worker using ajp13
worker.list=worker1

# Set properties for worker1 (ajp13)
worker.worker1.type=ajp13
worker.worker1.host=127.0.0.1
worker.worker1.port=8009
worker.worker1.lbfactor=50
worker.worker1.cachesize=10
worker.worker1.cache_timeout=600
worker.worker1.socket_keepalive=1
worker.worker1.socket_timeout=300

當然, 若要讓 httpd.conf 和 這個 workers.properties 的內容可以奏效,
得確定 /usr/local/jakarta-tomcat5.0/conf/server.xml 有下面的內容

你的 port 可能不會是 8180 , btw http://ip_of_your_bsd:8180 ….若有跑出tomcat的劃面那就是tomcat有跑起來了!

9.設定 Apache 和 Tomcat 的DocumentRoot ….
Tomcat 的 DocumentRoot 預設是在 /usr/local/jakarta-tomcat5.0/webapps/ROOT
而 Apache 則是由 httpd.conf 自定! 我習慣都是礎b /home/www
若要將2者結合看起來最快的方式就是使用 link ….我試過幾種 link, 只有一種情況跑可以讓 *jsp 跑得起來!

/home # ln -s /usr/local/jakarta-tomcat5.0/webapps/ROOT ./www
這樣子無論是 Apache的 html(含 php) 或者是 jsp 都可以在 Tomcat 的工作路徑下跑起來;
若是 /usr/local/jakarta-tomcat5.0/webapps # ln -s /home/www ./ROOT
則只能跑得起來 php 和 html ~…jsp 無法跑起來, 我想, 大概是 .jsp 檔一定要\”實際地\”是在 Tomcat的目錄下才可以跑~….

另, 一般user 要跑 jsp 也沒有辦法在 http://xxxxxxx/~userid 中跑! ..基本上這樣 tomcat 就不會被 jk_mod 啟動了!
我的做法是在 /home 中建立 每個 user的目錄, 並且 link 到 ~/publuic_html; ex:
# mkdir /home/www/worren ; chown worren /home/www/worren; cd /home/worren ; ln -s /home/www/worren ./publuic_html

Share your vote!


Do you like this post?
  • Fascinated
  • Happy
  • Sad
  • Angry
  • Bored
  • Afraid

One thought on “為 FreeBSD 打造 Java平台!”

Leave a Reply to dokein Cancel reply

Your email address will not be published. Required fields are marked *


Please help to input verification code