詳細(xì)講述JSP、PHP與JAVA融合的開發(fā)環(huán)境
添加時(shí)間:2015-1-7 20:28:53
添加:
思海網(wǎng)絡(luò)
本文介紹了JSP、PHP和JAVA于一爐的開發(fā)環(huán)境的建立,為了適合大多數(shù)初學(xué)者的需求,很多步驟都是采用比較方便的辦法,力求簡單明了。一般來說,沒有特別需求的軟件,我都是采用RPM的方式安裝。如果你有優(yōu)化配置、安全考慮等特殊需求,請參考相關(guān)的更多的資料進(jìn)行配置。
在本文中,Apache以DSO模式安裝,PHP實(shí)現(xiàn)了JAVA組件的支持,使得我們在進(jìn)行大型項(xiàng)目開發(fā)的時(shí)候,可以選擇PHP作為前端腳本語言,調(diào)用JAVA組件實(shí)現(xiàn)底層和企業(yè)級的應(yīng)用。
一.系統(tǒng)環(huán)境
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.客戶機(jī)環(huán)境
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
二.系統(tǒng)安裝
啟動(dòng)Linux安裝光盤,安裝基本系統(tǒng):FTP、開發(fā)工具和MySQL3.23.54。如果你是手工編譯安裝MySQL,要記得以后在編譯PHP等程序時(shí)要指明MySQL的具體路徑,否則會(huì)因找不到路徑而導(dǎo)致編譯出錯(cuò)。
三.安裝webmin1.110
用Webmin來配置系統(tǒng),傻瓜化,可以節(jié)省不少力氣,所以一般我都先安裝它。安裝過程很簡單,執(zhí)行setup.sh腳本后照提示一步一步來就可以了。
四.安裝JDK1.4.2
1.編輯如下三個(gè)文件,沒有指明全路徑的放在你自己的home目錄就可以。
/etc/profileJAVA_HOME=/usr/java/j2sdk1.4.2_04CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/libCVSROOT=/usr/local/cvsrootPATH=.:$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATHexport 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/serverHelloWorld.javaclass HelloWorld{public static void main(String[] args){//本文件測試Java環(huán)境是否安裝成功。System.out.println("Hello World!");}} |
2.執(zhí)行以下命令:
# rpm -ivh j2sdk*.rpm //安裝JDK包。# source /etc/profile //重載profile環(huán)境。# ldconfig //創(chuàng)建動(dòng)態(tài)鏈接庫緩存文件。# javac -d . HelloWorld.java //編譯測試文件。# java HelloWorld //運(yùn)行程序測試安裝是否成功。 |
五.安裝Apache
# tar xvzf httpd* //解壓源碼包。# cd httpd* //進(jìn)入安裝目錄。# ./configure --prefix=/usr/local/apache--enable-so --enable-mods-shared=most--enable-rewrite # make;make install//編譯并安裝。 |
說明:
--enable-so選項(xiàng):讓Apache可以支持DSO模式,注意,我們在這里采用的是Apache2.0的語法。如果你的Apache是1.3版本,應(yīng)改為--enable-module=so。
--enable-mods-shared=most選項(xiàng):告訴編譯器將所有標(biāo)準(zhǔn)模塊都編譯為DSO模塊。你要是用的是Apache1.3,改為--enable-shared=max就可以。
--enable-rewrite選項(xiàng):支持地址重寫功能,使用1.3版本的朋友請將它改為--enable-module=rewrite。
六.編譯安裝PHP
1.執(zhí)行命令:
#tar xvzf php*//解壓源碼包#cd php* //進(jìn)入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//復(fù)制php配置文件#cd /usr/local/php/lib/php/extensions/no-debug-non-zts-20020429 //extensions目錄 #ln -s java.so libphp_java.so //建立連接,忘記了會(huì)出錯(cuò)哦 #cd Zend*//進(jìn)入ZendOptimizer目錄 #./install //安裝PHP加速器 |
說明:
--with-apxs2=/usr/local/apache/bin/apxs是Apache2的語法,1.3版本的用戶請使用--with-apxs=/usr/local/apache/bin/apxs。
2.編輯下面三個(gè)文件:
/usr/local/apache/conf/httpd.conf LoadModule php4_module modules/libphp4.soAddType application/x-httpd-php .php AddType application/x-httpd-php-source .phpsAddDefaultCharset gb2312/usr/local/apache/htdocs/test.php//本程序測試PHP的JAVA環(huán)境是否可用,代碼是從http://www.php.net/manual/en/ref.java.php摘錄下來的。// get instance of Java classjava.lang.System in PHP$system = new Java('java.lang.System');// demonstrate property accessecho '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轉(zhuǎn)換到新版本,可能會(huì)發(fā)現(xiàn)你的PHP程序很多都不能用了。不過把register_globals打開就會(huì)一切正常了。這是因?yàn)槔习姹镜腜HP,它的register_globals默認(rèn)是開著的,而新版本,卻把它關(guān)了的緣故。
(2)./home/jim/myclass是我存放JAVA組件的路徑,你可以根據(jù)實(shí)際情況修改,但是為了安全起見,不要放在web目錄下。
七.安裝Tomcat
1.執(zhí)行以下命令
#cd *jk2*/jk/native2 //進(jìn)入連接器編譯目錄#./buildconf.sh //運(yùn)行配置腳本#./configure --with-apxs2=/usr/local/apache/bin/apxs --enable-jni --enable-EAPI#make //編譯模塊#cd ~jim/src/*jk2*/jk/build/jk2/apache2 //進(jìn)入編譯好模塊的目錄#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//建立共享內(nèi)存文件 |
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 # deion: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.設(shè)置自動(dòng)啟動(dòng)
#chmod u+x /etc/rc.d/init.d/httpd //修改文件執(zhí)行權(quán)限#/sbin/chkconfig --add httpd//將httpd加入系統(tǒng)啟動(dòng)列表 |
八.安裝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.執(zhí)行以下命令
# /usr/sbin/useradd -d /usr/local/cvsroot cvs //創(chuàng)建CVS管理用戶。 #passwd cvs//創(chuàng)建管理用戶密碼。 # chmod 771 /usr/local/cvsroot //修改CVS根目錄權(quán)限。 # su cvs //使用CVS用戶的身份。 $ cvs -d /usr/local/cvsroot init //初始化CVS倉庫。 $exit //退出CVS用戶身份。 #chmod 644 /etc/xinetd.d/cvspserver//修改CVS服務(wù)啟動(dòng)文件權(quán)限。 # /etc/rc.d/init.d/xinetd restart//重啟動(dòng)xinetd超級服務(wù)器。 # netstat -lnp|grep 2401//查看CVS服務(wù)是否已經(jīng)啟動(dòng)。 # /usr/sbin/useradd cvspub//創(chuàng)建CVS等效系統(tǒng)用戶cvspub。 # /usr/sbin/usermod -G cvs cvspub//將cvspub用戶加入cvs組。 #cd /home/tets1//進(jìn)入測試用的項(xiàng)目目錄。 #cvs import -m'this is a test only' test1 v_0_0_1 start //將當(dāng)前項(xiàng)目的文件導(dǎo)入CVS倉庫。 |
說明:
CVS的密碼問題,以前眾說紛紜,有的是編一段程序來生成密碼,有的則用所謂的土方法去拷貝shadow密碼。其實(shí)我可以告訴初學(xué)者一個(gè)最簡單方便的方法,就是采用Webmin添加CVS用戶,它自己就會(huì)幫你生成密碼。
3.編輯以下文件:
/usr/local/cvsroot/CVSROOT/passwdtest1:NXWxabrVe7z/w:cvspubtest2:FZTxeAWW.ySIA:cvspub |
說明:
主要是在最后加上用戶名cvspub,讓系統(tǒng)用戶cvspub代替test1和test2去讀寫CVS倉庫。
/usr/local/cvsroot/CVSROOT/readerstest1/usr/local/cvsroot/CVSROOT/writerscvstest2 |
至此,整個(gè)系統(tǒng)配置完成。
關(guān)鍵字:JSP、PHP、JAVA