Windows+Apache+PHP+Tomcat集成安装配置

1.安装并设置环境变量:
  安装Apache2.2
  安装Tomcat7.0

  解压PHP5.2到c:\php5(最好路径不要有空格),在环境变量的系统变量Path后添加c:\php5;c:\php5\ext;

  设置操作系统中的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的集群.
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章