RSS
热门关键字:  数据挖掘  人工智能  数据仓库  搜索引擎  数据挖掘导论

紧要问题,window是不是和apache苦大仇深

来源: 作者: 时间:2008-02-19 点击:

使用的是apmserv   web服务组合,免安装,集成了   Apache   2.2.3/PHP   5.2.0/MySQL   5.0.27等
在window2000服务器版上,经常是
1.   打不开页面,白板状,就好像没有这个页面,反复刷新,可以显示
2.如果可以显示页面,那么也是状态栏进度条,持续时间久,才能正常显示。此外会有不少图片没法显示,点右键可以再显示
使用ip访问也同样

硬件是   双cpu   4G内存,重启后刚开始并发量,至多100-200,不会再多,之前在linux的同配置机器上完全可以胜任

查看apache错误日志   连续不停的有  
[warn]   (OS   64)指定的网络名不再可用。     :   winnt_accept:   Asynchronous   AcceptEx   failed.

在google   baidu查找
基本上   认为和微软的WinSock2   API   ,以及apache一些性能提高的功能有关,   那么禁用
比如:
httpd.conf增加
EnableMMAP   off
EnableSendfile   off
Win32DisableAcceptEx

此外减少些子进程
ThreadsPerChild   150
MaxRequestsPerChild     10000 数据挖掘研究院

但效果不大
主要的3篇资料在这
http://www.swbclan.com/ssp/html/42/742-312.html
http://www.phpchina.com/bbs/archiver/tid-44481.html
http://www.mydigitallife.info/2006/03/09/winnt_accept-asynchronous-acceptex-failed-error-in-apache-log/     (英文)

同样的   当只有几个人内部简单测试时候,都很正常,但又不像普通并发数过高
那篇英文资料   里说到
due   to   an   enhancement   request   to   handle   dynamic   IP   assignment,   of   which   Apache   doesn’t   handle   IP   transitions   in   that   way.

请问大家有什么好的解决方法,
或者替代   ,比如降低   apache版本是否有可行性

补充:100M独享,在服务器上访问,也是同样问题

为什么不自己配置而使用集成的?

apache,mysql在windows下的运行效率很低,用php做增改查的操作,windows上比linux上慢10倍。虽然方法不是很科学,但也能说明一定问题。

改用apache1.3   白版叶面明显减少,打开速度尚慢 数据挖掘研究院
准备更新   2.2.8
本地测试了一下,不知为何没有
ThreadsPerChild  
MaxRequestsPerChild  

也没有这句
#   ThreadsPerChild:   constant   number   of   worker   threads   in   the   server   process
#   MaxRequestsPerChild:   maximum     number   of   requests   a   server   process   serves

难道是全自动的?

2.2.8更新介绍   有以下,哪位大师能人性化的转义一下   关于   winnt的那2条
core:   Fix   regression   in   2.2.7   in   chunk   filtering   with   massively   chunked   requests.

winnt_mpm:   Resolve   modperl   issues   by   redirecting   console   mode   stdout   to   /Device/Nul   as   the   server   is   starting   up,   mirroring   unix   MPM's.


winnt_mpm:   Restore   Win32DisableAcceptEx   On   directive   and   Win9x   platform   by   recreating   the   bucket   allocator   each   time   the   trans   pool   is   cleared.

mod_dav:   Fix   evaluation   of   If-Match   *   and   If-None-Match   *   conditionals

  2.2.8   还是出现打不开白板,速度慢
并且报错
[warn]       (OS       64)指定的网络名不再可用。           :       winnt_accept:       Asynchronous       AcceptEx       failed.  


用apache自带的server-statu查看

一般都是   277   requests   currently   being   processed,   723   idle   workers  
这个谈不上太多并发,apache无法响应吧?请教大家不换os,有没有处理方法

mark

自己配置的(可做参考):



WinXP   SP2下Apache2+PHP5+MySQL5+phpMyAdmin+Zend最新配置资料总结


下面是用到的配置软件,版本都是最新的:
apache_2.2.4-win32-x86-no_ssl.msi
php-5.2.1-Win32.zip
mysql-5.2.3-falcon-alpha-win32.zip
phpMyAdmin-2.10.0.2-all-languages.zip
ZendOptimizer-3.2.6-Windows-i386.exe

