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