服务器 频道

多开发语言在Linux服务器下安装和整合

    【IT168 专稿】目前,最常用的三种动态网页语言有ASP(Active Server Pages),JSP(JavaServer Pages),PHP (Hypertext Preprocessor)。这三种语言各有所长,也各自拥有一大批忠实的开发者和使用者。目前在国内PHP与ASP应用最为广泛。而JSP由于是一种难度较大的技术,国内采用的较少。但在国外,JSP已经是比较流行的一种技术,尤其是电子商务类的网站,多采用JSP。其中PHP和JSP 可以在Linux下使用。如果要求搭建一个既能跑jsp,又能跑php脚本语言的一个服务器运行环境,其解决方法就是要把jsp和php整合到apache里,另外加上mysql数据库。

一、 在Apache服务器上运行CGI

    1、CGI简介

    CGI是独立于语言的网关接口规范,它实际上可以用任何广泛流行的应用程序开发语言来实现,包括C、C++、Perl、Shell脚本甚至Java。 WEB服务器从客户端得到某个URL,它告诉WEB服务器,必须运行一个CGI外部应用程序。那么WEB服务器启动这一应用程序,等待它完成并返回输出结果。最后,它将此应用程序的输出结果传输给另一端的WEB客户。

    2、使用mod_cgi模块

    mod_cgi模块Apache 2.x 系列的确省安装支持的一个模块,通过它可以在Apache中直接使用CGI程序。可以使用“httpd -M”命令查看mod_cgi是否已经编译。修改apache配置文件的CGI 目录部分为如下:
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/" <Directory "/var/www/cgi-bin"> AllowOverride None Options None Order allow,deny Allow from all </Directory> AddHandler cgi-script .cgi #去掉注释
    3、编写一个简单脚本文件,并且赋予权限
vi /var/www/cg-bin/hello.cgi /usr/bin/perl print “hello world”.\n; chmod 775 /var/www/cg-bin/hello.cgi
    4、打开一个浏览器测试

    在浏览器的地址栏输入:http://ip/cg-bin/hello.cgi即可,如图-1 。

    图-1 mod-cgi测试界面

    说明:除此之外还可以使用mod_perl 模块运行cgi。

    5、使用Mod_perl模块

    mod_perl模块Apache 2.x 系列的确省安装支持的一个模块,通过它可以在Apache中直接使用CGI程序。可以使用“httpd -M”命令查看mod_perl是否已经编译。修改perl配置文件/etc/httpd/conf.d/perl.conf为如下:去掉注释#
Alias /perl /var/www/perl <Directory /var/www/perl> SetHandler perl-script PerlResponseHandler ModPerl::Registry::handler PerlOptions +ParseHeaders Options +ExecCGI </Directory>
    6、编写一个简单脚本文件,并且赋予权限
mkdir /var/www/perl;cd /var/www/perl vi /var/www/perl/hello.pl print << EOF; Hello World. EOF chmod 775 /var/www/cg-bin/hello.cgi
    7、打开一个浏览器测试

    在浏览器的地址栏输入:http://ip/ perl/hello.pl 即可,如图-2 。

    图-2 mod_perl测试界面

    需要提示的一点:通过网关接口(CGI)已成为服务器端应用程序开发的事实标准。但随着时间的推移,发现在沉重的CGI负担下许多WWW服务器系统的表现不尽人意。这是因为CGI规范存在瓶颈问题:每当客户系统请求CGI应用程序时,WWW服务器就必须启动新的CGI进程,直到完成任务后结束进程。这在负载不高时,会工作正常。但是,在高负载时,繁多的进程将成为性能的瓶颈问题。
