Apache、tomcat整合以及Discuz论坛安装和配置

  |   0 评论   |   1,719 浏览

Apachetomcat整合以及Discuz论坛安装和配置

 

一、安装准备(所有用到的软件都已经放在文件夹“相关文件”中了) 1

二、安装Apache 1

三、php的安装、以module方式,将php与apache结合使服务器支持php服务器脚本程序 4

四、安装MYSQL 7

五、安装 Zend Optimizer 7

六、phpMyAdmin 8

七、论坛的安装 8

八.安装tomcat 9

一、安装准备(所有用到的软件都已经放在文件夹“相关文件”中了)

 

Discuz!5.5.0SC_UTF8.zip

apache2.2.4-win32-x86-nossl.msi

 

php-5.2.3-Win32.zip

 

ZendOptimizer-3.2.8-Windows-i386.exe

 

phpMyAdmin-2.11.0-rc1-all-languages-utf-8-only.zip

 

mysql-4.1.15-win32Setup.exe与MySQL-Front_Setup.exe

 

mod_jk-apache-2.2.4.so

 

jakarta-tomcat-5.0.28.exe

 

二、安装Apache

 

运行apache2.2.4-win32-x86-nossl.msi,出现Apache HTTP Server 2.2.4的安装向导界面, 点“Next”继续,确认同意软件安装使用许可条例,选择“I accept the terms in the license agreement”

“Next”继续,将Apache安装到Windows上的使用须知,请阅读完毕后,按“Next”继续,设置系统信息,在Network Domain下填入您的域名(比如:goodwaiter.com),在Server Name下填入您的服务器名称(比如:www.goodwaiter.com,也就是主机名加上域名),在Administrator’s Email Address下填入系统管理员的联系电子邮件地址(比如:yinpeng@xinhuanet.com),上述三条信息仅供参考,其中联系电子邮件地址会在当系统故障时提供给访问者,三条信息均可任意填写,无效的也行。(但是必须要填写,本人在安装的时候就没有填写,结果安装通过了但是不能启动服务器,重装后亦如此,但是安装过程会报俩次错,报错中文大意是指133行的语法错误,

# ServerAdmin: Your address, where problems with the server should be

# e-mailed.  This address appears on some server-generated pages, such

# as error documents.  e.g. admin@your-domain.com

ServerAdmin

 

标记那行ServerAdmin后,半角空格加一个邮件地址,发现没有填写邮件地址,随便写了一个正确的合法地址,服务器就启动了)。

下面有两个选择,图片上选择的是为系统所有用户安装,使用默认的80端口,并作为系统服务自动启动;另外一个是仅为当前用户安装,使用端口8080,手动启动。一般选择如图所示。按“Next”继续。选择安装类型,Typical为默认安装,Custom为用户自定义安装,我们这里选择Custom,有更多可选项。按“Next”继续出现选择安装选项界面,如图所示,左键点选“Apache HTTP Server 2.0.55”,选择“This feature, and all subfeatures, will be installed on local hard drive.”,即此部分,及下属子部分内容,全部安装在本地硬盘。点选“Change…”,手动指定安装目录。返回刚才的界面,选“Next”继续。

确认安装选项无误,如果您认为要再检查一遍,可以点“Back”一步步返回检查。点“Install”开始按前面设定的安装选项安装。正在安装界面,请耐心等待,装完后点finish完成

安装向导成功完成,这时右下角状态栏应该出现了下面的这个绿色图标,表示Apache服务已经开始运行,按“Finish”结束Apache的软件安装,在图标上左键单击,出现如下界面,有“Start(启动)“Stop(停止)“Restart(重启动)三个选项,可以很方便的对安装的Apache服务器进行上述操作。现在测试一下按默认配置运行的网站界面,在IE地址栏打“http://localhost”,点转到,就可以看到Its Work!,表示Apache服务器已安装成功。(这里有可能也会访问不成功,因为端口冲突的缘故,不用着急,下面会讲到端口设置),现在开始配置Apache服务器,如图所示,开始所有程序“Apache HTTP Server 2.2.4”“Configure Apache Server”“Edit the Apache httpd conf Configuration file”,点击打开。(其实就在Apache安装目录下conf\httpd.conf 文件)每次配置文件的改变,保存后,必须在 Apache服务器重启动后生效,可以用前面讲的小图标方便的控制服务器随时重启动

