构建JSP、PHP与JAVA融为一体的开发环境
作者:Eva---LiuJ | 来源:互联网 | 2017-06-26 09:46
文章标题:构建JSP、PHP与JAVA融为一体的开发环境。Linux是中国IT实验室的一个技术频道。包含桌面应用,Linux系统管理,内核研究,嵌入式系统和开源等一些基本分类
前言
本文介绍了融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=.:$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
<%
int i;
for(i=1;i<100;i++)
{
out.println("Hello World!");
}
%>
/usr/local/tomcat/conf/jk2.propertie
handler.list=request,container,channelSocket
channelS
推荐阅读
-
本文探讨了在使用phpMyAdmin过程中遇到的mysqli_init()函数错误,并提供了有效的解决方案。 ...
[详细]
蜡笔小新 2024-12-04 17:35:56
-
本文详细介绍了在PHP中如何创建新文件以及如何使自定义函数在整个项目中全局可用的方法,包括最新的实践技巧。 ...
[详细]
蜡笔小新 2024-12-04 18:48:49
-
-
本文详细介绍了Linux操作系统的文件系统结构,包括其独特的树状目录体系、根目录的作用、目录与磁盘分区的关系等,并对各主要目录的功能进行了深入解析。 ...
[详细]
蜡笔小新 2024-12-04 10:39:45
-
本文探讨了解决getallheaders函数引起的服务器500错误的方法,并介绍八种有效的服务器性能优化技术,包括内存数据库的应用、Spark RDD的使用、缓存策略的实施、SSD的引入、数据库优化、IO模型的选择、多核处理策略以及分布式部署方案。 ...
[详细]
蜡笔小新 2024-12-03 18:26:35
-
FastDFS是一款高效、简洁的分布式文件系统,广泛应用于互联网应用中,用于处理大量用户上传的文件,如图片、视频等。本文探讨了FastDFS的设计理念及其如何通过独特的架构设计提高性能和可靠性。 ...
[详细]
蜡笔小新 2024-12-03 14:42:56
-
本文详细介绍了MySQL在Linux环境下的主从复制技术,包括单向复制、双向复制、级联复制及异步复制等多种模式。主从复制架构中,一个主服务器(Master)可与一个或多个从服务器(Slave)建立连接,实现数据的实时同步。 ...
[详细]
蜡笔小新 2024-12-02 23:08:49
-
###########性能监控脚本###########################!binbash#监控cpu系统负载IPifconfigeth0|grepinetaddr ...
[详细]
蜡笔小新 2024-12-02 18:58:45
-
本文基于https://major.io/2014/05/13/coreos-vs-project-atomic-a-review/的内容,对CoreOS和Atomic两个操作系统进行了详细的对比,涵盖部署、管理和安全性等多个方面。 ...
[详细]
蜡笔小新 2024-12-02 15:49:30
-
本文详细介绍了在Web开发过程中,遇到CSS文件因MIME类型不匹配而无法正确加载的问题及其解决方案,适合前端开发者阅读。 ...
[详细]
蜡笔小新 2024-12-02 14:32:48
-
CGroups(Control Groups)是Linux内核提供的一个功能,旨在限制、记录和隔离进程组使用的物理资源,如CPU、内存和I/O等。它通过精细的资源管理,支持现代容器技术如Docker的资源限制需求。 ...
[详细]
蜡笔小新 2024-12-04 15:19:11
-
本文详细介绍了在MySQL数据库中为字段添加注释的两种方法,并提供了具体的SQL语句示例,帮助开发者更好地管理和理解数据库结构。 ...
[详细]
蜡笔小新 2024-12-04 14:47:23
-
本文详细记录了《PHP与MySQL Web开发》第一章的学习心得,特别关注了PHP的基本构成元素、标记风格、编程注意事项及表单处理技巧等内容。 ...
[详细]
蜡笔小新 2024-12-04 08:25:58
-
本文详细介绍如何在Linux虚拟机上安装Memcached,包括必要的依赖库安装,以及使用Xshell进行文件传输的具体步骤。 ...
[详细]
蜡笔小新 2024-12-03 18:28:27
-
在现代多线程编程中,Lock接口提供的灵活性和控制力超越了传统的synchronized关键字。Lock接口不仅使锁成为一个独立的对象,还提供了更细粒度的锁定机制,例如读写锁(ReadWriteLock)。本文将探讨如何利用ReentrantReadWriteLock提高并发性能。 ...
[详细]
蜡笔小新 2024-12-03 13:05:03
-
本文深入探讨了程序员与软件工程师之间的主要区别,包括它们的职业定位、技能要求以及工作内容等方面的不同,旨在帮助读者更好地理解这两个角色的特点。 ...
[详细]
蜡笔小新 2024-12-03 11:53:09
-
Eva---LiuJ
这个家伙很懒,什么也没留下!