Linux+Apache+JSP+PHP+MySQL

一、安装LINUX

我在这里介绍FTP的安装方式,以这种方式安装,要比从cdrom安装要快一些,也不会出

现在安装过程出现不能读光盘而无法继续安装。①先在一台windows系统上安装Serv_U类似的

FTP服务器软件,然后指定用户目录,并且允许匿名访问;然后把RedHat 9的三张光盘按光盘的

根目录拷贝文件和文件夹到这个用户目录,在拷贝第二和第三张光盘是会提示目录里有相同的

文件夹或文件,问是否覆盖,回答yes即可。拷贝完成后启用这个FTP服务器,在浏览器里输入

ftp://FTP 的IP地址,例如: <ftp://192.168.100.100>,来验证FTP服务器配置的正确性。②把光盘

放在要安装系统的服务器的光驱中,让系统从光盘引导,片刻进入linux安装向导界面。这时输

入命令行linux askmethod然后回车,下一步….指定本服务器的IP地址(要与ftp服务器在同一个

网段)和默认网关,到系统提示选择安装方式的时候,选中ftp方式,然后需要指定ftp服务器的

IP地址和RedHat 9的存放目录,正确无误后,安装往下进行,后面的步骤跟用光盘安装差不多。

建议在安装时少安装一些套件(但建议把mysql安装好),比如httpd不要安装,安装完后从网上下

载新的版本来使用。花一段时间以后,系统安装完成。

二、下载所需的软件,把下面这些软件下载到某台windows系统的机器里

1、httpd-2.0.54.tar.gz //apache服务器

2、php4.3.11.tar.gz //php解释器

3、j2sdk-1.4.2-01-linux-i586-rpm.bin //java运行环境

4、Jakarta-tomcat-5.0.28.tar.gz //jsp解释器

5、Fedora-Core-1-i386.tar.gz //apache 与tomcat 的连接程序, 一般的方法是用

jakarta-tomcat-connectors-jk2-src-current.tar.gz,但是这个过程十分麻烦,还需依赖另外好

几个包,所以建议使用这个文件.

三、上传下载软件到服务器

在上面的windows 机器上安装ssh客户端软件,我用的是SecureCRT4.1.5注册版。用这个软

件来远程控制linux服务器,非常方便。启动软件secureCRT,创建一个会话,输入要连接控制的

linux服务器的ip地址,填写用户名为root,输入linux 服务器的root密码,片刻就可以连接到linux

服务器,然后就像在linux 本机上操作一样。在linux上创建目录/tmp/upload用来接收从windows

机器上传来的文件。用命令#mkdir /tmp/upload 来创建目录,然后转到这个目录#cd

/tmp/upload ,再使用secureCRT自带的上传工具传输文件到linux服务器的/tmp/upload.上传文件:

点击SecureCRT的菜单项“Transfer” “Zmodem upload list…”,而后出现选择要传送文件的对话

框,按”Ctrl”键可以选择多个文件,这一步完成后,点击SecureCRT的菜单项“Transfer” ”start

zmodem upload”,花几分钟就可以把选定的文件

secureCrt 远程控制linux 服务器创建目录/tmp/upload 示意图

传送到linux的目录/tmp/upload.在/tmp/upload 用命令#ls -al 验证文件是否被正确地上传.

我上传了httpd-2.0.54.tar.gz , php4.3.11.tar.gz , j2sdk-1.4.2-01-linux-i586-rpm.bin ,

Jakarta-tomcat-5.0.28.tar.gz ,Fedora-Core-1-i386.tar.gz这五个文件。

四、安装和配置

在配置过程中,可能要对某些配置文件多次进行修改,如apache的配置文件httpd.conf。为

了使描述更加符合逻辑,我在这里采取先安装完所有软件,然后再一次性配置的方法来进行。

(一)安装

①安装jdk:在当前目录(/tmp/upload)执行命令

#./ j2sdk-1.4.2-01-linux-i586-rpm.bin , 输入yes 后在当前目录生成文件

j2sdk-1.4.2-01-linux-i586-rpm。执行命令#rpm -ivh j2sdk-1.4.2-01-linux-i586-rpm,完成后jdk就会

被安装在目录/usr/java/j2sdk1.4.2.

②安装tomcat:在当前目录对文件解压,用命令#tar -zxvf Jakarta-tomcat-5.0.28.tar.gz,解

