【发布时间】:2016-09-03 17:07:56
【问题描述】:
我一直在尝试为应用程序创建日志文件,在 Apache 服务器中使用 Perl 和 CGI。出于这个原因,脚本需要保留一个日志文件,该文件必须在脚本启动时打开。从我得到的日志中:Unable to open the file: Permission denied at /usr/lib/cgi-bin/generate_logs.cgi,脚本如下:
#!/usr/bin/perl
use CGI qw(:standard);
print "Content-type: text/plain\n\n";
...
open (my $logs, ">", "/path/to/directory/logs.txt") || die "Unable to open the file: $!";
...
我一直在尝试为.txt 日志文件使用非根路径,例如~/Desktop,但脚本仍然无法创建/打开日志文件。如果您需要更多信息,请随时问我。提前致谢
【问题讨论】:
-
文件本身的 UID:GID 是什么,充当 Web 服务器的用户的名称是什么?
-
@stevieb,也许我错了,但如果脚本尝试打开文件时文件不存在,难道不应该创建文件吗?
-
那么你的问题是什么?正如错误所说,脚本运行的用户+组无权在
/path/to/directory中创建文件。要么将apache配置为使用不同的用户+组,要么更改权限,以便现有用户+组可以访问目录并创建文件。