茫茫網海中的冷日
         
茫茫網海中的冷日
發生過的事,不可能遺忘,只是想不起來而已!
 恭喜您是本站第 1675455 位訪客!  登入  | 註冊
主選單

Google 自訂搜尋

Goole 廣告

隨機相片
PIMG_00194.jpg

授權條款

使用者登入
使用者名稱:

密碼:


忘了密碼?

現在就註冊!

爪哇咖啡屋 : [分享]JSP、PHP與JAVA融合的開發環境

發表者 討論內容
冷日
(冷日)
Webmaster
  • 註冊日: 2008/2/19
  • 來自:
  • 發表數: 15771
[分享]JSP、PHP與JAVA融合的開發環境
JSP、PHP與JAVA融合的開發環境
Posted at September 23, 2005 01:54 AM in
本文介紹了融JSP、PHP和JAVA於一爐的開發環境的建立,為了適合大多數初學者的需求,很多步驟都是採用比較方便的辦法,力求簡單明了。一般來說,沒有特別需求的軟件,我都是採用RPM的方式安裝。如果你有優化配置、安全考慮等特殊需求,請參考相關的文章進行配置。
在本文中,Apache以DSO模式安裝,PHP實現了JAVA組件的支持,使得我們在進行大型項目開發的時候,可以選擇PHP作為前端腳本語言,調用JAVA組件實現底層和企業級的應用。
JSP、PHP與JAVA融合的開發環境
前言
本文介紹了融JSP、PHP和JAVA於一爐的開發環境的建立,為了適合大多數初學者的需求,很多步驟都是採用比較方便的辦法,力求簡單明了。一般來說,沒有特別需求的軟件,我都是採用RPM的方式安裝。如果你有優化配置、安全考慮等特殊需求,請參考相關的文章進行配置。
在本文中,Apache以DSO模式安裝,PHP實現了JAVA組件的支持,使得我們在進行大型項目開發的時候,可以選擇PHP作為前端腳本語言,調用JAVA組件實現底層和企業級的應用。
一.系統環境
1.初始安裝
防火牆開放接口:21,22,80,2401,8009,10000,eth0
Redhat Linux 9.0
Development Tools
Network Servers
VSFtp
CVS-1.11.2-10
MySQL 3.23.54
2.包安裝
JDK 1.4.2_04
下載地址:http://www.netshine.com.cn/linux/j2sdk-1_4_2_04-linux-i586.rpm
Tomcat 5.0.19
下載地址:http://www.netshine.com.cn/linux/jakarta-tomcat-5.0.19.tar.gz
3.腳本安裝
Webmin 1.110
下載地址:http://www.netshine.com.cn/linux/webmin-1.110.tar.gz
ZendOptimizer 2.5.1
下載地址:http://www.netshine.com.cn/linux/ZendOptimizer-2.5.1-Linux_glibc21-i386.tar.gz
4.手工編譯
Apache 2.0.49
下載地址:http://www.netshine.com.cn/linux/httpd-2.0.49.tar.gz
PHP 4.3.5
下載地址:http://www.netshine.com.cn/linux/php-4.3.5.tar.gz
JK 2-2.0.4
下載地址:http://www.netshine.com.cn/linux/jakarta-tomcat-connectors-jk2-src-current.tar.gz
5.客戶機環境
Windows XP Professional
Absolute Telnet 3.0
Zend Encoder
Macromedia Dreamweaver MX 2004
Borland JBuilder 9 Enterprise
WinCVS 1.3
下載地址:http://www.netshine.com.cn/linux/WinCvs13b17.zip
二.系統安裝
啟動Linux安裝光盤,安裝基本系統:FTP、開發工具和MySQL3.23.54。如果你是手工編譯安裝MySQL,要記得以後在編譯PHP等程序時要指明MySQL的具體路徑,否則會因找不到路徑而導致編譯出錯。
三.安裝webmin1.110
用Webmin來配置系統,傻瓜化,可以節省不少力氣,所以一般我都先安裝它。安裝過程很簡單,執行setup.sh腳本後照提示一步一步來就可以了。
# cd webmin*
# ./setup.sh