============================================
还是从PHP开始~

将php-5.2.1-Win32.zip解压到准备用于安装PHP的目录,这里我就解压到D:wwwphp;找到php目录下php.ini-dist文件,改名为php.ini;

用记事本打开php.ini,查找以下几行:
;extension=php_gd2.dll
;extension=php_mcrypt.dll
;extension=php_mysql.dll
去掉前面的分号.这样做的目的是让php加载mcrypt和mysql等各种模块,在需要的时候可以随时配置;

把D:wwwphpext下的php_mysql.dll和D:wwwphp下的libmysql.dll
拷贝至c:winntsystem32中

其他的比如
post_max_size   =   8M
upload_max_filesize   =   2M
都可以按实际情况进行设置.

最后保存,也不需要复制任何文件到系统目录,这样PHP基本上就OK了!

数据挖掘研究院




--------------------------------------------
Apache

1、安装

双击打开apache_2.2.4-win32-x86-no_ssl.msi开始安装,一路NEXT(当然,选目录大家都会,我的是F:wwwApache   Group),同意许可协议后会有填写服务器信息的页面,因为是本地调试,network   domain和servername两项都填localhost,最后那项administrator's   email   address填我自己的邮件地址,继续NEXT,直到FINISH;

完成之后Apache会启动相关服务,并在任务栏右下角运行一个Apache监控器,可测试Apache是否安装成功:
打开浏览器,输入http://localhost/,页面显示“It   Works!”,表示Apache安装OK了~

2、配置

配置Apache2.2.4,打开D:wwwApache2.2conf目录下httpd.conf文件,添加下面几行:
LoadFile   D:/www/php/libmysql.dll
LoadFile   D:/www/php/libmcrypt.dll
LoadFile   D:/www/php/php5ts.dll
LoadModule   php5_module   D:/www/php/php5apache2_2.dll
PHPIniDir   "D:/www/php/"
AddType   application/x-httpd-php   .php 数据挖掘研究院
这里前两行是加载mysql和mcrypt拓展;
第三行是加载PHP5服务;
LoadModule   php5_module   D:/www/php/php5apache2_2.dll是将PHP5作为模块进行加载,后面的是对应PHP5版本的dll路径,对于PHP5.2.1要用php5apache2_2.dll,而不再是php5apache2.dll(这个用于支持PHP5.14版);
PHPIniDir这行很明显了哈,是定向PHP的配置文件php.ini的;
AddType   application/x-httpd-php   .php   行是添加可以执行php的文件类型,比如可以再加上一行:
AddType   application/x-httpd-php   .html     则html也可以执行php程序了;当然也可以按下面的格式将可执行PHP程序的相关的所有扩展名都加进去,比如:
AddType   application/x-httpd-php   .php   .html   .htm   .shtml

找到
DirectoryIndex   index.html
改成
DirectoryIndex   index.html   index.php   index.htm   index.shtml
这里和IIS里面设置访问优先级别差不多,一是定义默认页面及其类型,一是定义访问的页面类型顺序.

找到  
DocumentRoot   "D:wwwApache2.2htdocs"  
和   <Directory   "D:wwwApache2.2htdocs"> ,修改成自定义的默认网页文件存放目录,比如我的是DocumentRoot   "D:/www/root",
对应的   <Directory   "F:/www/root">
这样,Apache基本上也配置好了~

--------------------------------------------


MySQL

1、安装

解压mysql-5.2.3-falcon-alpha-win32.zip得到一个setup.exe安装文件,运行之开始安装MySQL   Server   5.2;
第一步选择安装模式,选择Custom习惯安装,Next进入下一步;
这一步选择安装内容:仍然MySQL   Server完整安装,主要是自定义下面的安装目录,我安装在D:wwwMySQL5.2   点击Next进入下一步;
Install开始安装,稍候会提示注册MySQL.com帐户,SKIP即可;
完成安装,勾选Configure   the   MySQL   Server   now,Finish并进入MySQL配置;

2、配置

完成安装时若勾选了Configure   the   MySQL   Server   now,点击Finish便可直接进入MySQL   Server   Instance   Configuration   Wizard;否则就需要在MySQL安装目录in下找到并运行MySQLInstanceConfig.exe进入设置. 数据挖掘研究院

