当前位置:首页 » 编程软件 » windowsapache编译

windowsapache编译

发布时间: 2022-12-12 17:03:08

⑴ Apache可移植运行库apr在windows下怎么编译

如果是开发者则使用此选项,--with-included-apr利于连接apache的代码或者是调试apache,其消除了由于版本或者编译中跟APR或者APR-util代码产生的不匹配; 如果从子版本编译apache,要先运行buildconf(需要Python,GNU autoconf和libtool)

⑵ 在windows下如何给apache打升级补丁

Apache是什么:
Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩充,将Perl/Python等解释器编译到服务器中。
其它比较着名的服务器:
lighttpd 读 lighty 德国
negix [ engine x ] 俄罗斯 高并发是一个高性能的 HTTP 和 反向代理 服务器
方法/步骤
Apache下载:
在网络搜索 Apache下载,进入官网下载地址

打开ApacheHaus之后你会发现这里有许多的windows版的Apache版本
这里简单的介绍一下:x86代表32位,x64代表64位。根据自己安装的系统选择
关于vc9与vc11,这里的选择要跟php对应才能稳定的运行。(按照PHP官方提供的资源来看,PHP 5.5以后的版本官方只提供了VC11版本的产品程序,PHP5.3/5.4版还有VC9版本的产品程序)

注意建立好自己的文件存放方式,方便以后管理
下载完毕后解压,将解压的 Apache24文件夹复制到自己的项目目录里面。你的项目根目录为E:/wamp/Apache24/htdocs即DocumentRoot的定义。如果想放到其他目录下,需要修改httpd.conf,包括ServerRoot、DocumentRoot、Directories,ScriptAlias。需要改为你的Apache目录的地址。

因为这里我们下载的是官方源码包,所以需要把Apache服务安装到我们的计算机上面
开启控制台:win+R 输入cmd
命令行下进入到apache下面的bin目录,输入
httpd -k install 把apache安装成windows后台服务。

所有基本的命令都可以在Apache官网上找到,下面是一些常用的命令

最后使用ApacheMonitor来管理apache服务器
访问测试是否成功

⑶ 跪求..在windows系统下怎样使用apache

Apache http://httpd.apache.org/
最流行的HTTP服务器软件之一。快速、可靠、可通过简单的API扩展,Perl/Python解释器可被编译到服务器中,完全免费,完全源代码开放。
我下载的是for Windows版本,目前最新版本是:2.0.54

PHP http://www.php.net/
PHP 是一种 HTML 内嵌式的语言。而PHP独特的语法混合了 C、Java、Perl 以及 PHP 式的新语法。它可以比 CGI 或者 Perl 更快速的执行动态网页。
我下载的是for Windows版本,目前最新版本是:5.0.4

Mysql http://www.mysql.com/
是一个多线程的,结构化查询语言(SQL)数据库服务器。SQL 在世界上是最流行的数据库语言。MySQL 的执行性能非常高,运行速度非常快,并非常容易使用。
我下载的是for Windows版本,目前最新版本是:5.0.4 Beta

phpMyAdmin http://www.phpmyadmin.net/
phpMyAdmin 是一个用PHP编写的,可以通过互联网控制和操作MySQL。通过phpMyAdmin可以完全对数据库进行操作。
我下载的是for Windows版本,目前最新版本是:2.6.2-pl1

安装apache和PHP
下面是我的安装记录:
选择80端口,将apache安装在 e:\apache下。
配置apache里的httpd.conf文件(conf目录下)
找到 DocumentRoot "E:/apache/Apache2/htdocs" 将其改为WEB目录E:/htdocs
找到 DirectoryIndex index.html index.html.var 在后面加入 index.htm index.php default.php default.html
选择模块化模式安装
找到 #LoadMole ssl_mole moles/mod_ssl.so 这行,在此行后加入一行
LoadMole php5_mole e:/php/php5apache2.dll
找到 AddType application/x-gzip .gz .tgz 这行,在此行后加入一行
AddType application/x-httpd-php .php

将php-5.0.4-Win32.zip里内容解压到e:\php里,找到php.ini-recommended,重命名为php.ini并拷贝到windows目录下。
NTFS上记得给服务器开PHP.ini的读权限。
查找extension_dir后面的改为"e:/php/ext"
查找Windows Extensions,把下面有一排的;extension=php_***.dll的分号去掉,就是支持组件了。我把 extension=php_gd2.dll extension=php_mbstring.dll extension=php_mysql.dll 的分号去掉了。
php5默认不支持mysql了,所以要为他添加支持,除了extension=php_mysql.dll去分号之外,在php目录里有个libmysql.dll文件,把它复制到系统的system32文件夹下,复制php.ini到windows目录下。

此时PHP环境基本已经配置成功
在WEB根目录里建一个名为test.php的文件内容如下
<? echo phpinfo(); ?>
重新启动apache服务,用浏览器打开 http://localhost/test.php
如果可以看到php配置输出信息就成功了