压完成后生成目录Jakarta-tomcat-5.0.28,然后把这个目录移动到目录/usr/local ,用命令

#mv /tmp/upload/Jakarta-tomcat-5.0.28 /usr/local ,安装tomcat就算完成了。

③安装apache:在当前目录(/tmp/upload)解压httpd-2.0.54.tar.gz,使用命令

#tar -zxvf httpd-2.0.54.tar.gz ,解压完后转到目录/tmp/upload/httpd-2.0.54,使用命令

#cd httpd-2.0.54 来进行; 执行命令#./configure -prefix=/usr/local/apache

-enable-module=most -enable-shared=max (注意prefix、enable前是两“-”),一段时间后,

如果没有抱错信息出现,那么可以继续执行命令#make ;和#make install来完成apache的安

装。

④安装php:回到目录/tmp/upload , #cd ..(因为刚才转到目录httpd-2.0.54),解压

文件php-4.3.11.tar.gz, #tar -zxvf php-4.3.11.tar.gz , 解压完成后转到目录php-4.3.11, #cd

php-4.3.11,执行命令#./configure -prefix=/usr/local/php -with-apxs2=/usr/local/apache/bin/apxs,

完成后执行命令#make 和#make install 完成php的安装。这些过程完成后,会在目录

php-4.3.11 生成文件php.ini-dist 文件, 需要把这个文件复制到#cp php.ini-dist

/usr/local/lib/php.ini 。

⑤解压Fedora-Core-1-i386.tar.gz:需要用解压后这个目录里的两个文件。#tar -zxvf

Fedora-Core-1-i386.tar.gz.

安装所用命令汇总(假定当前目录为/tmp/upload)

#./ j2sdk-1.4.2-01-linux-i586-rpm.bin #rpm -ivh j2sdk-1.4.2-01-linux-i586-rpm

#tar -zxvf Jakarta-tomcat-5.0.28.tar.gz //解压文件#cd Jakarta-tomcat-5.0.28 #

mv /tmp/upload/Jakarta-tomcat-5.0.28 /usr/local

#cd .. #tar -zxvf httpd-2.0.54.tar.gz //解压文件#cd httpd-2.0.54

#./configure --prefix=/usr/local/apache --enable-module=most

--enable-shared=max #make //编译#make install //安装

#cp php.ini-dist /usr/local/lib/php.ini //拷贝文件#cd ..

#tar -zxvf Fedora-Core-1-i386.tar.gz #cp

