2006-09-20

“完美”解决在学校使用Dr.com上网后,Apche服务无法开启的问题

  经过测试与改进,这个方法可以完美的解决在学校使用Dr.com上网后,Apche服务无法开启的问题;之所以完美打上引号,是因为这个方法本身还很不完美,操作起来繁琐,有待于继续研究。下面先贴出中南民大的jackylei研究出来的方法。然后红字是我的改进。我还打了电话给学校的网络管理员,麻烦他们去询问下城市热点的官方怎么解决这个问题,不过学校的效率嘛。。。。。。能自力更生还是自力更生吧。
  

再议DrCom上网客户端与Apach冲突问题


从9月10号开始原先的解决方法已经不行了,原文,经过一个晚上的苦战,终于有所小成,虽然未能彻底解决,但可实现两不冲突。
发现:
安装Drcom前后修改了注册表两处重要位置(与Apache有关)
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\WinSock2
\Parameters\
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WinSock2
\Parameters\
在已运行Apache的条件下,再安装Drcom,两者可共存,重起Apache后就不行。
思路:
分别导出Drcom安装前后修改的两处注册表项
每次要用Apache前
先导入Drcom安装前的两处注册表项
再运行Apache
最后再导入Drcom安装后的两处注册表项


解决:
1.卸载Drcom;
2.导出两处注册表项
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\WinSock2
\Parameters\
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WinSock2
\Parameters\
合并命名为Apache.reg
2.安装Drcom,并运行.在弹出是否重起的提示中,选择“取消”;
(我注:这第二步,在我们学校这个dr.com3.13的版本中,如果不重启机器,仅仅是重新再开一遍,会出现可以ping的通,但是firefox、msn、gtalk等等都不可用的问题,所以下面的有些步骤我就做了修改,否则会导致每次开机上网,都必须重启一次。。。。而如果复制重启之后的相关注册表键值,复原之后还会出现提示“重启”的对话框,所以我觉得有可能是新版本又做出了改进,这也催生了我下面的改进。)
3.删除Drcom目录下的TcpipDog.dll;(建议,可不做)
(我注:试验后,这删了也没用,他会自检然后重新安装,大概这是新版本为了防止偷改相关的tcpipdog0.dll、tcpipdogR0.dll等等文件,做出的改进。)
4.导出两处注册表项
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\WinSock2
\Parameters\
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WinSock2
\Parameters\
合并命名为Drcom.reg
5.制作批处理文件
打开记事本写入
echo 正在导入Apache.reg...
regedit /s Apache.reg
echo 正在运行Apache...
start %ApachePath%\Apache.exe (这句我改成了“start G:\Apache2.2\bin\httpd.exe -w -n "Apache2.2" -k restart” {去掉最外面的两个双引号。}这是restart Apche服务的命令,当然路径要自己改下。)
echo 正在运行MySQL...
start %mysqlPath%\mysqld-opt.exe --defaults-file %mysqlPath%\my-small.cnf (这一句我没有加,因为发现mysql可以正常启用的。)
echo 正在导入Drcom.reg...
pause
regedit /s Drcom.reg

保存为start.bat
以上%%之间的为参数,根据情况更改;
注意倒数第二行的"pause"一定要有,因为只有运行Apache需要一定时间,所以要停一会,在导入Drcom.reg;

(我注:下面这一步,千万不能做。此操作目的是,以后每次开机之后,自动先运行Apache服务,然后再复原注册表,但是试验以后,就算复原注册表,再打开Dr.com,它还是提示驱动安装完成需要重新启动机器。~所以正确的做法应该是,把Start.bat复制个快捷方式到桌面上,然后先打开Dr.com正常登陆上网,再运行Start.bat开启Apache服务。然后在你关机之前,先退出Dr.com程序,因为你修复过regedit了,所以此时再打开Dr.com时,它又会弹出来是否重启。嘿嘿,按“否”,然后关机吧。那下次开机,又可以直接登录,然后重复以上操作了。这就是我说这个办法还不完美的地方,比较繁琐呐。~
6.制作自启动
将三个文件拷贝到同一目录下,例:C:\apache\
在注册表
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\
Run
新建字符串值,命名apache,值为C:\apache\start.bat

2 Comments:

匿名 said...

好象这个方法也原作者也没有说是完美的啊!好象还说了方法不怎么好!
不管方法怎么样能用apache就可以了,但是我现在还是不能用,我用的是wapm套件,按照你们说的方法,还是不能用,不知道是不是我搞错了,还有什么好的方法没有?
期待中...
我的邮箱:ahui86516@163.com

nAODI said...

您好,感谢您的留言呵。关于这个在drcom下面运行apache的方法,实际上也是很无奈的解决方法。所以我在那个"完美"上打了引号呐,因为通过这个方法的确可以正常的启动apache,但是方法本身还很不完美,不过这是因为drcom私自修改了xp关键文件的问题,我们也无能为力。
  而关于你用wapm套件,我本身并不熟悉,去google下,发现大概是一种集成安装apache+php+mysql的套件吧?这样的话虽然你安装方便了,但是许多配置都是集成好的,所以建议你可以向wapm发帖询问解决方法。
  另外,其实自己配置一套apache+php+mysql更好,这样的话所有的配置都可以自己控制。我写过一篇配置的文章,有兴趣的话,你可以按我的方法配置( http://ppeddy.blogspot.com/2006/08/windowsxp-sp2apache222php514mysql5022ph.html ),那样是肯定可以在drcom下运行apache的。