安装mysql
将mysql安装到指定目录,然后安装程序会引导你一步步配置。不过奇怪的是最后任务栏没有出现Mysql的图标。
修改mysql数据库的root密码
用cmd进入命今行模式输入如下命令: ( 注: d:\mysql 为mysql安装目录)
cd d:\mysql\bin
mysqladmin -u root -p password 123456
回车出现
Enter password: ( 注:这是叫你输入原密码. 刚安装时密码为空,所以直接回车即可)
此时mysql 中账号 root 的密码 被改为 123456 安装完毕

配置php.ini并测试mysql

找到extension_dir = "./" 改为 extension_dir = "e:/php/ext"
找到
;extension=php_mysql.dll
将';'去掉改为
extension=php_mysql.dll
找到
;session.save_path = "/tmp"
将';'去掉 设置你保存session的目录,如
session.save_path = "e:/php/session_temp"

重启apache服务
在Web根目录下建立testdb.php文件内容如下:
<?php
$link=mysql_connect('localhost','root','123456');
if(!$link) echo "fail";
else echo "success";
mysql_close();
?>
用浏览器打开http://localhost/testdb.php 如果输出success就OK了

phpmyadmin的安装配置

将phpMyAdmin-V2.6.2-pl1.zip解压到WEB根目录中去,重命名文件夹为phpmyadmin或其它
打开phpmyadmin 目录中的 config.inc.php
找到
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = '123456';
分别填上用户名和密码

⑷ 如何使用APACHE在windows上>

在windows上使用APACHE的方法如下:

1、进入apache官网http://httpd.apache.org/,下载稳定版的httpd 2.2.29为例,点击download。

⑸ 编译安装apache 怎么关闭 gzip

先来了解一下GZIP ,gzip是GNU zip的缩写,它是一个GNU自由软件的文件压缩程序,也经常用来表示gzip这种文件格式。软件的作者是Jean-loup Gailly和Mark Adler。1992年10月31日第一次公开发布,版本号是0.1,目前的稳定版本是1.2.4。
gzip可以级大的加速网站.有时压缩比率高到80%,近来测试了一下,最少都有40%以上,还是相当不错的.在Apache2之后的版本,模块名不叫gzip,而叫mod_deflate
1、Apache启用gzip
如果要开启gzip的话,一定要打开下面二个模块.
LoadMole headers_mole moles/mod_headers.so
LoadMole deflate_mole moles/mod_deflate.so
设置压缩比率,取值范围在 1(最低) 到 9(最高)之间,不建议设置太高,虽然有很高的压缩率,但是占用更多的CPU资源.
DeflateCompressionLevel 3
AddOutputFilter DEFLATE html xml php js css
<Location />
SetOutputFilter DEFLATE
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4/.0[678] no-gzip
BrowserMatch /bMSIE !no-gzip !gzip-only-text/html
SetEnvIfNoCase Request_URI //.(?:gif|jpe?g|png)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI .(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI .(?:pdf|mov|avi|mp3|mp4|rm)$ no-gzip dont-vary
Header append Vary User-Agent env=!dont-vary #对代理的设置
</Location>

测试数据对css
Original Size: 44 KB
Gzipped Size: 10 KB
Data Savings: 77.27%
测试数据js
Original Size: 6 KB
Gzipped Size: 2 KB
Data Savings: 66.67%
测试数据php
Original Size: 62 KB
Gzipped Size: 15 KB
Data Savings: 75.81%
上面只是随机拿的几个数据,看的出来,使用了gzip压缩后文件小多了.
另外讲一下,有关squid对gzip的处理
在squid中,对同一个URL只保留一份缓存。对于如果不同browser(是否支持压缩)如果频繁交替访问,例如:对某个cache住的目标,一个 http/1.0请求可能会导致squid强制更新其缓存。但接下来的另一个http/1.1请求又会导致squid再次更新缓存。这样那squid缓存 数据就要频繁更新,这就极大的降低了cache命中率。
不过还好,现实环境中不支持压缩的browser毕竟是很少的情况,所以对于缓存命中率的降低很有限.
这个神通广大的模块就是mod_gzip. 它通过用和gzip一样的压缩算法对apache发出的页面进行压缩,可能的话可以把页面压缩成为原来大小的十份之一。哪,如果10K的页面只要传1K这 不就是提速10倍嘛。当然一般网页只可以达到3-6倍。那也很不错。对吧。连google这样一个大的网站都采用这个技术。你还不快跟上?
这样一个好东东,来来来,我告诉你如何安装:分3步,1、下载,2、修改配置,3、测试。

