Apache 无法通过perl CGI移动文件
我有一个将文件从一个文件夹移动到另一个文件夹的perl脚本。当我手动运行时,它工作正常。但当我从浏览器执行它时,我无法执行。正在获取错误消息 我知道这与CGI环境访问权有关。但是如何将该权限添加到我的perl脚本中。我已经对该文件和文件夹授予了777权限,但仍然不能。请给我一些建议 提前谢谢 这是我的密码Apache 无法通过perl CGI移动文件,apache,perl,unix,Apache,Perl,Unix,我有一个将文件从一个文件夹移动到另一个文件夹的perl脚本。当我手动运行时,它工作正常。但当我从浏览器执行它时,我无法执行。正在获取错误消息 我知道这与CGI环境访问权有关。但是如何将该权限添加到我的perl脚本中。我已经对该文件和文件夹授予了777权限,但仍然不能。请给我一些建议 提前谢谢 这是我的密码 #!/usr/bin/perl use strict; use warnings; use CGI; use File::Copy; print "Content-type: applica
#!/usr/bin/perl
use strict;
use warnings;
use CGI;
use File::Copy;
print "Content-type: application/json\n\n";
my $query = new CGI;
my $name = $query->param('name');
#$name = "WVID21WAAA110200";
my $sdir = "/disk1/advisories/input/unread";
my $tdir = "/disk1/advisories/input/read";
my $file = $sdir."/".$name;
my $tfile = $tdir."/".$name;
my $f = 0;
print "[";
if (-e $file && -f $file)
{
move($file,$tfile) or $f=1;
if(($f==1)){
print "{\"status\":\"failed\",\"message\":\"Access Denied\"}";
}else{
print "{\"status\":\"success\",\"message\":\"File moved\"}";
}
}else{
print "{\"status\":\"failed\",\"message\":\"Invalid file\"}";
}
print"]";
exit 0;
这是因为目标路径文件夹没有执行权限。我补充道,现在一切正常Rajesh查看您的http服务器错误日志文件。从
move
命令到stderr
的任何输出?(如果您记录了…)谢谢@arkascha,这是因为目标路径文件夹没有执行权限。我加了一句,现在很好用。非常感谢。我在第一条评论中提到了目标文件夹权限:-),但再一次:您确实应该注意将权限集限制为实际需要的权限。不要让文件在全球范围内都可写,尤其是在web环境中。但很高兴你解决了你的问题!如果你有一个解决方案,你应该把它作为一个答案。在这种情况下,不仅允许自答,而且鼓励自答。“获取错误消息”。在这种情况下,在问题中包含错误消息将非常有帮助。