四.安裝JDK1.4.2
1.編輯如下三個文件,沒有指明全路徑的放在你自己的home目錄就可以。
/etc/profile
JAVA_HOME=/usr/java/j2sdk1.4.2_04
CLASSPATH=.:/lib:/jre/lib
CVSROOT=/usr/local/cvsroot
PATH=.:/bin:/jre/bin:export JAVA_HOME CLASSPATH CVSROOT PATH
/etc/ld.so.conf
/usr/java/j2sdk1.4.2_04/jre/lib/i386
/usr/java/j2sdk1.4.2_04/jre/lib/i386/server
HelloWorld.java
class HelloWorld
{
public static void main(String[] args)
{
//本文件測試Java環境是否安裝成功。
System.out.println("Hello World!");
}
}

2.執行以下命令:
# rpm -ivh j2sdk*.rpm //安裝JDK?#93;。
# source /etc/profile //重載profile環境。
# ldconfig //創建動態鏈接庫緩存文件。
# javac -d . HelloWorld.java //編譯測試文件。
# java HelloWorld //運行?#123;序測試安裝是否成功。

五.安裝Apache
# tar xvzf httpd* //解壓源碼?#93;。
# cd httpd* //進入安裝目錄。
# ./configure --prefix=/usr/local/apache
--enable-so --enable-mods-shared=most --enable-rewrite
# make;make install //編譯並安裝。
說明:
--enable-so選項:讓Apache可以支持DSO模式,注意,我們在這裡採用的是Apache2.0的語法。如果你的Apache是1.3版本,應改為--enable-module=so。
--enable-mods-shared=most選項:告訴編譯器將所有標準模塊都編譯為DSO模塊。你要是用的是Apache1.3,改為--enable-shared=max就可以。
--enable-rewrite選項:支持地?#125;重寫功能,使用1.3版本的朋友請將它改為--enable-module=rewrite。

六.編譯安裝PHP
1.執行命令
#tar xvzf php* //解壓源碼?#93;
#cd php* //進入PHP安裝命令
#./configure --prefix=/usr/local/php --with-mysql --with-apxs2=/usr/local
/apache/bin/apxs --with-java=/usr/java/j2sdk1.4.2_04
#make;make install //編譯並安裝
#cp php.ini-dist /usr/local/php/lib/php.ini //複製php配置文件
#cd /usr/local/php/lib/php/extensions/no-debug-non-zts-20020429 //extensions目錄
#ln -s java.so libphp_java.so //建立連接,忘記了會出錯哦
#cd Zend* //進入ZendOptimizer目錄
#./install //安裝PHP?#91;速器
說明:
--with-apxs2=/usr/local/apache/bin/apxs是Apache2的語法,1.3版本的用戶請使用--with-apxs=/usr/local/apache/bin/apxs。

2.編輯下面三個文件
/usr/local/apache/conf/httpd.conf
LoadModule php4_module modules/libphp4.so
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
AddDefaultCharset gb2312
/usr/local/apache/htdocs/test.php
//本?#123;序測試PHP的JAVA環境是否可用,
代碼是從http://www.php.net/manual/en/ref.java.php摘錄下來的。
// get instance of Java class java.lang.System in PHP
= new Java('java.lang.System');
// demonstrate property access
echo 'Java version=' . ->getProperty('java.version') . '
';
echo 'Java vendor=' . ->getProperty('java.vendor') . '
';
echo 'OS=' . ->getProperty('os.name') . ' ' .
->getProperty('os.version') . ' on ' .
->getProperty('os.arch') . '
';
// java.util.Date example
= new Java('java.text.SimpleDateFormat',
"EEEE, MMMM dd, yyyy 'at' h:mm:ss a zzzz");
echo ->format(new Java('java.util.Date'));
?>
/usr/local/php/lib/php.ini
register_globals=On
[Java]
java.class.path=/usr/local/php/lib/php/php_java.jar:/home/jim/myclass
java.home=/usr/java/j2sdk1.4.2_04
java.library=/usr/java/j2sdk1.4.2_04/jre/lib/i386/libjava.so
java.library.path=/usr/local/php/lib/php/extensions/no-debug-non-zts-20020429
extension_dir=/usr/local/php/lib/php/extensions/no-debug-non-zts-20020429
extension=libphp_java.so