安装, 配置
把mod_gzip放到你的apache的源代码目录下,新建一个mod_gzip目录如果需要补丁(针对1.3.17.la版) 还需运行:
patch mod_gizp.c
按你需要,在配置中选择动态DSO或静态编译进apache系统。如何处理在README中讲得很清楚,如-add-mole=mod_gzip.c, make,make install等等。这里不多讲。
把下列配置加入httpd.conf尾部。
# MOD_GZIP configuration
mod_gzip_on Yes
mod_gzip_minimum_file_size 1002
mod_gzip_maximum_file_size 0
mod_gzip_maximum_inmem_size 60000
mod_gzip_item_include mime "application/x-httpd-php"
mod_gzip_item_include mime text/*
mod_gzip_item_include mime "httpd/unix-directory"
mod_gzip_dechunk Yes
mod_gzip_temp_dir "/tmp"
mod_gzip_keep_workfiles No
mod_gzip_item_include file ".php3$"
mod_gzip_item_include file ".txt$"
mod_gzip_item_include file ".html$"
mod_gzip_item_exclude file ".css$"
mod_gzip_item_exclude file ".js$"
在保存修改后运行
…/bin/apachectl configtest确保配置修改无误。
然后用 apachectl restart 指令重起服务。
修改,测试
在宣布做好了之前在测试一下是优秀程序员的习惯。为了尽量不影响你的用户的浏览,我们可以用把新的apache驱动在8080端口上或者用指令控制mod_gzip起作用的目录,而不是一下子全用mod_gzip.
用法如下:
MOD_GZIP configuration
没有问题后你就可以让你的用户很开心的发现’XX网站现在好快哦。’
Mod_gzip真的很神奇,100K的HTML大 文档只要12K就可以传到用户端了。越先采用这个技术你的用户对你的网站的高速度印象就越深。不过有所得必有所失,由于解压是在客户端进行的,效果和用户 的浏览器有一定关系。
2、IIS启用gzip
现代的浏览器IE6和Firefox都支持客户端Gzip,也就是说,在服务器上的网页,传输之前,先使用Gzip压缩再传输给客户端,客户端接收之后由浏览器解压显示,这样虽然稍微占用了一些服务器和客户端的CPU,但是换来的是更高的带宽利用率。对于纯文本来讲,压缩率是相当可观的。如果每个用户节约50%的带宽,那么你租用来的那点带宽就可以服务多一倍的客户了。
IIS6已经内建了Gzip压缩的支持,可惜,没有设置更好的管理界面。所以要打开这个选项,还要费些功夫。
首先,如果你需要压缩静态文件(HTML),需要在硬盘上建一个目录,并给它“IUSR_机器名”这个用户的写权限。如果压缩动态文件(PHP,asp,aspx)就不需要了,因为它的页面是每次都动态生成的,压缩完就放弃。然后在IIS管理器中,“网站”上面右键-属性,不是下面的某个站点,而是整个网站。进入“服务”标签,选上启用动态内容压缩,静态内容压缩。
然后选中网站下面那个服务器扩展,新建一个服务器扩展。名字无所谓,下面的添加文件的路径是:
c:/windows/system32/inetsrv/gzip.dll,然后启用这个扩展。
这时候静态内容是可以压缩的,但是对于动态内容,aspx文件却不在压缩范围内。因为默认的可压缩文件并没有这个扩展名。而管理界面中你又找不到可以增加扩展名的地方,这时候只能去修改它的配置文件了。
在 c:/windows/system32/inetsrv/下面有个MetaBase.xml文件,可以用记事本打开,找到 IIsCompressionScheme,有三个相同名字的段,分别是deflate,gzip,Parameters,第三段不用管它,前两段有基本相同的参数,在这两段的参数HcScriptFileExtensions下面都加上一行aspx,如果你有其它的动态程序要压缩,也加在这里。 HcDynamicCompressionLevel改成9,(0-10,9是性价比最高的一个)。
1.首先备份 IIS 的配置文件,
复制C:/Windows/system32/inetsrv/metabase.xml到另外的备份文件夹中.
C:/Windows/system32/inetsrv/metabase.xml是 IIS 的核心配置文件,该文件的完整性一但被破坏,IIS 将无法正常运行,严重到需要重新安装系统.
2. 在开始菜单中启动 Internet 信息服务(IIS)管理器,右键点击“网站”属性,打开“服务”选项卡,勾选“HTTP 压缩”的两个选项。“临时目录”和“临时目录最大容量”可根据需要自行设置。设置完成后点击确定。
3. 右键点击“网站”下方的 “Web服务扩展”,添加一个新的Web服务扩展,扩展名填写为“HTTP Compression”或其他,都可以。“要求的文件”添加:c:/windows/system32/inetsrv/gzip.dll ,并勾选“设置扩展状态为允许”,完成后点击确定。
4.下面的步骤有些复杂,如果没有确定的把握能理解,最好不要尝试,右键点击“Internet 信息服务的”“本地计算机”属性,勾选“允许直接编辑配置数据库”并确定。
5. 在开始菜单中运行 notepad C:/Windows/system32/inetsrv/metabase.xml ,打开metabase.xml 文件,请在任何改动前再次确认该文件已经备份。
6. 搜索并找到 metabase.xml 文件中的<IIsCompressionScheme 片段中的HcScriptFileExtensions,依照原有文件的格式添加你希 望进行 HTTP 压缩的文件扩展名,静态文件HcFileExtensions可添加 JS,CSS 等; 动态文件HcScriptFileExtensions可添加"ASPX"”ASMX”,如下:
<IIsCompressionScheme Location =”/LM/W3SVC/Filters/Compression/deflate”
HcCompressionDll=”%windir%/system32/inetsrv/gzip.dll”
HcCreateFlags=”0″
HcDoDynamicCompression=”TRUE”
HcDoOnDemandCompression=”TRUE”
HcDoStaticCompression=”FALSE”
HcDynamicCompressionLevel=”9″
HcFileExtensions=”htm
html
js
css
txt”
HcOnDemandCompLevel=”10″
HcPriority=”1″
HcScriptFileExtensions=”asp
aspx
asmx
dll
exe”
>
</IIsCompressionScheme>
<IIsCompressionScheme Location =”/LM/W3SVC/Filters/Compression/gzip”
HcCompressionDll=”%windir%/system32/inetsrv/gzip.dll”
HcCreateFlags=”1″
HcDoDynamicCompression=”TRUE”
HcDoOnDemandCompression=”TRUE”
HcDoStaticCompression=”TRUE”
HcDynamicCompressionLevel=”9″
HcFileExtensions=”htm
html
js
css
txt”
HcOnDemandCompLevel=”10″
HcPriority=”1″
HcScriptFileExtensions=”asp
aspx
asmx
dll
exe”
>
</IIsCompressionScheme>
注意“Compression/deflate”和“Compression/gzip”两个片段都需要修改。动态压缩等级,HcDynamicCompressionLevel建议设置为“9”
7. 保存并关闭 metabase.xml 文件。
8. 重新启动 IIS 服务,运行“IISReset”或重新启动 WWW 服务。
9. 其他:
如果你的服务器上某一个Web站点不希望启用 IIS 压缩,请运行以下脚本
cscript. C:/Inetpub/AdminScripts/adsutil.vbs set w3svc/site#/root/DoStaticCompression False
cscript. C:/Inetpub/AdminScripts/adsutil.vbs set w3svc/site#/root/DoDynamicCompression False
如果想增加启用 HTTP 压缩的文件类型,请运行以下脚本:
“” 中为文件扩展名,别忘了把原有的扩展名加上。
静态文件压缩:
CSCRIPT.EXE ADSUTIL.VBS SET W3Svc/Filters/Compression/GZIP/HcFileExtensions “htm” “html” “txt” “doc” “ppt” “xls”
CSCRIPT.EXE ADSUTIL.VBS SET W3Svc/Filters/Compression/DEFLATE/HcFileExtensions “htm” “html” “txt” “doc” “ppt” “xls”
动态文件压缩:
CSCRIPT.EXE ADSUTIL.VBS SET W3Svc/Filters/Compression/GZIP/HcScriptFileExtensions “asp” “aspx” “asmx” “dll” “exe” “php”
CSCRIPT.EXE ADSUTIL.VBS SET W3Svc/Filters/Compression/DEFLATE/HcScriptFileExtensions “asp” “aspx” “asmx” “dll” “exe” “php”
将site#替换为该 Web 站点的 ID。Web 站点的 ID是什么到“日志记录属性”中看一下日志记录的“日志文件名”前面的路径就知道了。
运行以上脚本前务必备份,运行后再次执行“IISReset”使生效.

⑹ 如何优化windows+apache 性能的具体方法

Windows系统下如果优化Apache的性能主要是通过专门针对Windows NT优化的MPM(多路处理模块)-mpm_winnt.c来优化的,它使用一个单独的父进程产生一个单独的子进程,在这个子进程中轮流产生多个线程来处理请求。也就是说mpm_winnt只能启动父子两个进程, 不能像linux下那样同时启动多个进程。
mpm_winnt主要通过ThreadsPerChild和MaxRequestsPerChild两个参数来优化Apache。
ThreadsPerChild
这个参数用于设置每个进程的线程数, 子进程在启动时建立这些线程后就不再建立新的线程了. 一方面因为mpm_winnt不能启动多个进程, 所以这个数值要足够大,以便可以处理可能的请求高峰; 另一方面该参数以服务器的响应速度为准的, 数目太大的反而会变慢。因此需要综合均衡一个合理的数值。mpm_winnt上的默认值是64, 最大值是1920. 这里建议设置为100-500之间,服务器性能高的话值大一些,反之值小一些。
MaxRequestsPerChild
该参数表示每个子进程能够处理的最大请求数, 即同时间内子进程数目.设置为零表示不限制, mpm_winnt上的默认值就是0.
官方参考手册中不建议设置为0, 主要基于两点考虑: (1) 可以防止(偶然的)内存泄漏无限进行,从而耗尽内存; (2) 给进程一个有限寿命,从而有助于当服务器负载减轻的时候减少活动进程的数量。
因此这个参数的值更大程度上取决于服务器的内存,如果内存比较大的话可以设置为0或很大的数字,否则设置一个小的数值。需要说明的是,如果这个值设置的太小的话会造成Apache频繁重启,在日志文件中会看到如下的文字:Process exiting because it reached MaxRequestsPerChild. Signaling the parent,这样一来降低了Apache的总体性能。
另外,可以通过查看Apache提供的server-status(状态报告)来验证当前所设置数值是否合理,在httpd.conf文件中做如下设置来打开它:
# 首先需要加载mod_status模块
LoadMole status_mole moles/mod_status.so

# 然后设置访问的地址
<Location /server-status>
SetHandler server-status
Order deny,allow
Deny from all
# 如果限制某个IP访问则设置为 Allow from 192.168.1.1
Allow from all
</Location>
综合来说,因为Windows NT下Apache只能启动父子两个进程,因此只能通过增大单个进程的线程数以及单个进程能够处理的最大请求数来进行优化。其他优化的参数同Linux系统下是一样的,大家可以加以参考。下面针对上述两个参数给出一个建议的设置:
<IfMole mpm_winnt.c>
ThreadsPerChild 250
MaxRequestsPerChild 5000
</IfMole>
用上面的方法优化了一下windows+apache+php后,发现响应速度快了很多,一般最多只延迟3秒左右,但对于美国的主机来说应该是个正常的状态吧!

⑺ apache的优化

我们在使用Apache作为web服务器的过程中,只有对Apache服务器进行适当的优化配置,才能让Apache发挥出更好的性能;再反过来说,如果Apache的配置非常糟糕,Apache可能无法正常为我们服务。因此,针对我们的应用需求对Apache服务器的配置进行一定的优化是必不可少的。
硬件和操作系统
毫无疑问,要想让Apache服务器发挥出更好的性能,首先必须得保证硬件和操作系统能够满足Apache服务器的负载需要。如果由于硬件和操作系统原因导致Apache的运行性能受到较大的影响,即使对Apache服务器本身优化配置得再好也无济于事,“想要马儿跑得好,又想马儿不吃草”当然是行不通的。
一般而言,影响web服务器性能的最大的因素是内存。当内存不足时,操作系统将会使用内存交换机制。内存交换机制,简而言之,就是将本地磁盘的一部分作为虚拟内存空间供程序使用。web服务器想要更好地所有用户服务,则其应该永远不要使用内存交换机制,否则其性能将会受到较大的影响。不仅如此,由于服务器使用了内存交换机制所产生的“滞后”,“滞后”的直接后果就是让用户感觉网站的访问速度很慢,此时用户极有可能会点击【停止】或者【刷新】,如果用户不停地点击【刷新】,将会给服务器带来更大的负载,从而进入一个恶性循环。
对于Apache服务器的内存需求量,我们可以通过操作系统相关命令查看服务器正常运行时每个为用户服务的进程(或线程)平均占用多少的内存,再根据需求或者相关数据得出单个服务器所要支撑的最大并发负载数,从而计算出Apache服务器的内存需求量。为Apache服务器分配的内存最好能够大于计算得来的需求量。
除此之外,硬件最好能够保证有足够快的CPU、足够快的网卡(足够的带宽)、足够快足够大的硬盘。这里的“足够”是指能够满足web应用的实际需求。
至于操作系统,最好能够选择一个有利于服务器运行的最新最稳定的版本并安装好了对应的补丁程序。毕竟,随着时代的发展,操作系统也在不断进步。许多操作系统厂商都提供了可以显着改善性能的TCP协议栈和线程库。例如,如果你的操作系统支持sendfile()系统调用,Apache 2.x服务器可以使用sendfile()从而更快地发送静态内容并且占用较少的CPU时间。
优化Apache配置
1.尽量使用IP地址代替域名
在Apache的配置文件中,有许多可以针对具体请求来源进行相应操作的配置,例如 allow from 365mini.com表示允许域名为365mini.com的用户访问。在这种情况下,如果我们知道该域名或主机名与某个IP地址一一对应,则最好使用具体的IP地址来代替域名。否则Apache服务器将要进行多次DNS查询来确定该域名或主机名所对应的IP地址。 注意:可能存在一些例外情况,例如一个IP地址对应多个域名,或者一个域名对应多个IP地址或者对应一个变化的IP地址,此时仍然要使用域名或主机名。一般而言,只有域名或主机名与IP地址具有一一对应关系时,才使用IP地址来代替域名。请根据实际情况作出选择。 2.启用FollowSymLinks选项
当Apache处理请求时,如果对应的请求文件所在目录没有启用FollowSymLinks选项,或使用了SymLinksIfOwnerMatch选项,Apache就必须执行额外的系统调用来验证符号连接的安全性。文件名的每一个组成部分都需要一次额外的调用。因此,如果在安全性允许的情况下,为了得到更加良好的运行性能,应当放弃对符号连接的保护,在所有地方都设置FollowSymLinks,并放弃使用SymLinksIfOwnerMatch。 #启用FollowSymLinks选项,如果子目录没有额外的设置,将会继承该设置
<Directory />
Options FollowSymLinks
</Directory> 3.禁用AllowOverride
如果Apache的配置文件中允许了AllowOverride指令,则Apache在处理每个请求路径时,都会尝试对文件路径的每一个组成部分都打开该目录下的.htaccess文件。
例如,当用户请求访问服务器上的/static/test/hello.html,则Apache将会尝试打开/static/test/.htaccess、/static/.htaccess、/.htaccess三个文件。从而影响服务器的运行性能。
因此,如果当前用户拥有Apache配置文件的编辑权限,建议将.htaccess文件中的配置内容直接写在Apache对应的配置文件(一般为httpd.conf)中,并禁用AllowOverride。 #禁用AllowOverride
<Directory />
AllowOverride None
</Directory> 当然,如果用户不具备Apache配置文件的编辑权限,又希望能够对站点进行相应的管理设置,就需要管理员允许AllowOverride,以便于用户编写自己的.htaccess文件。
4.尽量不使用通配符
在Apache的配置文件中,我们可以指定每个目录下的默认欢迎页面,例如: #以内容协商的方式指定欢迎页面
<Directory />
DirectoryIndex index
</Directory> 使用上述配置后,当访问当前目录时,Apache将会在当前目录下查找名称形如index.*的文件,并根据客户端期望响应的类型自动返回一个最匹配的请求文件(即内容协商)。
不过,这样做将会导致一点性能损失,尽管内容协商的好处大于性能的损失,如果你仍然在意这一点性能损失的话,建议你不要使用上述通配符形式的配置,而是根据自己的需要,指定一个完整的index.*文件列表。 #指定欢迎页面
<Directory />
DirectoryIndex index.html index.cgi index.pl
</Directory> 使用上述配置后,Apache将按照从左到右的先后顺序依次查找上述三个名称的文件,并响应最先找到的那个文件。
5.选择适当的多路处理模块(MPM)
由于多路处理模块的相关内容较多,请参考下面的修改最大并发连接数。
6.修改Apache的并发连接配置
关于修改Apache的并发连接配置的具体内容,请同样参考请参考下面的修改最大并发连接数。 Apache是一个跨平台的web服务器,由于其简单高效、稳定安全的特性,被广泛应用于计算机技术的各个领域。现在,Apache凭借其庞大的用户数,已成为用户数排名第一的web服务器。
尽管如此,在实际的生产环境中,我们仍然不可能直接使用默认配置的Apache来充当服务器。毕竟,为了更充分合理地利用Apache服务器,我们都应该根据自己的实际需要对Apache的默认配置作出一些必要的调整。而针对Apache的优化配置过程中,修改Apache的最大并发连接数 就显得尤为重要。
在修改Apache的最大并发连接数 之前,我们需要预先了解一些Apache的相关知识。
众所周知,Apache是一个跨平台的、采用模块化设计的服务器。为了应对不同的平台和不同的环境产生的各种不同的需求,也为了在具体的平台或环境下达到最佳的效果,Apache在web服务器的基础功能方面(端口绑定、接收请求等)也同样采用了模块化设计,这个Apache的核心模块就叫做多路处理模块(Multi-ProcessingMole,简称MPM)。
Apache针对不同的操作系统提供了多个不同的MPM模块,例如:mpm_beos、mpm_event、mpm_netware、mpmt_os2、mpm_prefork、mpm_winnt、mpm_worker。如果条件允许,我们可以根据实际需求将指定的MPM模块编译进我们自己的Apache中(Apache的源码是开放的,允许用户自行编译)。不过,如果在编译时我们没有选择,Apache将按照如下表格根据不同的操作系统自行选择对应的MPM模块,这也是Apache针对不同平台推荐使用的MPM模块。 不同操作系统上默认的MPM模块 操作系统 MPM模块 描述 Windows mpm_winnt 不用介绍了吧:) Unix/Linux mpm_prefork 不用介绍了吧:) BeOS mpm_beos 由Be公司开发的一种多媒体操作系统,官方版已停止更新。 Netware mpm_netware 由NOVELL公司推出的一种网络操作系统 OS/2 mpmt_os2 一种最初由微软和IBM共同开发的操作系统,现由IBM单独开发(微软放弃OS/2,转而开发Windows) mpm_event模块可以看作是mpm_worker模块的一个变种,不过其具有实验性质,一般不推荐使用。
当然,Apache在其官方网站上也提供了根据不同操作系统已经编译好对应MPM模块的成品Apache。你可以点击此处进入Apache官方网站下载。
此外,如果我们想要知道某个Apache内部使用的是何种MPM模块,我们可以以命令行的方式进入Apache安装目录in,然后键入命令httpd-l,即可查看到当前Apache内部使用的何种MPM模块。
使用httpd-l命令查看编译模块
由于在平常的开发工作中,BeOS、NetWare、OS/2等操作系统并不常见,这里我们主要针对Windows和Unix/Linux操作系统上的MPM模块进行讲解。在Windows和Unix/Linux操作系统上,MPM模块主要有mpm_winnt、mpm_prefork、mpm_worker三种。
mpm_prefork模块
mpm_prefork模块主要应用于Unix/Linux平台的Apache服务器,其主要工作方式是:当Apache服务器启动后,mpm_prefork模块会预先创建多个子进程(默认为5个),当接收到客户端的请求后,mpm_prefork模块再将请求转交给子进程处理,并且每个子进程同时只能用于处理单个请求。如果当前的请求数将超过预先创建的子进程数时,mpm_prefork模块就会创建新的子进程来处理额外的请求。Apache总是试图保持一些备用的或者是空闲的子进程用于迎接即将到来的请求。这样客户端的请求就不需要在接收后等候子进程的产生。
由于在mpm_prefork模块中,每个请求对应一个子进程,因此其占用的系统资源相对其他两种模块而言较多。不过mpm_prefork模块的优点在于它的每个子进程都会独立处理对应的单个请求,这样,如果其中一个请求出现问题就不会影响到其他请求。同时,mpm_prefork模块可以应用于不具备线程安全的第三方模块(比如PHP的非线程安全版本),且在不支持线程调试的平台上易于调试。此外,mpm_prefork模块还具有比mpm_prefork模块更高的稳定性。
mpm_worker模块
mpm_worker模块也主要应用于Unix/Linux平台的Apache服务器,它可以看作是mpm_prefork模块的改进版。mpm_worker模块的工作方式与mpm_prefork模块类似。不过,由于处理相同请求的情况下,基于进程(例如mpm_prefork)比基于线程的处理方式占用的系统资源要多。因此,与mpm_prefork模块不同的是,mpm_worker模块会让每个子进程创建固定数量的服务线程和一个监听线程,并让每个服务线程来处理客户端的请求,监听线程用于监听接入请求并将其传递给服务线程处理和应答。Apache总是试图维持一个备用或是空闲的服务线程池。这样,客户端无须等待新线程或新进程的建立即可得到处理。
与mpm_prefork模块相比,mpm_worker模块可以进一步减少系统资源的开销。再加上它也使用了多进程,每个进程又有多个线程,因此它与完全基于线程的处理方式相比,又增加了一定的稳定性。
mpm_winnt模块
mpm_winnt模块是专门针对Windows操作系统而优化设计的MPM模块。它只创建一个单独的子进程,并在这个子进程中轮流产生多个线程来处理请求。
修改MPM模块配置
在对Apache的MPM模块具备一定了解后,我们就可以针对不同的MPM模块来修改Apache的最大并发连接数 配置了。
1、启用MPM模块配置文件
在Apace安装目录/conf/extra目录中有一个名为httpd-mpm.conf的配置文件。该文件主要用于进行MPM模块的相关配置。不过,在默认情况下,Apache的MPM模块配置文件并没有启用。因此,我们需要在httpd.conf文件中启用该配置文件,如下所示: #Server-poolmanagement(MPMspecific)Includeconf/extra/httpd-mpm.conf(去掉该行前面的注释符号#)2、 修改MPM模块配置文件中的相关配置
在启动MPM模块配置文件后,我们就可以使用文本编辑器打开该配置文件,我们可以看到,在该配置文件中有许多<IfMole>配置节点,只有Apache使用对应MPM模块时,对应配置才会生效
此时,我们就需要根据当前Apache服务器所使用的MPM模块,来修改对应<IfMole>节点下的参数配置。首先,我们来看看mpm_winnt模块下的默认配置: #由于mpm_winnt模块只会创建1个子进程,因此这里对单个子进程的参数设置就相当于对整个Apache的参数设置<IfMolempm_winnt_mole>ThreadsPerChild150#推荐设置:小型网站=1000中型网站=1000~2000大型网站=2000~3500MaxRequestsPerChild0#推荐设置:小=10000中或大=20000~100000</IfMole>对应的配置参数作用如下: 参数名称参数作用ThreadsPerChild 每个子进程的最大并发线程数。MaxRequestsPerChild每个子进程允许处理的请求总数。
(如果累计处理的请求数超过该值,该子进程将会结束(然后根据需要确定是否创建新的子进程),该值设为0表示不限制请求总数(子进程永不结束)。该参数建议设为非零的值,可以带来以下两个好处:
1.可以防止程序中可能存在的内存泄漏无限进行下去,从而耗尽内存。
2.给进程一个有限寿命,从而有助于当服务器负载减轻的时候减少活动进程的数量。
) 注意:在以上涉及到统计请求数量的参数中,对于KeepAlive的连接,只有第一个请求会被计数。
接着,我们再来看看mpm_perfork模块和mpm_worker模块下的默认配置: #mpm_perfork模块<IfMolempm_prefork_mole>StartServers5#推荐设置:小=默认中=20~50大=50~100MinSpareServers5#推荐设置:与StartServers保持一致MaxSpareServers10#推荐设置:小=20中=30~80大=80~120MaxClients150#推荐设置:小=500中=500~1500大型=1500~3000MaxRequestsPerChild0#推荐设置:小=10000中或大=10000~500000(此外,还需额外设置ServerLimit参数,该参数最好与MaxClients的值保持一致。)</IfMole>#mpm_worker模块<IfMolempm_worker_mole>StartServers2#推荐设置:小=默认中=3~5大=5~10MaxClients150#推荐设置:小=500中=500~1500大型=1500~3000MinSpareThreads25#推荐设置:小=默认中=50~100大=100~200MaxSpareThreads75#推荐设置:小=默认中=80~160大=200~400ThreadsPerChild25#推荐设置:小=默认中=50~100大型=100~200MaxRequestsPerChild0#推荐设置:小=10000中或大=10000~50000(此外,如果MaxClients/ThreadsPerChild大于16,还需额外设置ServerLimit参数,ServerLimit必须大于等于MaxClients/ThreadsPerChild的值。)</IfMole>对应的配置参数作用如下表: 参数名称参数作用StartServers启动Apache时创建的子进程数。MinSpareServers处于空闲状态的最小子进程数。(所谓空闲子进程是指没有正在处理请求的子进程。如果当前空闲子进程数少于MinSpareServers,那么Apache将以最大每秒一个的速度产生新的子进程。只有在非常繁忙机器上才需要调整这个参数。此值不宜过大。)MaxSpareServers处于空闲状态的最大子进程数。(只有在非常繁忙机器上才需要调整这个参数。此值不宜过大。如果你将该指令的值设置为比MinSpareServers小,Apache将会自动将其修改成MinSpareServers+1。)MaxClients允许同时连接的最大请求数量。1、任何超过MaxClients限制的请求都将进入等待队列,直到达到ListenBacklog指令限制的最大值为止
2、对于非线程型的MPM(也就是mpm_prefork),MaxClients表示可以用于处理客户端请求的最大子进程数量,默认值是256。要增大这个值,你必须同时增大ServerLimit。
3、对于线程型或者混合型的MPM(也就是mpm_beos或mpm_worker),MaxClients表示可以用于处理客户端请求的最大线程数量。线程型的mpm_beos的默认值是50。对于混合型的MPM默认值是16(ServerLimit)乘以25(ThreadsPerChild)的结果。因此要将MaxClients增加到超过16个进程才能提供的时候,你必须同时增加ServerLimit的值。 MinSpareThreads处于空闲状态的最小线程数。
(注:不同的MPM对这个指令的处理是不一样的:mpm_worker的默认值是75。这个MPM将基于整个服务器监视空闲线程数。如果服务器中总的空闲线程数太少,子进程将产生新的空闲线程。mpm_netware的默认值是10。既然这个MPM只运行单独一个子进程,此MPM当然亦基于整个服务器监视空闲线程数。mpm_beos和mpmt_os2的工作方式与mpm_netware差不多,mpm_beos的默认值是1;mpmt_os2的默认值是5。) MaxSpareThreads处于空闲状态的最大线程数。
(注:不同的MPM对这个指令的处理是不一样的:mpm_worker的默认值是250。这个MPM将基于整个服务器监视空闲线程数。如果服务器中总的空闲线程数太多,子进程将杀死多余的空闲线程。mpm_netware的默认值是100。既然这个MPM只运行单独一个子进程,此MPM当然亦基于整个服务器监视空闲线程数。mpm_beos和mpmt_os2的工作方式与mpm_netware差不多,mpm_beos的默认值是50;mpmt_os2的默认值是10。) 备注:ServerLimit表示Apache允许创建的最大进程数。值得注意的是,Apache在编译时内部有一个硬限制ServerLimit20000(对于mpm_prefork模块为ServerLimit200000)。你不能超越这个限制。
使用这个指令时要特别当心。如果将ServerLimit设置成一个高出实际需要许多的值,将会有过多的共享内存被分配。如果将ServerLimit和MaxClients设置成超过系统的处理能力,Apache可能无法启动,或者系统将变得不稳定。 注意:在配置相关参数时,请先保证服务器具备足够的硬件性能(例如:CPU、内存等)。如果发现自启动后,随着服务器的运行时间增加,服务器的内存占用也随之增加,可能是程序中出现内存泄露,请向下调整参数MaxRequestsPerChild的值以降低内存泄露带来的影响,然后尽快找出程序中的问题之所在。

⑻ 怎样在windows下安装 apache http server 2.4

http://archive.apache.org/dist/httpd/binaries/win32/
这是windows下的apahce版本,最高只有2.2,如果想要安装只能自己编译,linux就有2.4的

⑼ windows和unix下编译c++有什么不同

使用的编译器不同,unix一般使用cc,gcc,acc等。windows一般用msvc,再有buider c++等。
这些编译器都遵守c++的标准规范,所以大同小异。

但编译出的结果,只针对编译器运行的平台,也就是说windows下编译的程序无法再unix下运行,反之亦然。

⑽ apache 配置编译参数status_info ,windowsXP下安装的apache,配置的具体步骤是什么

./configure --prefix=/usr/local/apache --enable-headers --enable-so --enable-rewrite --with-mpm=prefork --disable-userdir --enable-suexec --with-suexec-caller=www-data --with-suexec-docroot=/ --with-suexec-gidmin=100 --with-suexec-uidmin=100 --with-suexec-logfile=/usr/local/apache/logs/suexec_log --with-suexec-userdir=public_html

热点内容
java返回this 发布:2025-10-20 08:28:16 浏览:705
制作脚本网站 发布:2025-10-20 08:17:34 浏览:969
python中的init方法 发布:2025-10-20 08:17:33 浏览:677
图案密码什么意思 发布:2025-10-20 08:16:56 浏览:828
怎么清理微信视频缓存 发布:2025-10-20 08:12:37 浏览:737
c语言编译器怎么看执行过程 发布:2025-10-20 08:00:32 浏览:1076
邮箱如何填写发信服务器 发布:2025-10-20 07:45:27 浏览:308
shell脚本入门案例 发布:2025-10-20 07:44:45 浏览:188
怎么上传照片浏览上传 发布:2025-10-20 07:44:03 浏览:875
python股票数据获取 发布:2025-10-20 07:39:44 浏览:829