如果你从第三方模块、ISAPI或者其他像ActiveState Perl那样的附加脚本技术使用了COM或者DCOM,你可能还需要在DependOnService列表中加入Rpcss条目。为了避免不必要地暴露TCP端口135,Apache安装时没有创建那个条目。如上述步骤在找到或是创建数值名称DependOnService,双击它并加入Rpcss条目到列表。
运行Apache服务的用户帐号(NT/2000)
当Apache第一次被安装为服务(例如使用-i选项),它会以用户"System"(本地系统账号)运行。 如果web服务器的所有资源都在本地系统上,这样做会问题比较少,但是将会具有很大的安全权限来影响本地机器!
本地系统账号是一个很有特权的本地账号,因此你不应该用它运行任何共享软件应用程序。 但是,它没有网络权限,不能通过任何NT安全机制离开本地机器,包括文件系统、命名管道、DCOM或secure RPC。
永远不要把网络权限授予SYSTEM账号!创建一个新的用户帐号来代替它, 给这个用户授予合适的权限,并使用"Log On As:"选项。选择开始菜单 -> 设置 -> 控制面板 -> 服务 -> apache服务 ...并点击"启动服务"来访问该设置
一个运行在本地系统账号背景中的服务继承了SCM(服务控制管理器)的安全背景,与任何已登录账号都没有关联,也没有用于验证的任何证书(域名、用户名和密码)。
SYSTEM账号没有网络权限,因此对于服务一个Apache的共享安装实例或者共享页都是不可见的。如果你打算使用任何网络资源,下面的步骤应该有所帮助:
在控制面板的服务对话框中选择Apache并点击启动服务。
证实服务的账号是正确的。你可能希望为Apache服务创建一个账号。
重新输入密码和确认密码。
转到域的用户管理。
从标题栏菜单点击策略,选择用户权限。
选择高级用户权限选项。
在下拉列表中,确认以下权限已授予选择的账号:
作为操作系统一部分运行
备份文件和目录
作为服务登录
还原文件和目录
确认选择的账号是user组的成员。
确认选择的账号获得了访问所有文档和脚本目录的权力(最少需要读取和浏览访问)。
确认选择的账号对Apache日志目录有读/写/删除访问权限!
如果你允许使用这个帐号登录为一个用户,你就可以自己登录上去测试执行脚本、读取web页的权限,还可以用控制台窗口启动Apache。如果这样工作正常,你又执行了上述的操作,那么Apache就能够正常地作为服务运行了。
错误代码2186是一个很好的提示,说明你需要检查"log On As"选项,因为服务器不能访问必要的网络资源。
Apache for Windows作为服务运行的故障分析
当启动Apache为服务的时候你可能会遇到一个来自Windows服务管理器的错误信息。 例如,如果你想使用控制面板中的服务小程序启动Apache,可能会得到下面这条信息:
Could not start the apache service on \\COMPUTER
Error 1067; The process terminated unexpectedly.
启动Apache时一出现问题你就会得到这个错误信息。为了弄清是什么引起了错误, 你应该遵循从命令行运行Running Apache for Windows中的建议。
还有,如果Apache作为服务运行,Apache 1.3.13 目前在Windows NT/2000下把启动错误记录在应用程序事件日志里。 运行事件察看器并选择应用程序日志检查相应纪录。
即使没有错误信息弹出警告你发生了错误,也应该用事件查看器检查应用程序日志以防有错误发生。 |