读取文件时,Windows / Apache / Perl / CGI“访问被拒绝”

自从我开始进行严重的系统pipe理和开发工作(所有* nix)以来,我一直没有在Windows机器上做过任何事情。 所以我可能会问一些简单的问题 – 但我还没有通过searchfind答案。

我有Windows Server 2008运行Apache 2.2。 我可以运行在cgi-bin目录中的“printenv.pl”perl脚本以及Apache安装就好了…

但是,使用脚本执行以下操作:

#!c:\perl\bin\perl.exe print "Content-Type: text/plain; charset=iso-8859-1\n\n"; print `type C:\\Some\\Dir\\file.txt`; 

我的Apache日志只是说:

 [Tue Jun 22 13:13:55 2010] [error] [client 68.230.22.34] Access is denied.\r 

我可以从DOS提示符运行相同的perl脚本 – 所以我知道它适用于我的用户。 我可以在任务pipe理器中看到httpd.exe正在用户系统中运行,所以我确信file.txt对SYSTEM可读。 我甚至在任何时候都让所有人都可读 – 但是我仍然得到了“访问被拒绝”的错误。

谢谢…

你确定用户'SYSTEM'可以执行perl.exe吗?

那么 – 事实certificate, C:\some\dir\file.txt文件已被encryption。 我花了一段时间,但我终于开始怀疑:“为什么在绿色文本文件夹”在Windows资源pipe理器。 我不知道为什么,但我复制了一个zip文件,当他们提取他们被encryption。 只要我把它closures,perl脚本就可以读取。