首先修改端口,如果安装时配置的端口与以前的冲突,那么在上面所列的配置文件中查找“80”,把“80”全部替换为“8088”(因为虽然端口在配置文件中有具体设置的位置,但另外有两处“80”不知道是什么的,怕也影响运行,就索性都改了)

httpd.conf查找关键字“DocumentRoot”(也就是网站根目录),找到如下图所示地方,然后将" "内的地址改成你的网站根目录,应该注意的是一般文件地址的“\”Apache里要改成“/” 我的地址是:DocumentRoot “D:/sily/ekengclient/webroot”

。。。。。。

# DocumentRoot: The directory out of which you will serve your

# documents. By default, all requests are taken from this directory, but

# symbolic links and aliases may be used to point to other locations.

DocumentRoot " "

 

# Each directory to which Apache has access can be configured with respect

# to which services and features are allowed and/or disabled in that

# directory (and its subdirectories).

# First, we configure the “default” to be a very restrictive set of

# features.

查找“<DIRECTORY”,将""内的地址改成跟DOCUMENTROOT的一样。

# This should be changed to whatever you set DocumentRoot to.

<Directory " ">

# Possible values for the Options directive are “None”, “All”,

# or any combination of:

#   Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews

# Note that “MultiViews” must be named explicitly — “Options All”

# doesn’t give it to you.

# The Options directive is both complicated and important.  Please see

http://httpd.apache.org/docs/2.2/mod/core.html#options

# for more information.

搜索“DirectoryIndex(目录索引,也就是在仅指定目录的情况下,默认显示的文件名),可以添加很多,系统会根据从左至右的顺序来优先显示,以单个半角空格隔开,比如有些网站的首页是index.htm,就在光标那里加上“index.htm ”文件名是任意的,不一定非得“index.html”,比如“test.php”等,都可以。

# DirectoryIndex: sets the file that Apache will serve if a directory

# is requested.

<IfModule dir_module>

DirectoryIndex index.php index.html index.html.var

</IfModule>

这里有一个选择配置选项,以前可能要配置,这个版本修正过来了,不用配置了,就是强制所有输出文件的语言编码,html文件里有语言标记(,这个就是设定文档语言为gb2312)的也会强制转换。如果打开的网页出现乱码,请先检查网页内有没有上述 html语言标记,如果没有,添加上去就能正常显示了。把“# DefaultLanguage nl”前面的“# ”去掉,把“nl”改成你要强制输出的语言,中文是“zh-cn”,保存,关闭。(注:这里我没有找到设置,以后根据实际情况配置)

Apache配置就到此结束,现在利用先前的小图标或者开始菜单中的相应图标重启动测试一下。

 

三、php的安装、以module方式,将phpapache结合使服务器支持php服务器脚本程序

将下载的php安装文件php-5.2.3-Win32.zip右键解压缩。指定解压缩的位置,我的设定在“D:\php”。

查看解压缩后的文件夹内容,找到“php.ini-dist”文件,将其重命名为“php.ini”,打开编辑,找到下面图中的地方,有一个“registerglobals = Off”值,这个值是用来打开全局变量的,比如表单送过来的值,如果这个值设为“Off”,就只能用“$POST[‘变量名’]、$_GET[’变量名 ’]”等来取得送过来的值,如果设为“On”,就可以直接使用“$变量名”来获取送过来的值,当然,设为“Off”就比较安全,不会让人轻易将网页间传送的数据截取。这个值是否改成“On”就看具体需要,这里我没有改,也没有出问题。

这里还有一个地方要编辑,功能就是使php能够直接调用其它模块,比如访问mysql,如下图所示,查找“extension=”,选择要加载的模块,去掉前面的 “;”,就表示要加载此模块了,加载的越多,占用的资源也就多一点,不过也多不到哪去,比如我要用mysql,就要把“;extension= php_mysql.dll”前的“;”去掉。所有的模块文件都放在php解压缩目录的“ext”之下,我这里的截图是把所有能加载的模块都加载上去了,前面的“;”没去掉的,是因为“ext”目录下默认没有此模块,加载会提示找不到文件而出错。这里只是参考,一般不需要加载这么多,需要的加载上就可以了,编辑好后保存,关闭。我把这个去掉了。

