Perl中的权限被拒绝问题-需要解决方案



我在使用Perl:创建目录时遇到问题

$country = 7;
$city = 12;   
$uploadFolder = "/opt/v-hosts/user/html/images/h_photos/ls";
$destination = $uploadFolder;
mkdir($destination) if(!-e $destination);
$destination .= "/$country";
mkdir($destination,0755) if(!-e $destination);
$destination .= "/$city";
mkdir($destination,0755) if(!-e $destination);

当我尝试执行此代码时,它应该创建以下目录:

/opt/v-hosts/user/html/images/h_photos/ls/7/12

不幸的是,代码返回一个错误:

mkdir/opt/v-hosts/user/html/images/h_photos/ls/7:在/opt/v-hosts/user/epbin/ls.cgi行1376处拒绝权限。\n

我试图将ls文件的权限更改为777,但没有解决问题。

这不是Perl错误。/opt文件夹或某个子文件夹不可由负责Apache或CGI进程的系统用户写入。

$ perl -e 'use File::Path; $d=22; $city=7; mkpath "/tmp/moo/fooo/$city/$d";'
$ file /tmp/moo/foo/7/22
/tmp/moo/foo/7/22: directory

要修复您的权限,请使用chown。例如:

$ ssh localhost chown apachDaemonUser /tmp/random

最新更新