点Next开始配置,第一步选择配置模式,这里我已经安装了MySQL,所以选择第一种Detailed模式,Next进入下一步;
这一步select   a   server   type,不同的选择决定MySQL占用不同的系统内存和CPU资源,这里我选的是Developer   Machine;
继续Next,选择数据库用途,我选的是Multifunctional多功能型的;
下一步设定InnoDB引擎的存储目录,我设置的是D:wwwMySQL5.2InnoDB   Datafiles,点击Next进入下一步;
设置MySQL数据库的并发连接数,这里需要了解什么是并发连接数,可根据实际情况进行设定.我这里选的是Manual   Setting,并且设置连接数为10000;
Next进入下一步,set   the   networking   options,采用默认的,继续Next;
设置默认语言,选择第三个,设定character为gbk;
Next将MySQL设置为Windows系统服务,采用默认的,Next进入下一步;
选择设置root帐户密码,或者可以同时新建一个匿名帐户Anonymous.值得注意的是设置root密码的下面有一个小选项,是否允许root用户从别的计算机登陆,为了方便可以勾选上,为了安全当然最好就别选;
进入下一步Press   Execute开始配置,完成   Finish   关闭设置向导`~ 数据挖掘研究院
OK!

--------------------------------------------


phpMyAdmin
解压phpMyAdmin-2.10.0.2-all-languages.zip到PHP文件存放目录,比如我是解压到D:www ootphpMyAdmin2.10.0.2的;

打开D:www ootphpMyAdmin2.10.0.2libraries目录下config.default.php文件进行相关配置:
比如我找到   $cfg['PmaAbsoluteUri']   行,将它修改为我phpMyAdmin的网址或本地位置:
$cfg['PmaAbsoluteUri']   =   'http://localhost/phpMyAdmin2.10.0.2/';

设置Host比如我的为本地localhost,也可以为服务器IP地址:
$cfg['Servers'][$i]['host']                     =   'localhost';    

设置
$cfg['Servers'][$i]['auth_type']           =   'cookie';  
这个通常本地调试用config,当然如果在网络中也可以用cookie,我设置的就为cookie;

$cfg['Servers'][$i]['user']                     =   'root';          

数据挖掘研究院


$cfg['Servers'][$i]['password']             =   '';
这两行设置登陆数据库的用户名和密码;

再就是设置默认语言为:
$cfg['DefaultLang']   =   'zh';

下面``重要的,把下面的几行添加到Apache的配置文件httpd.conf中,使得Apache服务器可以加载
#phpMyAdmin:
php_admin_flag   engine   on  
php_admin_flag   safe_mode   off  
Alias   /phpMyAdmin   "D:/www/root/phpMyAdmin-2.10.0.2"  
<Directory   "D:/www/root/phpMyAdmin-2.10.0.2">  
DirectoryIndex   index.php  
Options   Indexes   MultiViews  
AllowOverride   None  
Order   allow,deny  
Allow   from   all  
php_admin_flag   engine   on  
php_admin_flag   safe_mode   off  
php_admin_value   open_basedir   none  

数据挖掘研究院


php_admin_value   open_basedir   "D:/www/root/phpMyAdmin-2.10.0.2"  
</Directory>  

这样,phpMyAdmin也OK了!
注释:
访问http://localhost/phpMyAdmin-2.10.0.2/
如果顺利就会出现phpMyAdmin管理界面了。^_^;如果不顺利的话,有可能会出现下面的错误提示:
Warning:   session_start()   [function.session-start]:  
open_basedir   restriction   in   effect.   File(C:WINDOWSTEMP)   is   not   within   the   allowed   path(s):   (E:/www/root/phpMyAdmin-2.10.0.2)   in  
D:www ootphpMyAdmin-2.10.0.2librariessession.inc.php   on   line   100

Fatal   error:   session_start()   [ <a   href='function.session-start'> function.session-start </a> ]:
  Failed   to   initialize   storage   module:   files   (path:   )   in  
D:www ootphpMyAdmin-2.10.0.2librariessession.inc.php   on   line   100 数据挖掘实验室

如果出现上面的错误提示时,应该在E:wwwphp下找到php.ini文件,
打开php.ini文件,然后找到;session.save_path   =   "/TEMP",去掉前面的分号“;”,
并改为session.save_path   =   "D:www emp"
这个路径可以自己随便定义,它是用来保存session的

--------------------------------------------

最后,Zend

运行ZendOptimizer-3.2.6-Windows-i386.exe,开始安装:Next,确认接受条款;
继续Next,选择安装目录,这里我设置的是D:wwwendOptimizer3.2.6;
Next进入下一步,选择webserver,我们选Apache   2.X;
继续下一步,选择php.ini文件存放目录,我的是D:wwwphp目录,选择好后继续Next;
这一步选择Apache   Server的安装目录,我的是D:wwwApache2.2,继续Next;
确认刚才几步所设置的目录信息是否正确,点Install开始安装,安装的过程中会提醒你关闭Apache   Sever/IIS,关闭后点确认,继续安装,最后完成;
Finish,OK!
============================================

感谢阿,当时用绿色装是为了省事,现在重新装了apache,php作为模块载入,如上所述。mysql还是用绿色装中,它已经做成服务了,暂时也和mysql没有关系



那么,apache最终配置   是以下的,这样出现的白板比较少,
但页面打开速度还慢,具体表现

当访问域名时,底部的状态栏很快就反映,正在查找220.xx....,诸如此类,
但是经常会这样   这个状态保持5秒左右,才可能正式进入页面,就是服务器有数据传回来,title标题头就出现了,然后整个页面显示是很快的
的确,当并发多的时候,这个明显,如果并发少,一访问域名等,立即传回数据
那么是不是web程序造成的,用静态页面和txt这种文件测试,也是一样
那么是不是服务器资源,看任务管理器,2cpu基本上在50%之下,4G内存,空闲2.5G
那么是不是apache并发,就像前面说的,用apache自带的server-statu查看  
一般都是       277       requests       currently       being       processed,       723       idle       workers      
那么这个是不是window2000本身的原因,在80端口没法处理那么多   tcp/ip,这个是否,可以怎样做个测试??
还是   正如有些文章说的   ,apache2调用微软的WinSock2   API有问题??这就是不治之症? 数据挖掘实验室

apache相关的配置

#Timeout:接收和发送前超时秒数
Timeout   300

#KeepAlive:是否允许稳固的连接(每个连接有多个请求),
#设为"Off"则停用。
KeepAlive   On

#MaxKeepAliveRequests:在稳固连接期间允许的最大请求数,
#设为0表示无限制接入。
#我们推荐你将其设为一个较大的值,以便提高性能
MaxKeepAliveRequests   500

#KeepAliveTimeout:在同一个连接上从同一台客户上接收请求的秒数
KeepAliveTimeout   60

ThreadsPerChild   1000
MaxRequestsPerChild     0

MaxRequestsPerChild   0即可...不需要回收..
另外apache   lighttpd这些东西最佳的归宿是*nix...

服务器拿回来,用ab做了下压力测试
500并发   ,重复500次,

2000下   apache日志   立即反复出现         (OS       64)指定的网络名不再可用。           :       winnt_accept:       Asynchronous       AcceptEx       failed. 数据挖掘研究院
页面访问也出现了   连接不上的白板

2003下,一切正常

apahce用的是最新2.2.8  

现在安装了2003,准备过两天放回去,如果还不行,就安装   linux
为什么不直接安装linux,因为洋文不过关,怕麻烦……没想到这次,大年30还在折腾这个事,祝大家新年愉快,祝我一切顺利……

用lighttpd.....测试性能用http_load比ab更好...
别指望apache在win下面有多强..不是那么回事~~~什么时候apache   foundation有把winnt   mpm改成iocp模型那就或许有的一拼....

大家好,呵呵,不容易啊……具体情况是这样的

为了以防万一,安装了2003+redhat   9   as   4   双系统,
然后,出了机房,远端同事电话来,白板是没有了,速度慢,一个页面半天
让朋友远程改一下引导,重启进入   redhat,世界好像清静了

几天看300并发挺快,上600不满意,发现大量的SYN_RECV,搞了搞,现在还好,大家可以测试一下,http://www.dj-dj.net/

Create By Any-Extract(WL-AE)

上一篇:js源代码发送
下一篇:通用加密方法
最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
匿名?