歡迎您光臨本站 註冊首頁

集JSP、PHP和JAVA於一體的開發環境

←手機掃碼閱讀     火星人 @ 2014-03-26 , reply:0

前言

本文介紹了融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 ... 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 ... -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=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib

CVSROOT=/usr/local/cvsroot

PATH=.:$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH

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包。

# source /etc/profile //重載profile環境。

# ldconfig //創建動態鏈接庫緩存文件。

# javac -d . HelloWorld.java //編譯測試文件。

# java HelloWorld //運行程序測試安裝是否成功。

------------------------------------------------------------------


五.安裝Apache

------------------------------------------------------------------

# tar xvzf httpd* //解壓源碼包。

# 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選項:支持地址重寫功能,使用1.3版本的朋友請將它改為--enable-module=rewrite。


六.編譯安裝PHP

1.執行命令

-------------------------------------------------------------------

#tar xvzf php* //解壓源碼包

#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加速器

---------------------------------------------------------------------

說明:

--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

//本程序測試PHP的JAVA環境是否可用,代碼是從http://www.php.net/manual/en/ref.java.php摘錄下來的。


// get instance of Java class java.lang.System in PHP

$system = new Java('java.lang.System');


// demonstrate property access

echo 'Java version=' . $system->getProperty('java.version') . '
';

echo 'Java vendor=' . $system->getProperty('java.vendor') . '
';

echo 'OS=' . $system->getProperty('os.name') . ' ' .

$system->getProperty('os.version') . ' on ' .

$system->getProperty('os.arch') . '
';


// java.util.Date example

$formatter = new Java('java.text.SimpleDateFormat',

"EEEE, MMMM dd, yyyy 'at' h:mm:ss a zzzz");


echo $formatter->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 //運行配置腳本

#./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"



/usr/local/tomcat/webapps/jsp-examples/for.jsp



/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 $PROFILEDIR/Tomcat5_Apache2 ]; then

echo "Running Tomcat5_Apache2"

else

if [ -f $CATALINA_HOME/bin/startup.sh ]; then

if [ -f $APACHE_HOME/bin/apachectl ]; then

"$CATALINA_HOME/bin/startup.sh"

echo "Startting Tomcat5"

sleep 3

echo "Startting Apache2"

$APACHE_HOME/bin/apachectl start

echo "."

touch $PROFILEDIR/Tomcat5_Apache2

else

echo "Apache File Not Founds"

fi

else

echo "Tomcat File Not Founds"

fi

fi

;;


stop)

if [ -f $PROFILEDIR/Tomcat5_Apache2 ]; then

if [ -f $CATALINA_HOME/bin/shutdown.sh ]; then

if [ -f $APACHE_HOME/bin/apachectl ]; then

"$CATALINA_HOME/bin/shutdown.sh"

echo "Stopping Tomcat5"

sleep 3

echo "Stopping Apache2"

$APACHE_HOME/bin/apachectl stop

rm $PROFILEDIR/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加入系統啟動列表

------------------------------------------------------------------


八.安裝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倉庫。

$exit //退出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用戶加入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。

[火星人 ] 集JSP、PHP和JAVA於一體的開發環境已經有515次圍觀

http://coctec.com/docs/linux/show-post-189707.html