Apache、tomcat整合以及Discuz论坛安装和配置
- 一、安装准备(所有用到的软件都已经放在文件夹“相关文件”中了)
- 二、安装Apache
- 三、php的安装、以module方式,将php与apache结合使服务器支持php服务器脚本程序
- 四、安装MYSQL
- 五、安装 Zend Optimizer
- 六、phpMyAdmin
- 七、论坛的安装
- 八.安装tomcat
Apache、tomcat整合以及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”,点“转到”,就可以看到“It’s 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方式,将php与apache结合使服务器支持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这个目录了,所以我参照了集成安装的discuz把php5embed.lib、php5apache22.dll、php5apache22filter.dll、php5apache2.dll 、php5apache2filter.dl、l libmysql.dll联同php5ts.dll放到了指定的文件夹里,不知道是不是起作用了,但运行成功)。libmysql.dll必须要有,其他的有没有用不知道,我不用这个是不行的。
现在开始将php以module方式与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
略,与Apache及php相结合,前面已提过,这里再说一下,在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
作者 :吉仕军