如果上一步加载了其它模块,就要指明模块的位置,否则重启Apache的时候会提示找不到指定模块的错误,这里介绍一种最简单的方法,直接将php安装路径、里面的ext路径指定到windows系统路径中——我的电脑上右键,属性,选择高级标签,点选环境变量,在系统变量下找到“Path”变量,选择,双击或点击编辑,将“;D:\php;D:\php\ext”加到原有值的后面,当然,其中的“D:\php” 是我的安装目录,你要将它改为自己的php安装目录,如下图所示,全部确定。系统路径添加好后要重启电脑才能生效(对与windows系统不需要,其他系统需要重启),可以现在重启,也可以在所有软件安装或配置好后重启。

在根目录下,将 php.ini-dist 复制一份放到 C:\WINNT( Windows XP/2003 下为 C:\Windows )内,改名为 php.ini,然后用记事本打开,利用记事本的查找功能搜索 extensiondir = “./”,并将其路径指到你的 PHP 目录下的 extensions 目录,比如:extensiondir = “C:\PHP\ext”(这里面根据版本不同,4.0以上的版本应该是extension_dir = "C:\PHP\ extensions ",上面的是5.0系列的版本的)

把 C:\PHP\php4ts.dll 和 C:\PHP\dlls 目录下的所有文件复制粘贴到 C:\WINNT\system32</span>( Windows 2003 XP下为 C:\Windows\system32 )内(这个是4.0系列的版本的,在5.0系列中没有PHP\dlls这个目录了,所以我参照了集成安装的discuzphp5embed.lib、php5apache22.dll、php5apache22filter.dll、php5apache2.dll 、php5apache2filter.dl、l libmysql.dll联同php5ts.dll放到了指定的文件夹里,不知道是不是起作用了,但运行成功)。libmysql.dll必须要有,其他的有没有用不知道,我不用这个是不行的。

现在开始将phpmodule方式与Apache相结合,使php融入Apache,打开Apache的配置文件查找到“LoadModule sslmodule modules/modssl.so”这里,在下面添加红色所示选中的两行,第一行LoadModule php5module “D:/php/php5apache22.dll”(注意这里,路径两边应该加“”,下面的PHPIniDir也是一样)是指以module方式加载php,第二行“PHPIniDir “D:/php””是指明php的配置文件php.ini的位置,是当然,其中的“D:/php”要改成你先前选择的php解压缩的目录。

#LoadModule unique_idmodule modules/modunique_id.so

LoadModule userdirmodule modules/moduserdir.so

#LoadModule usertrackmodule modules/modusertrack.so

#LoadModule vhost_aliasmodule modules/modvhost_alias.so

#LoadModule sslmodule modules/modssl.so

LoadModule php5module “D:/php/php5apache22.dll”

PHPIniDir “D:/php”

还是Apache的配置文件,在“AddType application/x-gzip .gz .tgz”下面加入“AddType application/x-httpd-php .php”、“AddType application/x-httpd-php .html”两行,你也可以加入更多,实质就是添加可以执行php的文件类型,比如你再加上一行“AddType application/x-httpd-php .htm”,则.htm文件也可以执行php程序了 .红色标记上为添加后的代码。

……………

# If the AddEncoding directives above are commented-out, then you

# probably should define those extensions to indicate media types:

AddType application/x-compress .Z

AddType application/x-gzip .gz .tgz

AddType application/x-httpd-php .php

AddType application/x-httpd-php .html

前面所说的目录默认索引文件也可以改一下,因为现在加了php,有些文件就直接存为.php了,我们也可以把“index.php”设为默认索引文件,优先顺序就自己排了,我的是放在第一位。编辑完成,保存,关闭。

现在,php的安装,与Apache的结合已经全部完成, 新建一个phpinfo.php,内容如下:

<?php

phpinfo();

?>

打开浏览器,输入:http://localhost/phpinfo.php(具体对应自己的设置),将显示当前服务器所支持 PHP 的全部信息,可以看到 Server API 的模式为:Apache2 handler

四、安装MYSQL

略,与Apachephp相结合,前面已提过,这里再说一下,在php安装目录下,找到先前重命名并编辑过的 php.ini,把“;extension=php_mysql.dll”前的“;”去掉,加载mysql模块。保存,关闭后,重启apache就可以了。(如果想让论坛连接数据库成功,千万别忘了前面说的把php.ini放到WINDOWS目录下,把另外的对应文件放到WINDOWS\System32目录下)

五、安装 Zend Optimizer

