2006年01月28日 13:19

java servlet的環境設置

利用過年的時間把所學的東西給整理一下
共記錄windows、centos、ubuntu三種os


windows:
系統變數增加

CATALINA_BASE ==>C:\tomcat5
CATALINA_HOME==>C:\tomcat5
TOMCAT_HOME===>C:\tomcat5
CLASSPATH==>
JAVA_HOME==>C:\java1.4
Path==>C:\java1..4\bin;C:\java1.4\lib;D:\mysql5\bin;
TEMP==>C:\winnt\temp
TMP==>C:\winnt\temp

windows的軟体安裝只有"一步"再接著"一步"的給他按下去,所以就不細說了


 Centos(RedHat也是相同的)
/etc/profile 最後面加上

PATH=/var/java/bin:/var/java/jre/bin:/usr/local/sbin:/usr/sbin:/sbin:$PATH:$HOME/bin
JAVA_HOME=/var/java/
CLASSPATH=/var/java/:/var/java/jre/lib
CATALINA_BASE=/var/tomcat
CATALINA_HOME=/var/tomcat



再來就是安裝軟体了,分成http、tomcat、java三部份
http:
http://www.apache.org/ 去抓你要用的板本

tar -zxvf httpd-2.0.52.tar.gz
[root@linux local]# cd httpd-2.0.52/
[root@linux httpd-2.0.52]# ./configure --prefix=/usr/local/apache --enable-so
[root@linux httpd-2.0.52]# make && make install && echo "OK"



tomcat:
http://jakarta.apache.org/ 去抓你要用的板本

tar -zxvf jakarta-tomcat-5.0.28.tar.gz
tar -zxvf jakarta-tomcat-connectors-jk2-src-current.tar.gz
[root@linux local]# ln -s /usr/local/apache /etc/httpd
[root@linux local]# ln -s /var/local/jakarta-tomcat-5.0.28/ /var/tomcat
[root@linux local]# ln -s /usr/java/j2sdk1.4.2_06/ /var/java
[root@linux local]# vi /var/tomcat/bin/catalina.sh
JAVA_HOME=/var/java/
CATALINA_HOME=/var/tomcat/
CATALINA_BASE=/var/tomcat/
JAVA_OPTS="-server -Xms512m -Xmx512m -XX:MaxPermSize=128Mb"
JAVA_FONTS=/usr/share/fonts/zh_TW
CATALINA_PID=/var/tomcat/catalina.pid



java:
http://java.sun.com/ 抓你要用的板本

mysql:
http://www.mysql.com/
最少用4.1以上的,因為有支援utf8在處理多國語言較方便

編譯jk2

[root@linux local]# cd jakarta-tomcat-connectors-jk2-2.0.4-src/jk/native2/
[root@linux native2]# chmod 770 buildconf.sh
[root@linux native2]# ./configure --with-apxs2=/etc/httpd/bin/apxs \
> --with-apr-lib=/etc/httpd/lib/ \
> --with-tomcat41=/var/tomcat/ \
> --with-java-home=/var/java/ \
> --with-jni

[root@linux native2]# make
[root@linux native2]# libtool --finish /etc/httpd/modules/
[root@linux native2]# cd ../build/jk2/apache2/
[root@linux apache2]# cp mod_jk2.so /etc/httpd/modules/.
[root@linux apache2]# cp libjkjni.so /etc/httpd/modules/.
[root@linux apache2]# cd /var/tomcat/logs/
[root@linux logs]# touch jk2.shm

因為tomcat跟apache是自行安裝的,所以為了方便管理自已寫script處理
在/etc/init.d 下增加httpd、tomcat
請用root的身份執行,並且寫完後記著給他"執行"的權限
tomcat的內容

#! /bin/sh
#CATALINA_HOME=/usr/local/jakarta-tomcat-5.0.19
CATALINA_HOME=/var/tomcat
JAVA_HOME=/var/java
export JAVA_HOME
case "$1" in
start)
if [ -f $CATALINA_HOME/bin/startup.sh ]; then
echo "Startting tomcat5 "
"$CATALINA_HOME/bin/startup.sh"
else
echo "Tomcat startup File Not Founds "
fi
;;
stop)
if [ -f $CATALINA_HOME/bin/shutdown.sh ]; then
"$CATALINA_HOME/bin/shutdown.sh"
echo "Stopping jakarta-tomcat "
else
echo "Tomcat shutdown File Not Founds "
fi
;;
restart)
if [ -f $CATALINA_HOME/bin/shutdown.sh ]; then
"$CATALINA_HOME/bin/shutdown.sh"
echo "Stopping jakarta-tomcat "
else
echo "Tomcat shutdown File Not Founds "
fi
sleep 5
if [ -f $CATALINA_HOME/bin/startup.sh ]; then
echo "Startting tomcat5 "
"$CATALINA_HOME/bin/startup.sh"
else
echo "Tomcat startup File Not Founds "
fi
;;
*)
echo "Usage: `basename $0` {start|stop|restart}" 1>&2
exit 1
;;
esac
exit 0


