1

我将 Apache 安装在它的默认目录下C:\Program Files\Apache Software Foundation\Apache2.2。在安装过程中,Apache2.2创建了一个服务。

当以具有管理员权限的用户身份使用Apache Monitor应用程序或 Windows服务工具时,我能够毫无问题地启动和停止该服务,它为网站提供服务,一切似乎都运行良好。

出于安全原因,我想从具有有限权限的用户帐户启动 httpd 服务器。

在深入研究了一些文档并使用ProcessMonitor调试任何文件和注册表访问问题后,我认为我获得了文件和目录的权限 - 只有少数对 C:\ 和 EventLog 注册表项的访问失败时出现在 ProcessMonitor 中试图启动服务。

但是,它失败并显示错误消息

Windows 无法在本地计算机上启动 Apache2.2。有关详细信息,请查看系统事件日志。(...)

此事件日志显示以下消息:

(20024) 给定路径格式错误或包含无效字符:配置文件路径无效 C:\Program Files\Apache Software Foundation\Apache2.2\conf\httpd.conf

因为我读到 httpd 不接受反斜杠(尽管它们似乎在由具有管理员权限的用户启动时工作),所以我将服务的参数更改为使用正斜杠、带引号、不带引号、删除它们、使它们相对(在为了从它们中删除空格),例如../conf/httpd.conf和其他变体,但到目前为止还没有成功。

4

1 回答 1

1

Apache 网络服务器似乎从C:\层次结构开始遍历所有目录,直到到达它找到的目录httpd.conf。对于这个问题,这些目录是:

C:\
C:\Program Files\
C:\Program Files\Apache Software Foundation\
C:\Program Files\Apache Software Foundation\Apache2.2\
C:\Program Files\Apache Software Foundation\Apache2.2\conf\

为了解决这个问题,所有这些目录都需要为执行的用户帐户设置List Folder Contentshttpd权限。

因此,它在事件日志中给出的错误消息具有误导性,路径是正确的。

为了避免更改所有这些文件夹的权限设置,我建议将 Apache 安装在 的直接子目录中C:\,例如C:\Apache2.2\.

于 2012-06-16T03:54:03.263 回答