1 前言
最近有个需要我的团队开发一个BBS,当然我们不会自己去开发,因为现在成熟的BBS比比皆是,就拿Discuz来说好了,应该是目前国内比较的好的版本了吧。大家可以打开http://www.discuz.net/这个网址来访问他们的论坛,现在成熟的论坛当然是PHP的,网站上有很多的资源可以下来,比如搭建的用户手册啦,都写的非常的不错,那我为什么还要写这个文档呢,因为我发现没有基于apache下面的用户手册,因为我们已经给用户开发了一套系统是基于J2EE的,运行在Tomcat下面,当然Tomcat无法支持PHP,所以我一定要把这个论坛部署apache下面,这样能形成apache+tomcat+j2ee+php的环境即能支持java相关web技术的访问,又能支持php的web访问,这个就是我的目的。然后我就查阅了相关的资料来搭建这个环境,中间遇到了非常多的问题,提出来跟大家说,希望能给大家一点点的帮助,能给一些自己想动手搭建apache下面论坛的朋友一点帮助,写的不好的地方往见谅,好了废话不说了,我们现在就开始。
2 前期准备
在搭建BBS之前所需要准备的软件:
(1) PHP
官方下载的网址:http://snaps.php.net/win32/php5.2-win32-200808060430.zip
(2) Mysql
官方下载的网址:http://dev.mysql.com/downloads/
或者百度去搜索mysql,我这里给出了华军的下载:http://www.onlinedown.net/soft/3573.htm
(3) Jdk和tomcat
这里先不写了,因为我这里搭建论坛,至于想整合的人,应该这2个都有。
Tomcat下载地址:http://apache.mirror.phpchina.co ... e-tomcat-6.0.16.zip
Jdk下载地址:http://cds.sun.com/is-bin/INTERS ... -windows-i586-p.exe
(4) Apache
官方下载的网址:
华军的下载:http://www.onlinedown.net/soft/11528.htm
(5) Discuz! 6.1.0_UC1.0.0 整合安装包【20080725】
下载的网址:http://download.comsenz.com/Discuz/6.1.0/Discuz610_UC100_GBK.zip
直接下载这个Discuz和UCenter Home合在一起的,装起来特别的方便。
(6) UCenter Home 使用手册正式发布
下载的网址:http://dz.s18.mydiscuz.com/doc/UCenter_Home_usersguide.zip
强烈建议先看这个用户手册。
系统约定
环境软件下载后存放位置:X:/Server_Tools
环境软件安装位置:X:/Server_Core
PHP安装位置:X:/Server_Core/PHP
MySQL安装位置:X:/Server_Core/MySQL
Apache网站站点根目录:X:/wwwroot
MySQL 数据库位置:X:/Database
Apache安装位置:X:/ Server_Core/apache
这个可以跟用户手册上一样。
3 安装
3.1 安装apache
安装成功,且已运行,在IE中输入http://localhost/可以看到
apache的主页。安装成功!
接下来就需要配置httpd.conf文件, apache的配置文件是httpd.conf,位于apache根目录的下的conf文件夹下
(1).修改默认网站根目录:
在X:/下建立文件夹wwwroot,以此作为网站的根目录
DocumentRoot "X:/ Server_Core /Apache Group/Apache2/htdocs"
改为DocumentRoot "X:/wwwroot"
注意:Apache修改DocumentRoot后访问页面出现403错误,解决办法如下:
修改Apache配置文件httpd.conf中的:
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Satisfy all
</Directory>
为
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
# Deny from all
Satisfy all
</Directory>
即删除Deny from all行
(2).修改默认主页
当访问目录时,apache会自动导入的主页,优先级以先后顺序为准
把DirectoryIndex index.html改为
DirectoryIndex index.html index.jsp index.php default.jsp default.php index.html.var
(3). 让 Apache 解析 php 页面
用你喜欢的文本编辑器打开httpd.conf文件,让我们加几行进去,这样我们Apache 就可以解析.php 和.phps文件了。我们需要注意conf文件的两个部分,第一部分是 Dynamic Shared Object (DSO) Support list,第二部分是 cgi-bin directory
首先让我们找到如下所示的 DSO 列表.
# Dynamic Shared Object (DSO) Support
#
# to be able to use the functionality of a module which was built as a DSO you
# have to place corresponding `LoadModule' lines at this location so the
# directives contained in it are actually available _before_ they are used.
# Statically compiled modules (those listed by `httpd -l') do not need
# to be loaded here.
#
# Example:
# LoadModule foo_module modules/mod_foo.so
这还有许多,一直找到最后一行:
#LoadModule ssl_module modules/mod_ssl.so
上面一行是该列表的最后一行,按回车产生一个空的行,在这个空行内加入下面这行:
LoadModule php5_module X:/Server_Core/PHP / php5apache2_2.dll
注意:这里是根据你自己apache和php的版本来确认的,如果你是PHP4设置就不一样了,有可能是:
LoadModule php4_module X:/Server_Core /php/sapi/php4apache2.dll
在关闭conf文件之前,我们需要再加入两行。找到CGI-BIN目录,为了节省时间,可以这样找:按CTRL+F,(译者注:如果你是在记事本而不是写字板里编辑这个文本,那么,应该用快捷键F3)查找 <Directory "C:/Apache2/cgi-bin"> ,在第二个</Directory>后面两次回车,以便加入下面两行:
AddType application/x-httpd-php .php .phtml .php3 .php4
AddType application/x-httpd-php-source .phps
添加好后,保存你的conf文件,并重新启动你的apache服务器,如果不能启动apache,这个时候要查看哪里设置错误了。
3.2 安装PHP
(1) 解压缩下载的 php-5.2.4-Win32.zip 文件,并将其复制到:X:/Server_Core/PHP ;
(2) 进入 X:/Server_Core/PHP 文件夹,将 php.ini-dist 重命名为 php.ini ;
(3) 打开 php.ini 文件,找到:extension_dir = "./"
将其改为;
extension_dir = "X:/Server_Core/PHP/ext"
(4) 找到:Windows Extensions
在 Windows Extensions 下方的动态模块配置中,需要打开以下模块支持:(去掉模块配置每行前面的;号即可)
extension=php_mbstring.dll
extension=php_gd2.dll
extension=php_mysql.dll
(5) 找到:
disable_functions =
改为:
disable_functions = phpinfo,passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server
(6) 保存 php.ini 文件,并将其复制到 C:/Windows/
以上是用户手册的配置方法,可以按照如上的方法配置PHP,没有问题,但是中间我们会有一些东西需要更改进行校验,避免后期部署产生问题。
在第(5)步
disable_functions =phpinfo,passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server
去掉红色部分的字,这个是PHP的一个函数,官方的把这个函数给禁用了,造成函数不能运行,先把“phpinfo”先去掉,可以让我们测试PHP的环境有没有部署好。
现在就开始测试我们的PHP环境部署好了没有?
打开apache,在X:/wwwroot建立phpinfo.php,编辑输入如下内容
<?php
phpinfo();
?>
保存。
重新启动apache
在IE中输入http://localhost/phpinfo.php ,如果出现php的环境变量,说明php,安装成功一半,为什么说一半呢,因为有可能你的机器以前装过php,可能配置文件的读取是不正确的。
现在就让我们校对下相关的配置正确不?
现在特别要注意:红色框框出现的php.ini是C:/Windows/,如果不是就需要你注意了,这个时候需要删除其他路径下面的配置文件,然后重新启动apache。
如果这个成功了以后,这样PHP就完全的成功了,这个时候可以把这个phpinfo的函数重新加入disable_functions中去了。
现在php也配置好了,现在就开始部署工程吧。
3.3 安装MYSQL
Mysql的安装完全按照用户手册上的内容进行安装就ok了,不过有些机器因为环境的问题可能相关mysql的动态链接库dll需要进行更改。
(4) 准备 LibMySQL 动态链接库
将 X:/Server_Core/MySQL/bin/libmySQL.dll 文件复制到 C:/Windows/System32 。
在安装手册是拷贝了mysql的安装目录的libmySQL.dll到system32下面,在后期安装BBS验证数据库的时候就会不通过,
重要:需要复制php目录下的libmysql.dll文件到system32下。
3.4 安装Discuz论坛
(1) X:/wwwroot/下面建立bbs目录
(2) 讲下载好的Discuz610_UC100_GBK.zip打开,
然后把upload下面所有文件拷贝到你的X:/wwwroot/bbs/下面。
(3) 重新启动apache。
(4) 完毕后,在浏览器中运行安装程序(http://localhost/install)进入准备安装页面,如下图所示:
(5) 验证数据库安装
有些安装不能通过,需要留意下3.3安装mysql这个地方。
恭喜你成功安装了BBS了,这个时候你就可以享受自己的成果了。
由于apache已经占了机器的80端口,如果你原先需要有Tomcat在80端口上跑的就麻烦了,这个时候就需要往下看了,这个时候我们需要整合apache和Tomcat了。
3.5 整合Tomcat和apache
整合,需要下载JK-1.2.26-httpd-2.2.4
下载地址:http://www.apache.org/dist/tomca ... 2.26-httpd-2.2.4.so
注意JK的版本一定要与Apache版本相同。如果你的版本与我的不同,可以去官网下载,有多种版本,适用于各种操作系统,下载适用的既可,地址:
http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/
(1)配置Tomcat
查找Tomcat目录下的 conf/server.xml文件,在<host></host>中间加入以下语句以修改其默认的目录:
<Context path="" docBase="X:/wwwroot" reloadable="true" crossContext="true"/>
在这里,如果 path 不为空,则设置的是虚拟目录,path 的值为虚拟目录名。Docbase表示你现在工程的目录,工程的目录要在X:/wwwroot下面。
查找Tomcat目录下的 conf/workers.properties文件,并对比下方文本内容,如有不同处,以下方文本为准进行修改。
workers.tomcat_home=D:/Program Files/Tomcat #让mod_jk模块知道Tomcat的位置
workers.java_home=D:/Program Files/Java/jre1.6.0_07 #让mod_jk模块知道jre的位置
ps=/
worker.list=ajp13 #模块版本
worker.ajp13.port=8009 #工作端口,若没占用则不用修改
worker.ajp13.host=localhost #本机,若上面的Apache主机不为localhost,作相应修改
worker.ajp13.type=ajp13 #类型
worker.ajp13.lbfactor=1 #代理数,不用修改
如果此文件不存在,则依以上内容创建。对Tomcat的设置进行任何修改后都要重启才可以生效。
(2)配置Apache
打开D:/Program Files/Apache2.2/conf下的httpd.conf,在最后加入下面这段代码并保存。
LoadModule jk_module modules/mod_jk-1.2.26-httpd-2.2.4.so
#此处mod_jk的文件为你下载的文件
JkWorkersFile "D:/Program Files/Tomcat/conf/workers.properties"
#指定tomcat监听配置文件地址
JkLogFile "D:/Program Files/Tomcat/logs/mod_jk2.log"
#指定日志存放位置
JkLogLevel info
JkMount /servlet/* ajp13
#让Apache支持对servlet传送,用以Tomcat解析
JkMount /*.jsp ajp13
#让Apache支持对jsp传送,用以Tomcat解析
JkMount /*.do ajp13
#让Apache支持对.do传送,用以Tomcat解析
注意:以上语句的基本意思是:
loadModule一行:加载mod_jk.dll动态链接库模块,使之与tomcat通讯
jkWorkersFile:指明工作时tomcat相关文件workers.properties位置
jkMount:两行指明当遇到*.jsp和servlet时,交由ajp13协议,继而转发给tomcat处理。
(3)设置tomcat监听端口,找到下面的内容:
<Connector className="org.apache.coyote.tomcat4.CoyoteConnector"
port="8080" minProcessors="5" maxProcessors="75"
enableLookups="true" redirectPort="8443"
acceptCount="100" debug="0" connectionTimeout="0"
useURIValidationHack="false" disableUploadTimeout="true" />
默认的端口是8080,但这个大家都知道,最好修改一下,假设修改为:8123,则如下:
<Connector className="org.apache.coyote.tomcat4.CoyoteConnector"
port="8123" minProcessors="5" maxProcessors="75"
enableLookups="true" redirectPort="8443"
acceptCount="100" debug="0" connectionTimeout="0"
useURIValidationHack="false" disableUploadTimeout="true" />
3.找到以下8009端口的地方,这个很重要,通过8009,tomcat与apache互相通讯,如果下面的部分
被<!---->注释掉,一定要把<!---->去掉.
<!-- Define a Coyote/JK2 AJP 1.3 Connector on port 8009 -->
<Connector className="org.apache.coyote.tomcat4.CoyoteConnector"
port="8009" minProcessors="5" maxProcessors="75"
enableLookups="true" redirectPort="8443"
acceptCount="10" debug="0" connectionTimeout="0"
useURIValidationHack="false"
protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler"/>
(4)配置httpd.conf文件
这种方法把tomcat和apache的根目录设置为同一目录,但是必须限制客户对目录下一些文件的访问,比如存入class
的web-inf,在httpd.conf下添加以下代码:
#deny the access to WEB-INF
<Directory ~ "/WEB-INF/">
Order allow,deny
Deny from all
</Directory>
这样,当试图记问http://localhost/web-inf/时,apache将会拒绝.
到此为至,tomcat和apache的整合就完成啦.重新启动tomcat和apache,
把jsp网页放到X:/wwwroot/下,例如:
<html>
<h1>JSP test<hr>
<%out.println("Hello World!");%>
</html>
存为index.jsp,在IE中输入http://localhost:8123/index.jsp
如果出现了
Hello World!
刚说明tomcat运行正常,在IE中输入http://localhost/index.jsp,如果也出现
Hello World!
恭喜你!整合成功啦,你在jsp漫长艰辛的道路上迈出了一大步~!