直接双击安装即可,安装过程要你选择 Web Server 时,选择 Apache 2.*,然后提示你是否 Restart Web Server,选择是,完成安装之前提示是否备份 php.ini,点确定后安装完成,中间有些选项找到相应的目录就行了。Zend Optimizer 的安装向导会自动根据你的选择来修改 php.ini 帮助你启动这个引擎。

以下为安装完成后 php.ini 里的默认配置代码:

[Zend]

zendoptimizer.optimizationlevel=15

;优化程度,这里定义启动多少个优化过程,默认值是 15,表示同时开启 10 个优化过程中的 1-4,我们可以将这个值改为 1023,表示开启全部10个优化过程。

 

zendextensionts=“C:\Zend\lib\ZendExtensionManager.dll”

;Zend Optimizer 模块在硬盘上的安装路径。

 

zendextensionmanager.optimizer_ts=“C:\Zend\lib\Optimizer-2.5.5”

;优化器所在目录,默认无须修改。

 

(注:这一段可以到php.ini文件中查找然后相应修改,我安装的时候头一项没有,我也没添加,运行也成功,后两项就根据自己的具体安装目录修改吧,我一点都没有改,后面俩项应该是之前选好了路径)以下是我装完后生成的代码(注:只有在WINDOWS\SYSTEM32下的那个页面才会边,PHP下的那个修改文件名后的php.ini是没有改变的, 不过没有关系, 能运行就行了。)

[Zend]

zendextensionmanager.optimizer_ts=“d:\Program Files\Zend\ZendOptimizer-3.2.6\lib\Optimizer-3.2.6”

zendextensionts=“d:\Program Files\Zend\ZendOptimizer-3.2.6\lib\ZendExtensionManager.dll”

 

 

六、phpMyAdmin

phpMyAdmin-2.11.0-rc1-all-languages-utf-8-only.zip 解压完放到和discuz同级的发布目录下就可以用了,不知道做什么用的, 照着文档实现的。

 

七、论坛的安装

论坛文件解压后,把其中的upload文件夹或者upload文件夹的内容,拷贝到Apache配置文件中关键字“DocumentRoot”对应的路径下,即Apache默认的访问路径(这里要是考upload文件夹,充其量就是访问论坛的时候多了一层upload)。可以改变文件夹upload的名字。

1.配置数据库信息

