枫林在线论坛精华区>>技术交流 |
[207759] 主题: 让PHP支持大型项目-构建JSP、PHP与JAVA融为一体的开发环境 |
作者: little (渺小·马甲全站反省中) | ||
标题: 让PHP支持大型项目-构建JSP、PHP与JAVA融为一体的开发环境[转载] | ||
来自: 61.129.*.* | ||
发贴时间: 2004年05月08日 11:03:30 | ||
长度: 11935字 | ||
张贴者: jimteoh (stranger)
张贴日期 04/01/04 05:05 PM 前言 本文介绍了融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-L inux_glibc21-i 386.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-connec tors-jk2-src-c urrent.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-mo ds-shared=most --enable-rewrite # make;make install //编译并安装。 ---------------------------------------------------------------- -------------- ----------------- 说明: --enable-so选项:让Apache可以支持DSO模式,注意,我们在这里采用的 是Apache2.0的语 法。如果你的Apache是1.3版本,应改为--enable-module=so。 --enable-mods-shared=most选项:告诉编译器将所有标准模块都编译为D SO模块。你要是 用的是Apache1.3,改为--enable-shared=max就可以。 --enable-rewrite选项:支持地址重写功能,使用1.3版本的朋友请将它改 为--enable-mo dule=rewrite。 六.编译安装PHP 1.执行命令 ---------------------------------------------------------------- -------------- ----------------- #tar xvzf php* //解压源码包 #cd php* //进入PHP安装命令 #./configure --prefix=/usr/local/php --with-mysql --with-apxs2=/ usr/local/apac he/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版本的 用户请使用--w ith-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 //本程序测试PHP的JAVA环境是否可用,代码是从http://www.php.net/ma nual/en/ref.ja va.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') . '<br />'; echo 'Java vendor=' . $system->getProperty('java.vendor') . ' <br />'; echo 'OS=' . $system->getProperty('os.name') . ' ' . $system->getProperty('os.version') . ' on ' . $system->getProperty('os.arch') . ' <br />'; // 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.class.path=/usr/local/php/lib/php/php_java.jar:/home/jim/my class 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,它的regis ter_globals默认是开着的,而新版本,却把它关了的缘故。 (2)./home/jim/myclass是我存放JAVA组件的路径,你可以根据实际情况修 改,但是为了安 全起见,可不要放在web目录下哦。 七.安装Tomcat 1.执行以下命令 ---------------------------------------------------------------- -------------- ----------------- #cd *jk2*/jk/native2 //进入连接器编译目录 #./buildconf.sh //运行配置脚本 #./configure --with-apxs2=/usr/local/apache/bin/apxs --enable-jn i --enable-EAP I #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 "/usr/local/tomcat/webapps"> /usr/local/tomcat/webapps/jsp-examples/for.jsp <% int i; for(i=1;i<100;i++) { out.println("<h" + i + ">Hello World!</h " + i + ">"); } %> /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 file=/usr/local/apache/logs/shm.file size=1048576 info=Global server options timing=1 debug=0 port=8009 host=127.0.0.1 channel=channel.socket:localhost:8009 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/j 2sdk1.4.2_04/j re/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 ; then echo "Running Tomcat5_Apache2" else if ; then if ; 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 ; then if ; then if ; 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添加CV S用户,它自己就会帮你生成密码。 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环境尚未完善,最后我不得不惋惜 地放弃了这个I NTEL平台上最优秀的操作系统,选择了性能和稳定性都一般的RedHat Lin ux。 |
||
========== * * * * * ==========
|
返回 |