当前位置:Linux教程 - Linux - LinuxAid 网站配置实例<三>

LinuxAid 网站配置实例<三>

5.2.安装Web编程环境
安装jdk1.2.2
# cd /usr/local/src
# tar zxvf jdk1_2_2-linux-i386.tar.gz --directory=/usr/local/servers/
# cp mm.mysql-2.0.2-bin.jar /usr/local/servers/jdk1.2.2/lib

修改/etc/profile
添加:
CLASSPATH="/usr/local/servers/jdk1.2.2/lib/tools.jar:/usr/
local/servers/jdk1.2.2/lib/rt.jar:/usr/local/servers
/jdk1.2.2/lib/mm.mysql-2.0.2-bin.jar:."
JAVA_HOME=/usr/local/servers/jdk1.2.2
export CLASSPATH JAVA_HOME

修改PATH变量,在最后添加 /usr/local/servers/jdk1.2.2/bin,以下是我的系统的PATH变量值:

PATH="$PATH:/usr/local/X11R6/bin:/usr/local/servers/jdk1.2.2/bin"

存盘退出,并注销当前用户重新登录。
测试java是否安装正确
使用vi 在/tmp创建一个名为 Test.java 的文件,内容为:

public class Test{
public static void main(String args[]){
System.out.println("Hello, World!");
}
}

使用以下的命令进行编译和运行:

# cd /tmp
# javac Test.java
# java Test

如果程序显示"Hello,World!"这行字符则说明jdk环境已经成功建立,如果出现其它的提示信息,请您仔细检查安装步骤是否正确。测试完毕之后,请使用以下的命令将测试数据删除:
# rm /tmp/test.java
# rm /tmp/test.class

测试jdbc联接是否正确
使用 vi 在/tmp创建一个名为testjdbc.java的文件,内容为:

