一、Apache+php+mysql配置
1、安装包:
apache_2.2.14-win32-x86-openssl-0.9.8k.msi
php-5.2.11-Win32.zip(路径不要用空格)
mysql-essential-5.1.37-win32.msi
2、配置PHP
使用php.ini-recommended,将其备份后改名为php.ini,用文本编辑器将其打开。首先查找extension_dir,它用于指定PHP扩展dll的位置,根据注释可以将On windows下的那一行改成:
extension_dir = "D:\soft_env\PHP\ext"
然后查找doc_root,它用于指定Web服务器的根路径, 将其改成:
#根据实际情况来定
doc_root = "D:\soft_env\Apache2.2\htdocs";
之后选择运行一些PHP必须的扩展,查找extension,将下面几个extension前的注释分号去掉。
extension=php_gd2.dll
extension=php_imap.dll
extension=php_mysql.dll; #使用MySQL必需
extension=php_mysqli.dll; #使用MySQL必需
3.配置Apache
打开httpd.conf文件,配置加载php模块。
# 载入php模块
LoadModule php5_module D:/soft_env/PHP/php5apache2_2.dll
# 指定php.ini的路径
PHPIniDir "D:/soft_env/PHP"
# 允许php语法在.php文件中使用
AddType application/x-httpd-php .php
# 允许php语法在.html文件中使用
AddType application/x-httpd-php .html
如果需要改变Web根路径,可以查找DocumentRoot,将相关行修改:
DocumentRoot "D:/soft_env/Apache2.2/htdocs"
<Directory "D:/soft_env/Apache2.2/htdocs">
DirectoryIndex,此处用于指定url为一目录时默认载入文件的顺序,通常为index.html, default.html等等,针对php可以采用如下的设置:
DirectoryIndex index.php index.html default.php default.html
注意文件名的中间用空格隔开。
可以测试PHP是否正常工作了,在Web根路径(默认为Apache安装目录的htdocs)下新建一个test.php文件,添加以下一行内容
<?php phpinfo(); ?>
二、Apache + Tomcat + Jk 配置
Apache HTTP服务器本身没有提供Servlet/JSP容器。因此,在实际应用中,把Tomcat与Apache集成,可以建立具有实用价值的商业化的Web平台。整合 Apache Http Server 和 Tomcat 可以提升对静态文件的处理性能、利用 Web 服务器来做负载均衡以及容错、无缝的升级应用程序。
1、安装包
apache_2.2.14-win32-x86-openssl-0.9.8k.msi
apache-tomcat-6.0.20.zip
mod_jk-1.2.28-httpd-2.2.3.so
mod_jk下载,下载后,重命名为 mod_jk.so,放入apache httpd 的 modules目录下。
2、配置Apache HTTP Server2.2
打开其配置文件 httpd.conf,加入载入模块的配置。
#建议将其加在 mod_rewrite的前面
LoadModule jk_module modules/mod_jk.so
在配置文件的末端加入:
JkWorkersFile conf/workers.properties
JkLogFile logs/mod_jk.log
# Set the jk log level [debug/error/info]
JkLogLevel info
# Select the log format
JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"
# JkOptions indicate to send SSL KEY SIZE,
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
# JkRequestLogFormat set the request format
JkRequestLogFormat "%w %V %T"
在conf目录下新建workers.properties,包含以下内容:
# Define 1 ajp13 worker
worker.list=worker1
# Set properties for worker1 (ajp13)
worker.worker1.type=ajp13
worker.worker1.host=127.0.0.1
worker.worker1.port=8009
worker.worker1.lbfactor=50
worker.worker1.socket_keepalive=1
worker.worker1.socket_timeout=300
把某些路径映射到Tomcat服务器去处理。
在httpd.conf中加入:
JkMount /* worker1
这时候,当你访问 http://localhost就相当于访问 http://localhost:8080
3、使用vhost
修改httpd.conf,加载相应模块。
LoadModule vhost_alias_module modules/mod_vhost_alias.so
将以下这句的注释取消。
# Virtual hostsInclude conf/extra/httpd-vhosts.conf
打开conf/extra/httpd-vhost.conf,加入以下内容。
<VirtualHost core.test.net:80>
ServerAdmin lazing@test.net
ServerName core.test.net
JkMount /* worker1
</VirtualHost>
完成后,当输入 http://localhost/ 时,访问httpd原来的资源,输入 http://core.test.net/ 时,相当于访问http://localhost:8080/ (修改了hosts文件)。
4.关于AJP(Apache Jserv Protocol)协议
AJP是为Tomcat与HTTP服务器之间通信而定制的协议,能提供较高的通信速度和效率。AJP13是定向包协议。因为性能原因,使用二进制格式来传输可读性文本。WEB服务器通过TCP连接和SERVLET容器连接。为了减少进程生成socket的花费,WEB服务器和SERVLET容器之间尝试保持持久性的TCP连接,对多个请求/回复循环重用一个连接。一旦连接分配给一个特定的请求,在请求处理循环结束之前不会在分配。换句话说,在连接上,请求不是多元的。这个是连接两端的编码变得容易,虽然这导致在一时刻会有很多连接。
一旦WEB服务器打开了一个到SERVLET容器的连接,连接处于下面的状态:
◆ 空闲
这个连接上没有处理的请求。
◆ 已分派
连接正在处理特定的请求。
一旦一个连接被分配给一个特定的请求,在连接上发送的基本请求信息是高度压缩的。在这点,SERVLET容器大概准备开始处理请求,当它处理的时候,它能发回下面的信息给WEB服务器:
◆ SEND_HEADERS
发送一组头到浏览器。
◆ SEND_BODY_CHUNK
发送一块主体数据到浏览器。
◆ GET_BODY_CHUNK
从请求获得下一个数据如果还没有全部传输完,如果请求内容的包长度非常大或者长度不确定,这是非常必要的。例如上载文件。注意这和HTTP的块传输没有关联。
◆ END_RESPONSE
结束请求处理循环。
5.关于JK插件
Tomcat提供了专门的JK插件来负责Tomcat和HTTP服务器的通信。应该把JK插件安置在对方的HTTP服务器上。当HTTP服务器接收到客户请求时,它会通过JK插件来过滤URL,JK插件根据预先配置好的URL映射信息,决定是否要把客户请求转发给Tomcat服务器处理。
假定在预先配置好的URL映射信息中,所有"/*.jsp"形式的URL都由Tomcat服务器来处理,那么在请求index.jsp例子中,JK插件将把客户请求转发给Tomcat服务器,Tomcat服务器于是运行index.jsp,然后把响应结果传给HTTP服务器,HTTP服务器再把响应结果传给Web客户。
对于不同的HTTP服务器,Tomcat提供了不同的JK插件的实现模块。
在实际应用中,假如网站的访问量非常大,为了提高访问速度,可以将多个Tomcat服务器与Apache集成,让它们共同分担运行Servlet/JSP组件的任务。 JK插件的loadbalancer(负载平衡器)负责根据在workers.properties文件中预先配置的lbfactor(负载平衡因数)为这些Tomcat服务器分配工作负荷,实现负载平衡。
6、属性说明
(1)workers.properties文件的属性
- workers.tomcat_home: 指定tomcat的根目录。
- workers.java_home: 指定JKD根目录。
- worker.list: tomcat服务器工作名单。
- worker.worker1.port: tomcat服务器使用的JK端口。
- worker.worker1.host: tomcat服务器IP。
- worker.worker1.type: tomcat服务器与apache之间的通信协议。
- worker.worker1.lbfactor: 负载平衡因数(load balance factor),只有在使用了负载平衡器(loadBalancer)的情况下,才有意义。
(2)JK插件的相关属性
- LoadModule: 指定加载的JK插件。
- JkWorkersFile: 指定JK插件的工作文件。
- JkLogFile: 指定JK所使用的日志文件。
- JkLogLeveldebug: 指定日志级别(debug/info/error)。
- JkMount: 指定JK插件所处理的URL映射信息。
(3)负载平衡器配置
worker.list=loadbalancer
#Define the LB worker
worker.loadbalancer.type=lb
worker.loadbalancer.balanced_workers=worker1,worker2
worker.loadbalancer.local_worker_only=1
worker.loadbalancer.sticky_session=true
worker.loadbalancer.sticky_session_force=true
注:以上定义了两个worker,一个为worker1,另一个为worker2,定义了一个负载平衡服务器loadbalancer,其中标蓝色的为重点配置项,相关的详细说明可以看官方的网站文档:http://tomcat.apache.org/connectors-doc/
worker.list=loadbalancer
设定工作的负载平衡器,各Tomcat节点不能加入此列表。
worker.worker1.lbfactor
负载平衡的权重比,如果此权重比越大,则分配到此节点的请求越多,如以上两个节点的权重比为1:1,则为平均分配。
worker.loadbalancer.balance_workers=worker1,worker2
指定此负载平衡器负责的Tomcat应用节点。
worker.loadbalancer.sticky_session=true
此处指定集群是否需要会话复制,如果设为true,则表明为会话粘性,不进行会话复制,当某用户的请求第一次分发到哪台Tomcat后,后继的请求会一直分发到此Tomcat服务器上处理;如果设为false,则表明需求会话复制。
worker.loadbalancer.sticky_session_force=true
如果上面的sticky_session设为true时,建议此处也设为true,此参数表明如果集群中某台Tomcat服务器在多次请求没有响应后,是否将当前的请求,转发到其它Tomcat服务器上处理;此参数在sticky_session=true时,影响比较大,会导致转发到其它Tomcat服务器上的请求,找不到原来的session,所以如果此时请求中有读取session中某些信息的话,就会导致应用的null异常。
参考:
1.Apache HTTP Server与Tomcat的三种配置方式
2.JK 文档
3.Tomcat开发技术之与HTTP服务器的集成
4. Linux下配置Tomcat群集
分享到:
相关推荐
以下是对Apache FtpServer配置的详细解读。 **一、安装与启动** 在开始配置Apache FtpServer之前,你需要先下载并安装它。这通常涉及到以下几个步骤: 1. 下载Apache FtpServer的最新版本。 2. 解压缩下载的文件到...
在了解Apache James Server 3的配置之前,我们需要首先了解它的一些核心概念和组件。 **Mailbox Persistence(邮箱持久化)**: Mailbox指的是用户的收件箱、已发送邮件和垃圾邮件文件夹。邮箱的持久化配置默认使用...
- `httpd.conf`是Apache HTTP Server的主要配置文件,位于安装目录的`conf`子目录下。这个文件定义了服务器的基本设置,如监听端口、根目录、日志文件位置等。例如,`Listen 80`设置服务器监听80端口,`...
【标题】:“Windows下Apache配置Mono” 在Windows操作系统中配置Apache服务器以运行Mono是一个常见的需求,这主要适用于那些希望在Windows环境下使用ASP.NET或其他.NET框架应用程序的开发者。Apache与Mono的结合...
在本例中,我们看到的是jk2.0.4-win32-apache2.0.49版本,这是针对Apache 2.0.49的一个版本,用于在Windows环境下运行。mod_jk通过使用Apache的URL重写功能,将HTTP请求透明地转发到Tomcat实例,从而使得Apache可以...
压缩包中的"Win64 VC14"可能是针对Windows 64位平台编译的二进制版本,使用Visual Studio 2015(VC14)进行构建,确保了在Windows环境下良好的兼容性和性能。“ReadMe.txt”通常包含安装和配置的指南,对于初学者...
Apache HTTP Server Version 2.2 是一款广泛应用的开源Web服务器,其稳定性和灵活性使其成为互联网上许多网站的基础。这份文档提供了关于Apache 2.2版本的详细信息,旨在帮助管理员、开发者和用户更好地理解和配置这...
配置 Apache 服务器需要编辑 Apache 的配置文件,可以通过“开始”、“所有程序”、“Apache HTTP Server 2.0.55”、“Configure Apache Server”、“Edit the Apache httpd conf Configuration file”打开配置文件...
### Windows 下 Apache+FastCGI+PHP 的安装与配置详解 #### 一、概述 本文主要介绍了在 Windows 系统环境下如何安装与配置 Apache、FastCGI 和 PHP,使之能够协同工作并支持 PHP 应用程序的运行。通过本文的学习,...
1. **下载Apache**: 首先访问Apache官网或第三方下载站点,找到适合Windows系统的Apache HTTP Server版本,例如Apache2.2或Apache2.4。 2. **解压安装**: 下载完成后,解压到你希望安装的目录,例如C:\Apache24。 3....
### Windows 下 Apache 配置二级域名详解 #### 一、前言 在互联网时代,网站建设和维护成为企业和个人展示自己、提供服务的重要手段之一。在众多服务器软件中,Apache因其稳定性高、配置灵活等特点被广泛使用。...
在Windows环境下,Apache HTTP Server是广泛应用的开源Web服务器软件,其稳定性和灵活性使其成为开发者和网站管理员的首选。本文将详细讲解如何在Windows系统上安装并配置Apache,以供参考。 1. **下载Apache** ...
在Windows环境下配置Apache服务器以支持SSL(Secure Sockets Layer)是一项关键任务,它能确保网站数据传输的安全性,特别是对于涉及用户隐私信息的网站。SSL是互联网上的一种标准安全协议,用于加密通信并验证...
然后,下载Apache服务器,从Apache HTTP Server官网下载适合Windows系统的版本。安装Apache时,按照默认设置即可,完成后通过访问`http://localhost`或`http://127.0.0.1`检查是否成功安装。 接下来是配置Apache。...
在本文中,我们将深入探讨如何安装和配置Apache FTPServer,以及它的一些核心特性。 首先,让我们了解FTP(File Transfer Protocol)的基本概念。FTP是一种应用层协议,用于在互联网上进行文件传输。它允许用户从...
本指南将详细介绍如何在Windows环境下配置Apache与Subversion,以便通过Web方式访问版本控制系统。 **所需软件:** - Apache Web Server (推荐版本:Apache 2.x) - Subversion (推荐版本:最新稳定版) **安装路径...
本指南将详细介绍如何在Windows环境下配置Subversion与Apache服务器的集成,以实现高效、安全的代码版本管理。 ### 1. 安装Apache服务器 首先,我们需要下载并安装Apache HTTP Server。访问Apache官方网站...
1. **安装与配置**:包括如何在不同的操作系统(如Windows、Linux、macOS等)上安装Apache,以及配置服务器的基本步骤,例如编辑httpd.conf配置文件以设置监听端口、指定网站根目录等。 2. **模块管理**:Apache以...
### Apache在Windows下的安装与配置详解 #### 一、前言 随着Web技术的发展,Apache作为全球使用最广泛的Web服务器之一,在Windows环境下的部署也变得越来越常见。本文将详细介绍如何在Windows系统上安装并配置...