使用的是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 0MaxRequestsPerChild 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/