httpd 的內容

#! /bin/sh
#APACHE_HOME=/etc/httpd
APACHE_HOME=/etc/httpd/
PROFILEDIR=/etc/httpd/logs/httpd.pid
case "$1" in
start)
if [ -f $PROFILEDIR ]; then
echo "Running WebService"
else
if [ -f $APACHE_HOME/bin/apachectl ]; then
echo "Startting Apache web server "
$APACHE_HOME/bin/apachectl start
else
echo "Apache File Not Founds "
fi
fi
;;
stop)
if [ -f $PROFILEDIR ]; then
if [ -f $APACHE_HOME/bin/apachectl ]; then
echo "Stopping Apache web server "
$APACHE_HOME/bin/apachectl stop
else
echo "Apache File Not Founds "
fi
else
echo "Not Running WebService "
fi
;;
restart)
if [ -f $PROFILEDIR ]; then
if [ -f $APACHE_HOME/bin/apachectl ]; then
echo "Stopping Apache web server "
$APACHE_HOME/bin/apachectl stop
else
echo "Apache File Not Founds "
fi
else
echo "Not Running WebService "
fi
sleep 5
if [ -f $PROFILEDIR ]; then
echo "Running WebService"
else
if [ -f $APACHE_HOME/bin/apachectl ]; then
echo "Startting Apache web server "
$APACHE_HOME/bin/apachectl start
else
echo "Apache File Not Founds "
fi
fi
;;
*)
echo "Usage: `basename $0` {start|stop|restart}" 1>&2
exit 1
;;
esac

exit 0
再各自已設定你要那個level要起動他們了


為了要讓java servlet能正確的處理圖形所以還要再做一些處理
在/etc/rc.d/rc.local的最後一行加上

Xvfb :29 -auth /etc/X29.hosts -screen 0 640x480x8 &

PS: Xvfb是X-window中的一個軟体,請依你的linux自已選擇合適的

再來就是測試了
分別執行apache、tomcat是否能看的到預設畫面
如ok後,我們再建行讓apache和tomcat一起工作的處理吧,這是為何呢?
因為apache在處理靜態的網頁、資料時是tomcat的數倍
當然了,如是開發環境的話就不用這麼麻煩了,直接用tomcat就夠了

我們先處理一下中文的問題吧

vi /etc/sysconfig/i18n
LANG="zh_TW.Big5"
SUPPORTED="zh_TW.Big5:zh_TW:zh"
SYSFONT="lat0-sun16"
SYSFONTACM="iso15"

還記著之前我們有在編譯jk2嗎,這時就可用的上了
在httpd.conf最後面加上

LoadModule jk2_module modules/mod_jk2.so

Alias /manager/ "/var/tomcat/server/webapps/manager/"
<Directory "/var/tomcat/server/webapps/manager">
Options FollowSymLinks None
AllowOverride None
Order allow,deny
Allow from all
</Directory>

在/etc/httpd/conf 下新增一個workers2.properties,內容加上

# only at beginnin. In production uncomment it out
[logger.apache2]
level=DEBUG

[shm]
#file=/usr/local/apache/logs/shm.file
#size=1048576

# Example socket channel, override port and host.
[channel.socket:localhost:8009]
info=Ajp13 forwarding over socket
#tomcatId=localhost:8009
port=8009
host=127.0.0.1

# define the workUntitled 1er
[ajp13:localhost:8009]
channel=channel.socket:localhost:8009

[uri:/manager/*]

再來就是/var/tomcat/conf/server.xml
看看有沒有這幾行,如沒有的話就自行加上吧

<Context path="/manager" docBase="/var/tomcat/server/webapps/manager"
debug="0" privileged="true">

<!-- Link to the user database we will get roles from -->
<ResourceLink name="users" global="UserDatabase"
type="org.apache.catalina.UserDatabase"/>

</Context>

這時你就可測試看看有沒有成功 http://localhost/manager/

你也可在 /var/tomcat/server/webapps/manager下面加上一些測試的jsp看是否能正確的執行
我的測試index.jsp的內容
vi index.jsp

<%
System.out.println("in test ok");
%>
test tomcat ok


結果是除了,你的ie上可看到test tomcat ok之外,
在tomcat的catalina.out的記錄檔也應該會看到test tomcat ok才對

ubuntu:
晚點再補上了


如有任何問題錯誤也請連絡小弟了,謝謝了


  • my_work 發表於樂多回應(0)引用(0)java編輯本文
    樂多分類:網路/3C │昨日人次:0 │累計人次:504
    Ads by Roodo! 

    引用URL

    http://cgi.blog.roodo.com/trackback/1058696