import java.sql.*;
public class testjdbc{
public static void main(String args[]){
try
{
Class.forName("org.gjt.mm.mysql.Driver");
System.out.println("OK! JDBC Driver For MySQL Loaded.");
try
{
Connection con=DriverManager.getConnection("jdbc:mysql://localhost/test?user=root&password=&useUnicode=true&characterEncoding=ISO8859_1");
System.out.println("OK!Connect to MySQL DBMS.");
}
catch(SQLException e)
{
System.out.println("Error! Error Code:#1. Can''t make connection
to Mysql Server.
"+e.getMessage());
}
}
catch (java.lang.ClassNotFoundException e)
{
System.out.println("Error! Error Code #2. Can''t Load jdbc Driver.
"+e.getMessage());
}
}
}

按照前面的步骤启动MySQL数据库服务器,然后使用以下的命令编译与运行testjdbc:
# cd /tmp
# javac testjdbc.java
# java testjdbc

查看输出的结果,如果是连续两个OK则说明JDBC安装的正确的。如果出现错误则根据以下的信息进行查错。

Error Code=#1 MySQL没有启动或者是用户名/密码错误
Error Code=#2 MySQL的JDBC驱动程序没有正确的安装或者是MySQL的权限设置处没有允许指定用户登录,仔细对照JAVA安装那一节重新检查JDBC驱动安装是否正确,同时检查MySQL的权限控制是否允许用户在本地登录。

至此,JAVA的运行环境及JDBC for MySQL的驱动程序都已经正确的安装完成,下一步我们将开始安装JSP的解释器Resin。

安装JSP解释器Resin
# cd /usr/local/servers/resin1.1.3
# ./configure --with-java-home=/usr/local/servers/jdk1.2.2
# --with-apxs=/usr/local/servers/apache/bin/apxs
# make
# make install
测试Resin安装结果
1、启动Resin

# cd /usr/local/servers/resin1.1.3/bin
# ./srun.sh start

如果显示的结果只有"start resin"同时使用 ps ax | grep "java" 可以得到类似于以下的结果则说明Resin已经在后台运行。

16842 pts/0 S 0:00 sh -c /usr/local/servers/jdk1.2.2/bin/java -Dresin.

如果出现其它的提示信息则可能是您的安装过程有误,请仔细检查。
2、查看Resin的运行状态
修改/usr/local/servers/apache/conf/httpd.conf,将其中的:

#<Location /caucho-status>
#SetHandler Caucho-status
#</Location>

前的#号全部去掉。并用 /etc/rc.d/init.d/httpd restart 重新启动 Apache。使用Netscape或者是Ie打开http://202.99.11.120/caucho-status,当页面完全打开后,查看顶端表格中的Host项应该为绿色的 localhost:6802,否则请检查您的Resin是否有启动,以及安装过程是否正确。
3、测试Resin是否正常运行
在浏览器中打入http://202.99.11.120/servlet/Env ,如果您的配置正确的话,应该可以看到关于服务器与客户端的环境变量。如果没有正确的显示出来,请检查您的JAVA、Rsein安装是否正确。

设置相关的参数
通过前面的工作,我们已经建立起一个非常基本的JSP/Servlet解释环境,但在实际应用时还需要进行一些参数的定制。下面我们就要开始修改Resin的参数使其可以根据我们的实际要求进行工作。
在进行设置前,建议您先给resin.conf做个备份,免得在修改出错之后无法正常的使用时没有办法恢复。使用vi修改/usr/local/servers/resin1.1.3/conf/resin.conf。
1、修改缺省文档根目录
搜索<app-dir>doc</app-dir>将其中的doc修改 Apache的配置文件 httpd.conf 中的DocumentRoot 参数指定的路径。缺省的情况下应该是 /usr/local/servers/apache/htdocs,则修改后的结果应该是:

<app-dir>/usr/local/servers/apache/htdocs</app-dir>

2、删除测试用参数
resin.conf包含一些测试时使用的参数,在实际应用中我们并不需要这些参数,所以要将其删掉。
将从:

<!--
- The following entries configuration the examples. You may safely
- delete anything from here down.
-->

起至

</host>
</http-server>
</caucho.com>

之间的参数全部删,要注意,</host>起是不可以删除的哦。删完无关的参数之后,在

</host>
</http-server>
</caucho.com>

前添加一行:

</web-app>

则修改之后的resin.conf应该为(为减少篇幅,我们将注释部分去掉了,主要内容应该是一样的):

<caucho.com>
<java compiler=''internal'' args=""/>
<dbpool.sql id="test"
driver="org.gjt.mm.mysql.Driver"
url="jdbc:mysql://localhost:3306/test"
user=""
password=""
max-connections=20/>
<jsp precompile=''true'' static-encoding=''true''/>
<http-server>
<app-dir>/usr/local/servers/apache/htdocs</app-dir>
<httpd-port>8080</httpd-port>
<srun host=''localhost'' port=''6802''/>
<caucho-status>true</caucho-status>
<class-update-interval id=''2''/>
<thread-min>5</thread-min>
<thread-max>20</thread-max>
<thread-keepalive id=10/>
<cache dir=''cache'' size=''1024'' entries=''1024''/>
<host id=''''>
<error-log id=''log/error.log''/>
<web-app id=''/''>
<classpath id=''WEB-INF/classes''
source=''WEB-INF/classes''
compile=''true''/>
<cache-mapping url-pattern=''/'' expires=''2s''/>
<welcome-file-list>index.xtp, index.jsp, index.html</welcome-file-list>
<servlet-mapping url-pattern=''/servlet/*'' servlet-name=''invoker''/>
<servlet-mapping url-pattern=''*.xtp''
servlet-name=''com.caucho.jsp.XtpServlet''/>
<servlet-mapping url-pattern=''*.jsp''
servlet-name=''com.caucho.jsp.JspServlet''/>
<session-config>
<session-max>4096</session-max>
<session-timeout>30</session-timeout>
<enable-cookies>true</enable-cookies>
<enable-url-rewriting>true</enable-url-rewriting>
<cookie-version>0</cookie-version>
</session-config>
</web-app>
</host>
</http-server>
</caucho.com>

修改完成之后存盘退出,使用以下的命令启动Resin,同时重新启动Apache。

# /usr/local/servers/resin1.1.3/bin/srun.sh start
# /etc/rc.d/init.d/httpd restart

这里要注意一点,必须启动Resin之后才可以重启Apache。如果启动Resin的过程中出现错误,请检查您修改resin.conf的过程是否正确。
重新启动完两个服务之后,我们再使用浏览器查看:http://202.99.11.120/caucho-status 其内容应该已经发生了改变。如果跟第一次测试时比较起来没有任何的改动,请检查您的修改过程是否正确。

测试Resin
通过前的步骤,我们已经成功的将Resin与Apache融合在一起,下面我们要对Resin进行一次完整的测试。测试的内容包括:JSP解释、Servlet解释、JDBC联接。
1、测试JSP解释器
使用vi在/usr/local/servers/apache/htdocs/创建一个名为test.jsp的文件,其内容包括:

<%
out.println("<H1>Hello, World!</H1>");
%>

存盘之后,使用浏览器查看 http://202.99.11.120/test.jsp 如果正确的话,可以看到"Hello, World!"字样。否则,请检查:Resin是否运行、Resin的参数修改是否正确、JAVA环境安装是否正确、Apche是否运行正常。
2、测试servlet解释器
使用以下的命令将Env.java 复制到Servlet目录:

# cp /usr/local/servers/resin1.1.3/doc/WEB-INF/classes/Env.java
# /usr/local/servers/apache/htdocs/WEB-INF/classes

然后使用浏览器查看 http://202.99.11.120/servlet/Env 如果正确的话,可以看到服务器端和客户端的环境参数。否则,请检查:Resin是否运行、Resin的参数修改是否正确、JAVA环境安装是否正确、Apache是否运行正常。
3、测试JSP与MySQL的JDBC联接
使用vi在/usr/local/servers/apache/htdocs/创建一个名为testjdbc.jsp的文件,其内容包括:

<%@ page import="java.sql.*" %>
<%
try
{
Class.forName("org.gjt.mm.mysql.Driver.<br>");
out.println("OK! JDBC Driver For MySQL Loaded.");
try
{
Connection con=DriverManager.getConnection("jdbc:mysql://localhost/test?user=root&password=&useUnicode=true&characterEncoding=ISO8859_1");
out.println("OK!Connect to MySQL DBMS.");
}
catch(SQLException e)
{
out.println("Error! Error Code:#1. Can''t make connection to Mysql
Server.
"+e.getMessage());
}
}
catch (java.lang.ClassNotFoundException e)
{
out.println("Error! Error Code #2. Can''t Load jdbc Driver.
"+e.getMessage());
}
%>

使用浏览器查看 http://202.99.11.120/testjdbc.jsp 应该得到以下的结果:

OK!JDBC Driver For MySQL Loaded.
OK! Connect to MySQL DBMS.

如果出现错误,则请您检查:Resin是否运行、Resin的参数修改是否正确、JAVA环境安装是否正确、Apache是否运行正常。MySQL的权限设置是否允许root以无口令方式登录。
最后经过前面的步骤,我们已经成功的建立起了JSP/Servlet的编程环境。并且通过mm.mysql与MySQL成功的联接起来。

5.3.安装PHP编程环境
下载软件包
从http://www.php.net 下载tar zxvf php-4.0.2.tar.gz。
下载的软件包放置于/usr/local/src。
解压缩软件包
# cd /usr/local/src
# tar zxvf php-4.0.2.tar.gz
编译并安装PHP
# cd /usr/local/src/php-4.0.2
# ./configure --with-mysql=/usr/local/servers/mysql
--with-apxs=/usr/local/servers/apache/bin/apxs
--enable-track-vars
--enable-sockets
--enable-ftp
# make
# make install
更新动态链接表
因为php的解释模块需要使用到MySQL的动态链接库,而我们又将MySQL安装在非标准的目录下,我们就需要使用ldconfig配置工具配置动态链接库表,方法如下:
使用vi打开/etc/ld.so.conf,在其中添加一行:

/usr/local/servers/mysql/lib/mysql

然后在命令行执行此命令:

# ldconfig
修改Apache配置
使用vi打开httpd.conf搜索:

AddType application/x-httpd-php

将:

#AddType application/x-httpd-php .php
#AddType application/x-httpd-php-source .phps

前的#号去掉,同时如果您想Apache对PHP3也进行解释,可以添加一行:

AddType application/x-httpd-php .php3

则修改之后的httpd.conf部分为:

AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
AddType application/x-httpd-php .php3

重新启动Apache以使修改生效

# /etc/rc.d/init.d/httpd restart
测试PHP
1、一般测试
使用vi在/usr/local/servers/apache/htdocs创建一个名为test.php的文件,内容包括:

<?
phpinfo();
?>

使用浏览器查看http://202.99.11.120/test.php,如果操作正确的话可以看到PHP运行的环境参数。如果出现错误,则请检查:Apache是否运行、参数修改是否正确。
2、数据联接测试
使用vi在/usr/local/servers/apache/htdocs创建一个名为testdb.php的文件,内容包括:

<?
$connect=@mysql_connect(''localhost'',''root'','''') or die ("Error! Unable connect to database
server.");
echo "$connect<br>";
?>

如果显示的结果是:
1
则说明与MySQL连接是正确的,如果出现:
Error! Unable connect to database server.
则有可以是以下的情况:
MySQL没有启动
连接时所使用的用户名和密码错误
3、通过以上的操作PHP已经基本完成。