二、 在Apache服务器上运行PHP

    1、 php 、msql和apache关系

    PHP是一种跨平台的服务器端的嵌入式脚本语言。它大量地借用C,Java和Perl语言的语法, 并耦合PHP自己的特性,使WEB开发者能够快速地写出动态产生页面。最新版本PHP 系列支持目前绝大多数数据库(Mysql、PostgreSQL、Oracle,、DB2、Sybase等)。还有一点,PHP是完全免费的,不用花钱,你可以从PHP官方站点(http: //www.php.net)自由下载。PHP拓展了WEB服务器的功能,实现了Web非常好的服务的后端延展界面,如图-3。   

    图-3 PHP拓展了WEB 服务器的功能

    2、 安装Mysql
&#61548; 编译 cd mysql-4.0.15/ ../configure –prefix=/usr/local/mysql make make install cd .. &#61548; 增加mysql用户 adduser -s /bin/false mysql &#61548; 初始化并设置目录权限 /usr/local/mysql/bin/mysql_install_db chown –R root /usr/local/mysql/ chown –R mysql /usr/local/mysql/var chgrp –R mysql /usr/local/mysql/ &#61548; 加入库 echo /usr/local/mysql/lib/mysql/lib >>/etc/ld.so.conf ldconfig &#61548; 使之启动时自动运行 echo “/usr/local/mysql/bin/mysqld_safe &>>/etc/rc.d/rc.local &#61548; 启动MySQL /usr/local//mysql/bin/mysqld_safe & &#61548; 安全性设定 修改MySQL的root密码: /usr/local/mysql/bin/mysqladmin –uroot password abcdefg
    3 、安装PHP

cd php-5.1.6 ../configure–with-apxs2=/usr/local/httpd/bin/apxs –with-mysql=/usr/local/mysql make make install cp php.ini-dist /usr/local/lib/php.ini
    这种安装方式是将PHP作为Apache的SAPI模块来进行安装,它仅是其中的一种安装方式,更多的方法请参阅相关文档。

    4 、安装Apache2.2.3

cd httpd-2.2.3/ ../configure --prefix=/usr/local/httpd --enable-so(enable是这里对应于后来需要的关键文件mod_jk2.so) Make;make install cd ..
    现在已经将Apache 2.2.3安装到 /usr/local/httpd目录中,安装好的Apache支持可装载模块和标准的MPM prefork。如果安装过程中没有出现错误,便可以使用如下命令启动Apache服务:

/usr/local/httpd/bin/apachectl start
    如果启动成功,将启动命令加入rc.local,使之在系统启动时自动运行:

echo "/usr/local/httpd/bin/apachectl start &" >>/etc/rc.d/rc.local
    停止Apache服务,并继续安装PHP:

/usr/local/httpd/bin/apachectl stop
    5、 PHP和Apache安装后的基本配置

 Apache的配置
vi cd /etc/httpd/conf.d/php.conf(加入两行) LoadModule php4_module modules/libphp4.so AddType application/x-httpd-php .php .php3 同时修改DirectoryIndex为: DirectoryIndex index.html index.php index.php3 index.jsp
 PHP的配置

    Php 语言的配置文件是/usr/local/lib/php.ini,编辑php.ini文件来配置PHP的选项。特别注意的是,安装完成后register_globals变量默认设置为Off,需要将它改成On。否则会出现PHP读不到post的数据的现象。

    register_globals=On

    其它PHP的选项请参考相关文档。编写一个测试脚本可以写一个简单的PHP文件来测试安装,文件包含下列一行:
<? phpinfo();?>

    将其保存为/usr/local/httpd/htdocs/info.php,启动Apache,然后在浏览器中浏览。如图-4 。

    图-4 php语言测试界面

     如果看到如图4的信息即表示php配置成功了。
三、在Apache上运行JSP

    1、 JSP简介

    JSP是Sun公司推出的新一代网站开发语言,Sun公司借助自己在Java上的不凡造诣,将Java从Java应用程序和Java Applet之外,又有新的硕果,就是JSP,Java Server Page。JSP可以在Serverlet和JavaBean的支持下,完成功能强大的站点程序。三者都提供在 HTML代码中混合某种程序代码、由语言引擎解释执行程序代码的能力。但JSP代码被编译成 Servlet并由Java虚拟机解释执行,这种编译操作仅在对JSP页面的第一次请求时发生。在ASP 、PHP、JSP环境下,HTML代码主要负责描述信息的显示样式,而程序代码则用来描述处理逻辑。普通的 HTML页面只依赖于Web服务器,而ASP 、PHP、JSP页面需要附加的语言引擎分析和执行程序代码。程序代码的执行结果被重新嵌入到HTML代码中,然后一起发送给浏览器。ASP 、PHP、JSP三者都是面向Web服务器的技术,客户端浏览器不需要任何附加的软件支持。

    2、 tomcat简介

    Tomcat是一个 HTTP 服务器,是 Sun 通过 Java Community Process 开发的、对广泛使用的 servlet 和 JavaServer Page(JSP)技术的正式参考实现。tomcat的目录结构如表1

    表1tomcat的目录结构如

    3 、安装JDK和tomcat

 JDK和Tomcat下载网址
    http://java.sun.com/javase/downloads/index.jsp
    http://tomcat.apache.org/
下载的软件包放在/usr/local/目录下。
&#61548; 安装JDK chmod +x jdk-1_5_0_07-linux-i586.bin ./jdk-1_5_0_07-linux-i586.bin ……安装过程从略 mv jdk1.5.0_07/ /usr/local/java &#61548; 设置JDK环境变量 vi /etc/profile 再文件尾部增加以下几句: JAVA_HOME=/usr/local/java JRE=$JAVA_HOME/jre LC_ALL=zh_CN.GBK PATH=$JAVA_HOME/bin:$JRE/bin:$PATH CLASSPATH=.:$JAVA_HOME/bin/tools.jar:$JAVA_HOME/lib/dt.jar export JAVA_HOME JRE LC_ALL CLASSPATH PATH &#61548; 查看Java环境变量 java -version java version "1.5.0_07" Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_07-b05) Java HotSpot(TM) Client VM (build 1.5.0_07-b05, mixed mode, sharing) &#61548; 安装tomcat tar xvfz jakarta-tomcat-5.0.25.tar.gz mv jakarta-tomcat-5.0.25 /usr/local/ ln –s /usr/local/jakarta-tomcat-5.0.25 /usr/local/tomcat 打开/usr/local/tomcat/bin/Catalina.sh 在上面注解的下方加入 JAVA_HOME=/usr/local/java/CATALINA_HOME=/usr/local/tomcat/ &#61548; 启动tomcat /usr/local/tomcat5/bin/startup.sh Using CATALINA_BASE: /usr/local/tomcat Using CATALINA_HOME: /usr/local/tomcat Using CATALINA_TMPDIR: /usr/local/tomcat/temp Using JRE_HOME: /usr/local/java &#61548; 查看tomcat端口 netstat -ntulp | grep java tcp 0 0 ::ffff:127.0.0.1:8005 :::* LISTEN 2669/java tcp 0 0 :::8009 :::* LISTEN 2669/java tcp 0 0 :::8080 :::* LISTEN 2669/java
 使用浏览器检查如图-5 。



    图-5 Tomact界面

 关闭Tomcat
/usr/local/tomcat5/bin/shutdown.sh Using CATALINA_BASE: /usr/local/tomcat Using CATALINA_HOME: /usr/local/tomcat Using CATALINA_TMPDIR: /usr/local/tomcat/temp Using JAVA_HOME: /usr/java/jdk1.5.0_04
    4、 整合Apache服务器和Tomcat服务器

    虽然tomcat也可以作web服务器,但其处理静态html的速度比不上apache,且其作为web服务器的功能远不如apache,因此我们想把apache和tomcat集成起来。apache和tomcat的连结器有几种,如表-2 。

    网络上有一些Apache 和tomcat整合的文章,感觉写的比较复杂。所以这里使用了一种最简单的方法(mod_jk2)实现php、jsp的整合。以下是详细步骤:

 下载jakarta-tomcat-connectors-jk2-src.tar.gz

Wget http://archive.apache.org/dist/jakarta/tomcat-connectors/jk2/jakarta-tomcat-connectors-jk2-src-current.tar.gz

&#61548; 安裝jk2 cd jakarta-tomcat-connectors-jk2/jk/native2 ./buildconf.sh ./configure --with-apxs2=/etc/apache/bin/apxsmake cp jk/build/jk2/apache2/mod_jk2.so /usr/local/apache/modules &#61548; 复制文件 cp /jakarta-tomcat-connectors-jk2-2.0.2-src/jk/conf/ workers2.properties /apache/conf/ &#61548; 修改配置文件workers2.properties vi /usr/local/apache/conf/workers2.properties 在最后加上指向tomcat/webapp/下的某个应用目录,例如 [uri:/jsp-examples/*] info=Map the whole webapp &#61548; 修改配置文件/usr/local/tomcat/conf/jk2.properties vi /usr/local/tomcat/conf/jk2.properties # list of needed handlers. handler.list=channelSocket,request # Override the default port for the channelSocket channelSocket.port=8009 &#61548; 重新设置环境变量 vi /etc/profile加入 export CATALINA_HOME=/usr/local/tomcat export CATALINA_BASE=/usr/local/tomcat
    5 、启动、关闭、测试apache 和tomcat
启动apache 和tomcat命令: /tomcat/bin/catalina.sh start /apache/bin/apachectl start 关闭apache 和tomcat命令: /tomcat/bin/catalina.sh stop /apache/bin/apachectl stop
    测试

    在一台和Linux 服务器相连的计算机(linux、windows都可以,下面使用的是windows)的浏览器输入http://192.168.1.12/jsp-examples/ 即可,如图-6 。


    图-6 JSP测试界面

    上面笔者使用的是自己的样例程序进行测试的,也可以自己编写新的项目。如果出现tomcat的jsp-examples/页面,则整合完成。tomcat作为一个servlet(jsp也被编译为servlet执行)容器,其应用前景是非常好的,如果与 jboss结合起来,则可以实现sun的j2ee规范(用jboss作ejb服务器)。
0
相关文章