注意:
(1).如果你剛剛從以前老版本的PHP轉換到新版本,可能會發現你的PHP程序很多都不能用了。別緊張!把register_globals打開就一切正常啦!這是因為老版本的PHP,它的register_globals默認是開著的,而新版本,卻把它關了的緣故。
(2)./home/jim/myclass是我存放JAVA組件的路徑,你可以根據實際情況修改,但是為了安全起見,可不要放在web目錄下哦。
七.安裝Tomcat
1.執行以下命令
#cd *jk2*/jk/native2 //進入連接器編譯目錄
#./buildconf.sh //運行配置?#125;本
#./configure --with-apxs2=/usr/local/apache/bin/apxs --enable-jni --enable-EAPI
#make //編譯模塊
#cd ~jim/src/*jk2*/jk/build/jk2/apache2 //進入編譯好模塊的目錄
#cp *.so /usr/local/apache/modules/ //將模塊拷貝到Apache目錄
#cp -R jakarta-tomcat-5.0.19 /usr/local/tomcat //安裝Tomcat
#touch /usr/local/apache/logs/shm.file //建立共享內存文件

我剛開始安裝Tomcat的時候,總是不成功,後來我跑到Apache的網站,看了一份只有兩頁的英文說明,很快就把它配好了。我發現國內的作者總是喜歡故弄玄虛,把本來很簡單的東西搞得很複雜,讓人家看不懂,以顯示自己高明。
2.編輯以下文件
/usr/local/apache/conf/httpd.conf
LoadModule jk2_module modules/mod_jk2.so
JkSet config.file /usr/local/apache/conf/workers2.properties
DocumentRoot "/usr/local/tomcat/webapps"
<directory>
</directory>
/usr/local/tomcat/webapps/jsp-examples/for.jsp
<%
int i;
for(i=1;i<100;i++)
{
out.println("
<h" i="" +="">
Hello World!
</h">
");
}
%>
/usr/local/tomcat/conf/jk2.propertie
handler.list=request,container,channelSocket
channelSocket.port=8009
channelSocket.address=127.0.0.1
channelSocket.maxPort=port+10
/usr/local/apache/conf/workers2.properties
[shm]
file=/usr/local/apache/logs/shm.file
size=1048576
[workerEnv:]
info=Global server options
timing=1
debug=0
[channel.socket:localhost:8009]
port=8009
host=127.0.0.1
[ajp13:localhost:8009]
channel=channel.socket:localhost:8009
[uri:/*.jsp]
worker=ajp13:localhost:8009
/etc/rc.d/init.d/httpd
#!/bin/sh
# chkconfig:2345 92 12
# description:Starting Apache and Tomcat Server
LD_LIBRARY_PATH=/usr/java/
j2sdk1.4.2_04/jre/lib/i386:/usr/java/
j2sdk1.4.2_04/jre/lib/i386/server
export LD_LIBRARY_PATH
CATALINA_BASE=/usr/local/tomcat
export CATALINA_BASE
CATALINA_HOME=/usr/local/tomcat
export CATALINA_HOME
APACHE_HOME=/usr/local/apache
export APACHE_HOME
JAVA_HOME=/usr/java/j2sdk1.4.2_04
export JAVA_HOME
PROFILEDIR=/var/run
case "$1" in
start)
if [ -f /Tomcat5_Apache2 ]; then
echo "Running Tomcat5_Apache2"
else
if [ -f /bin/startup.sh ]; then
if [ -f /bin/apachectl ]; then
"/bin/startup.sh"
echo "Startting Tomcat5"
sleep 3
echo "Startting Apache2"
/bin/apachectl start
echo "."
touch /Tomcat5_Apache2
else
echo "Apache File Not Founds"
fi
else
echo "Tomcat File Not Founds"
fi
fi
;;
stop)
if [ -f /Tomcat5_Apache2 ]; then
if [ -f /bin/shutdown.sh ]; then
if [ -f /bin/apachectl ]; then
"/bin/shutdown.sh"
echo "Stopping Tomcat5"
sleep 3
echo "Stopping Apache2"
/bin/apachectl stop
rm /Tomcat5_Apache2
else
echo "Apache File Not Founds"
fi
else
echo "Tomcat File Not Founds"
fi
else
echo "Not Running Tomcat5_Apache2"
fi
;;
*)
echo "Usage; `basename $0` {start|stop}" 1>&2
exit 1
;;
esac
exit 0

3.設置自動啟動
#chmod u+x /etc/rc.d/init.d/httpd //修改文件執行權限
#/sbin/chkconfig --add httpd //將httpd?#91;入系統啟動列表

八.安裝CVS
1.編輯以下文件
/etc/xinetd.d/cvspserver
service cvspserver
{
socket_type=stream
wait=no
user=root
server=/usr/bin/cvs
server_args=-f --allow-root=/usr/local/cvsroot pserver
log_on_failure += USERID
}

2.執行以下命令
# /usr/sbin/useradd -d /usr/local/cvsroot cvs //創建CVS管理用戶。
#passwd cvs //創建管理用戶密碼。
# chmod 771 /usr/local/cvsroot //修改CVS根目錄權限。
# su cvs //使用CVS用戶的身份。
$ cvs -d /usr/local/cvsroot init //初始化CVS倉庫。
//退出CVS用戶身份。
#chmod 644 /etc/xinetd.d/cvspserver //修改CVS服務啟動文件權限。
# /etc/rc.d/init.d/xinetd restart //重啟動xinetd超級服務器。
# netstat -lnp|grep 2401 //查看CVS服務是否已經啟動。
# /usr/sbin/useradd cvspub //創建CVS等效系統用戶cvspub。
# /usr/sbin/usermod -G cvs cvspub //將cvspub用戶?#91;入cvs組。
#cd /home/tets1 //進入測試用的項目目錄。
#cvs import -m 'this is a test only' test1 v_0_0_1 start //將當前項目的文件導入CVS倉庫。

說明:
CVS的密碼問題,以前眾說紛紜,有的是編一段程序來生成密碼,有的則用所謂的土方法去拷貝shadow密碼。其實我可以告訴初學者一個最簡單方便的方法,就是採用Webmin添加CVS用戶,它自己就會幫你生成密碼。
3.編輯以下文件
/usr/local/cvsroot/CVSROOT/passwd
test1:NXWxabrVe7z/w:cvspub
test2:FZTxeAWW.ySIA:cvspub

說明:
主要是在最後加上用戶名cvspub,讓系統用戶cvspub代替test1和test2去讀寫CVS倉庫。
/usr/local/cvsroot/CVSROOT/readers
test1
/usr/local/cvsroot/CVSROOT/writers
cvs
test2

結語
至此,整個系統配置完成。在本系統配置過程中,出現過很多錯誤,可惜都是通過英文站點找到解決的方法,真希望我們國內站點的技術水平可以盡快提高起來。本文雖然力求簡潔明了,但由於時間所限,好多地方未必都能盡如人意,如您有不明白的地方,請與我聯繫,我會採納各位的意見,將晦澀難懂的地方修改過來。在配置過程中,參考了很多優秀的文章,在這裡謝謝各位作者!最後我想說明以下,這個系統本來是要建立在FreeBSD平台之上,但是,由於FreeBSD平台上的JAVA環境尚未完善,最後我不得不惋惜地放棄了這個INTEL平台上最優秀的操作系統,選擇了性能和穩定性都一般的RedHat Linux。
前一個主題 | 下一個主題 | 頁首 | | |



Powered by XOOPS 2.0 © 2001-2008 The XOOPS Project|