1.安装并设置环境变量:
安装Apache2.2
安装Tomcat7.0
解压PHP5.2到c:\php5(最好路径不要有空格),在环境变量的系统变量Path后添加c:\php5;c:\php5\ext;
PHP下载: http://download.csdn.net/detail/zkdemon/4147878
设置操作系统中的HOSTS文件
2.设置配置文件:
(1)Apache配置:
打开Apache的conf目录下的httpd.conf文件
查找LoadModule,在后面添加:
LoadModule php5_module c:\php5\php5apache2_2.dll
查找DocumentRoot,将后面的第一个<Directory>块改为:
<Directory "c:/php5">
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Satisfy all
</Directory>
查找<IfModule alias_module>块,在后面添加:
ScriptAlias /php/ "c:/php5/"
查找<IfModule dir_module>块,修改为:
DirectoryIndex index.jsp index.php index.html index.htm
查找<IfModule mime_module>块,在后面添加:
AddType application/x-httpd-php .php
Action Application/x-httpd-php "c:/php5/php.exe"
(2)PHP配置:
将PHP目录下的php.ini-recommended文件复制一份到Apache的bin目录下并改名为php.ini,打开该php.ini文件
查找extension_dir,修改为:
extension_dir = "c:\php5\ext"
查找session.save_path,去掉;,修改为:
session.save_path = "c:\php5\session_temp"(需手动建立文件夹)
查找short_open_tag,修改为:
short_open_tag = On
将PHP目录下的libmysql.dll拷贝一份到Apache的bin目录下
(3)Tomcat配置:
打开Tomcat的conf目录下的server.xml文件
添加虚拟主机配置
<Host name="www.myproject.com" appBase="webapps" unpackWARs="true" autoDeploy="false" xmlValidation="false" xmlNamespaceAware="false">
<Context docBase="e:\workspace\project\www" path="" debug="0" reloadable="true"/>
</Host>
3.PHP模块设置
打开Apache的bin目录下的php.ini文件,把";extension=php_mysql.dll"前的";"去掉,加载mysql模块,保存关闭后重启Apache就可以了.
这里也可以选择其它要加载的模块,去掉前面的";",就表示要加载此模块了.
所有的模块文件都放在php解压缩目录的"ext"之下.
加载了模块后,就要指明模块的位置,否则重启Apache的时候会提示"找不到指定模块"的错误,这时在"系统变量"下找到"Path"变量,加入;c:\php5;c:\php5\ext重启电脑即可.
4.Apache虚拟主机配置
打开Apache的conf目录下的httpd.conf文件
查找#Include conf/extra/httpd-vhosts.conf,去掉注释.
查找LoadModule,打开下面几行的注释
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
打开Apache的conf目录下的extra目录下的httpd-vhosts.conf文件,加入
转向php的配置
<VirtualHost *:80>
<Directory "E:/workspace/uc">
Options -Indexes FollowSymLinks
Allow from all
AllowOverride All
</Directory>
ServerAdmin
[email protected]
DocumentRoot "E:/workspace/uc"
ServerName www.myuc.com
ServerAlias www.myuc.com
ErrorLog logs/www.myuc.com-error_log
php_admin_value open_basedir "E:\workspace\uc;C:\WINDOWS\Temp;"
</VirtualHost>
转向jsp的配置
<VirtualHost *:80>
DocumentRoot "E:/workspace/project"
ServerName www.myproject.com
ServerAlias www.myproject.com
DirectoryIndex index.jsp
ProxyPass / http://www.myproject.com:8080/
ProxyPassReverse / http://www.myproject.com:8080/
</VirtualHost>
5.Apache与Tomcat集群与负载均衡配置
(1)打开Apache的conf目录下的httpd.conf文件
在文件的最下面加入
ProxyRequests Off
<proxy balancer://cluster>
BalancerMember ajp://127.0.0.1:9001 loadfactor=1 route=jvm1
BalancerMember ajp://127.0.0.1:9002 loadfactor=1 route=jvm2
BalancerMember ajp://127.0.0.1:9003 loadfactor=1 route=jvm3
BalancerMember ajp://127.0.0.1:9004 loadfactor=1 route=jvm4
</proxy>
上面的四个BalancerMember成员是配置的Tomcat集群
打开Apache的conf目录下的extra目录下的httpd-vhosts.conf文件,加入
<VirtualHost *:80>
ServerAdmin
[email protected]
ServerName 127.0.0.1
ServerAlias 127.0.0.1
ProxyPass / balancer://cluster/ stickysession=jsessionid nofailover=On
ProxyPassReverse / balancer://cluster/
</VirtualHost>
其中的域名和路径根据情况设置,然后再设置Tomcat虚拟主机
(2)打开Tomcat的conf目录下的server.xml文件(以下修改集群中的所有Tomcat都需要操作一遍)
a.修改<Server port="8005" shutdown="SHUTDOWN">中的port值,集群中的Tomcat的该值都不一样.
b.修改<!-- <Engine name="Catalina" defaultHost="localhost"> -->,去掉注释同时
把name的值改为Standalone,加入属性jvmRoute值为apache的httpd.conf中<proxy>的route值,
集群中的Tomcat的该值都不一样(例如jvmRoute="jvm1").
c.修改<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />中的port值为
apache的httpd.conf中<proxy>的BalancerMember ajp://127.0.0.1:后的端口号,集群中的Tomcat
的该值都不一样(例如port="9001"),这里是Apache和Tomcat链接的关键,前台Apache就是通过AJP
协议与Tomcat进行通信以完成负载均衡的作用.
d.修改<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>为
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster" channelSendOptions="6">
<Manager className="org.apache.catalina.ha.session.BackupManager" expireSessionsOnShutdown="false" notifyListenersOnReplication="true" mapSendOptions="6"/>
<!--
<Manager className="org.apache.catalina.ha.session.DeltaManager" expireSessionsOnShutdown="false" notifyListenersOnReplication="true"/>
-->
<Channel className="org.apache.catalina.tribes.group.GroupChannel">
<Membership className="org.apache.catalina.tribes.membership.McastService" address="228.0.0.4" port="45564" frequency="500" dropTime="3000"/>
<Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver" address="auto" port="5001" selectorTimeout="100" maxThreads="6"/>
<Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter">
<Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/>
</Sender>
<Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>
<Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/>
<Interceptor className="org.apache.catalina.tribes.group.interceptors.ThroughputInterceptor"/>
</Channel>
<Valve className="org.apache.catalina.ha.tcp.ReplicationValve" filter=".*\.gif;.*\.js;.*\.jpg;.*\.png;.*\.htm;.*\.html;.*\.css;.*\.txt;"/>
<Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer" tempDir="/tmp/war-temp/" deployDir="/tmp/war-deploy/" watchDir="/tmp/war-listen/" watchEnabled="false"/>
<ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/>
</Cluster>
以上修改中<Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver" address="auto" port="5001" selectorTimeout="100" maxThreads="6"/>中的port值,集群中的Tomcat的该值都不一样,以上修改设置主要用以Tomcat的集群.