我在使用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