使用编辑器打开您本地机器上的默认配置文件(config.inc.php(这个在论坛文件的根路径下,应该已经在Apache默认的访问路径中了),看到以下的内容:数据库服务器

数据库用户名 数据库密码  据库名 修改一下, 其他的随便自己想不想改都行。

 

 

$dbhost = ‘localhost’;       // database server

// 数据库服务器

 

$dbuser = ‘dbuser’;    // database username

// 数据库用户名

 

$dbpw = ‘dbpw’;    // database password

// 数据库密码

 

$dbname = ‘discuz’; // database name

// 数据库名

 

$adminemail = ‘admin@your.com’; // admin email

// 论坛系统 Email

 

$dbreport = 0; // send db error report? 1=yes

// 是否发送数据库错误报告? 0=, 1=

 

2执行安装脚本

 

在浏览器中运行 install.php,即访问 http://域名/论坛目录/install.php。

安装脚本会检查服务器系统环境、剩余空间、数据库环境,并具备一定的纠错功能。如果在之前某一步骤操作有问题,通常安装脚本会发现并作以提示,根据提示再对安装过程进行检查。如果没有提示出问题,按照其中的说明,完成最后的安装。

最后一点——管理员登录:默认的用户名和密码都是admin。直接在用户登录上用管理员帐号登录,会像普通用户一样的登录,但会多一个系统管理选项,进入系统管理就可以对论坛操作了。

八.安装tomcat

安装tomcat到d:\Program Files\Apache Software Foundation(我的安装路径)下。设置端口号为8080,然后输入http://localhost:8080如果出现tomcat的欢迎页面表示tomcat安装成功。这里就不详细的讲了。

把你刚才下载的mod_jk-apache-2.2.4.so 放到apache的主目录下的modules下。然后打开主目录的conf目录。新建立一个文件workers.properties。然后用记事本打开编辑以下语句:

workers.tomcat_home=d:\Program Files\Apache Software Foundation\Tomcat 5.0

workers.javahome= d:\Program Files\Java\jdk1.5.004

ps=\

worker.list=worker1

worker.ajp13.host=localhost

worker.ajp13.port=8009

worker.ajp13.type=ajp13

worker.worker1.lbfactor=1

第一行:就是tomcat的主目录

第二行:jdk的主目录

第三行意思是路径分隔符号是""

下面四句如果是不用均衡的话照写(很抱歉这里的原理我不是很清楚,这个问题困扰了本人很长时间,但是不必纠缠细节,继续往下做最后也会成功的)

然后保存 。

打开conf目录下面的httpd.conf文件

查找“LoadModule sslmodule modules/modssl.so”在下面添加红色标记的内容

LoadModule proxy_ftpmodule modules/modproxy_ftp.so

LoadModule negotiationmodule modules/modnegotiation.so

#LoadModule rewritemodule modules/modrewrite.so

LoadModule setenvifmodule modules/modsetenvif.so

#LoadModule spelingmodule modules/modspeling.so

#LoadModule statusmodule modules/modstatus.so

#LoadModule unique_idmodule modules/modunique_id.so

LoadModule userdirmodule modules/moduserdir.so

#LoadModule usertrackmodule modules/modusertrack.so

#LoadModule vhost_aliasmodule modules/modvhost_alias.so

#LoadModule sslmodule modules/modssl.so

LoadModule jkmodule modules/modjk-apache-2.2.4.so

JkWorkersFile “conf\workers.properties”

JkLogFile “logs\mod.log”

JkLogLevel debug

JkMount /*.jsp worker1

JkMount /*.do worker1
第一句是告诉你刚才下载的连接器的位置。
第二句是刚才写的workers.properties文件地址。

第三句是操作日志存放的地址,可以查看每一次操作后的记录。一旦配置出现问题时可以参考当中的内容进行调试。
最后一句是你要让tomcat来处理哪些文件。以上例子中所要处理的文件为.jsp和.do文件。tomcat和apache整合时,一般情况下用tomcat进行处理的都是.do、.jsp、servlet等一些动态页面或文件,而用apache进行处理的都是.php、.html等静态页面。
tomcat上的配置:

tomcat上的配置:

找到tomcat根目录下的conf目录,打开其中的server.xml文件,查找有<Host…>和</Host>字样的那一段代码。刚刚安装了tomcat以后<Host>尖括号的内容应该是这样的:

<Host name=“localhost” debug=“0” appBase=“webapps”

unpackWARs=“true” autoDeploy=“true”

xmlValidation=“false” xmlNamespaceAware=“false”>

其中划线部分为tomcat的访问路径,默认为webapps,即tomcat根目录下webapps目录中的ROOT目录,刚才所说的输入http://localhost:8080出现tomcat的欢迎页面,就是这个目录下的index.jsp文件。一般情况下,我们需要把所设计的项目部署到server.xml文件中,项目文件的存放路径可能会不同,所以appBase属性要做相应的修改。这里仅作测试用,所以划线部分要修改为apache目录中httpd.conf当中的DocumentRoot的那个路径,即:

<Host name=“localhost” debug=“0” appBase=" D:/sily/ekengclient/webroot "

unpackWARs=“true” autoDeploy=“true”

xmlValidation=“false” xmlNamespaceAware=“false”>

这样就与apache的访问路径一致。

其实apache默认的访问路径为apache根目录下的htdocs目录,刚才所说的输入http://localhost出现It works!页面,就是这个目录下的index.html文件。只不过是将httpd.conf当中的DocumentRoot的那个路径由默认的改成了现有的F:/workspace/test/webroot。

测试整合是否成功:

 

在上面的这个路径下新建一个test.jsp文件,并编辑这个文件。然后启动浏览器,在地址栏先输入http://localhost:8080/test.jsp,按回车,再输入http://localhost/test.jsp,按回车。若两次访问的页面相同,并且都是刚才所建立的test.jsp文件的话,那么祝贺你,tomcat和apache整合成功!
注意事项:我测试的时候tomcat的占用的端口为8080,apache的占用端口是80,访问的地址是用80端口,也就是apache的端口。如果tomcat占用的80,apache端口不能重,只能用其他的,访问的时候必须要选择apache修改后的端口, 如果不改,就会造成服务器启动报端口占用异常。

注:参照了其他人的文档以及网上的很多资料,自己详细记录了容易出问题的地方。如果有什么其他的问题,欢迎提出来一起学习。Email:jishijun204@163.com

作者 :吉仕军

 

 

评论

发表评论

validate