Fedora-Core-1-i386/usr/lib/httpd/modules/*.so /usr/local/apache/modules //把模块

加入到apache里#cp Fedora-Core-1-i386/etc/httpd/conf/workers. properties

/usr/local/apache/conf //这个文件是tomcat与apache协同工作的脚本,稍后需要对它

进行修改

# tar -zxvf php-4.3.11.tar.gz //解压文件#./configure --prefix=/usr/local/php

--with-apxs2=/usr/local/apache/bin/apxs //正常//完成后会在/usr/local/apache/modules

里生成文件libphp4.so,并且会在//apache的配置文件httpd.conf里加上一行

LoadModule php4_module //modules/libphp4.so #make //编译#make

install //安装

五、配置

①配置jdk : 修改环境变量文件/etc/profile ,只需在原文件的后面加上以下几行即可。

export JAVA_HOME=/usr/java/j2sdk1.4.2 export CLASSPATH=/usr/java/j2sdk1.4.2/lib

用命令#vi /etc/profile.

修改环境变量示意图

保存文件,用命令#source /etc/profile 使修改马上生效。用命令#java -version 检验配

置的正确性。

②配置tomcat:这个过程比较复杂,要分几步进行。

A 修改文件web.xml. #vi /usr/local/Jakarta-tomcat/conf/web.xml ,把web.xml文件中的如

下部分:

<!--

<servlet>

<servlet-name>invoker</servlet-name>

<servlet-class>

org.apache.catalina.servlets.InvokerServlet

</servlet-class>

<init-param>

<param-name>debug</param-name>

<param-value>0</param-value>

</init-param>

<load-on-startup>2</load-on-startup>

</servlet>

-->

和 <!--

<servlet-mapping>

<servlet-name>invoker</servlet-name>

<url-pattern>/servlet/*</url-pattern>

</servlet-mapping>

-->

两部分的注释去掉即可(就是把<!-- --> 去掉)。做这一步的原因是,tomcat 4.1.12

以后的版本的servlet 调用器开关在默认状态下是关闭的。

B 修改文件jk2.properties。#vi /usr/local/tomcat/conf/jk2.properties

## THIS FILE MAY BE OVERRIDEN AT RUNTIME. MAKE SURE TOMCAT IS STOPED

## WHEN YOU EDIT THE FILE.

## COMMENTS WILL BE _LOST_

## DOCUMENTATION OF THE FORMAT IN JkMain javadoc.

# Set the desired handler list

handler.list=apr,request //去掉了前面的注释符号#

# Override the default port for the socketChannel

channelSocket.port=8009 //去掉了前面的注释符号#

# Default:

# channelUnix.file=${jkHome}/work/jk2.socket

# Just to check if the the config is working

shm.file=/usr/local/apache/logs/jk2.shm //手动添加的

# In order to enable jni use any channelJni directive

# channelJni.disabled = 0

# And one of the following directives:

# apr.jniModeSo=/opt/apache2/modules/mod_jk2.so

# If set to inprocess the mod_jk2 will Register natives itself

# This will enable the starting of the Tomcat from mod_jk2

# apr.jniModeSo=inprocess

在这里可以先验证一下tomcat 是否可以正常工作。启动tomcat #sh

/usr/local/jakarta-tomcat-5.0.28/bin/startup.sh , 正常情况会输出tomcat 和jdk的目录。

Tomcat 启动输出示意图

然后再在windows 的计算机的浏览器里输入linux 服务器的ip 地址和端口号, 形如:

<http://192.168.0.100:8080> ,如果没有意外,则可出现那只可爱的小猫。

③配置apache:因为php和jsp都要整合在apache里(可以把apache想象成一个容器),这一步

的配置过程也是很复杂的。配置前可以先验证一下apache,看它是否可以正常工作。与tomcat

相试,只是不用输端口号而已,形如<http://192.168.0.100> ,如果出现apache 的测试web页面,

表明一切正常。

A 对文件workers2.properties的修改。其目的是让tomcat与apache系统工作。使用命令#vi

/usr/local/apache/conf/workers2.properties 编辑文件如下所示

[shm]

info=Scoreboard. Requried for reconfiguration and status with multiprocess servers.

file=/usr/local/apache/logs/shm.file //这行是改动过的

size=1048576 //手动添加的

# Defines a load balancer named lb. Use even if you only have one machine.

[lb:lb]

# Example socket channel, override port and host.

[channel.socket:localhost:8009]

port=8009

host=127.0.0.1

# define the worker

[ajp13:localhost:8009]

channel=channel.socket:localhost:8009

group=lb

# Map the Tomcat examples webapp to the Web server uri space

[uri:/*.jsp] //jsp脚本交给tomcat 解释器完成,其它的由apache处理, 如果不是这//样,

就会出现/usr/local/Jakarta-tomcat/webapps/ROOT里的php脚本//不能被正

确解析。感谢张炜宇在这个问题上的大力帮助。

[uri:/servlet/*]

[uri:/*.do]

worker=ajp13:localhost:8009 //手动添加的

group=lb

[status:]

info=Status worker, displays runtime information

[uri:/jkstatus/*]

worker=ajp13:localhost:8009 //手动添加的

info=The Tomcat /jkstatus handler

group=status:

B 修改apache 的配置文件/etc/httpd/conf/httpd.conf. #vi

/usr/local/apache/conf/httpd.conf ,

LoadModule jk2_module modules/mod_jk2.so //jk2以apache 的模块方式运行

DirectoryRoot “/usr/local/Jakarta-tomcat-5.0.28/webapps/ROOT” //默认的//

为”/var/www/html” TypeAdd application /x-httpd-php .php3 //让

apache 能解释php脚//本,注意.php3 前面有空格

六、测试

自己搞几个*.php和*.jsp文件拷贝到目录,然后分别启动apache和tomcat .

#sh /usr/local/apache/bin/apachectl start //启动apache (可惜不是直升机) #sh

/usr/local/Jakarta-tomcat/bin/startup.sh //启动tomcat

在任意计算机的浏览器地址栏输入linux 的ip 地址, 形如http://192.168.0.100/index.jsp ,

http://192.168.0.100/index.php ,如果能正常的在浏览器里显示,恭喜了!!!