我有这个:
<?php
$oldmask = umask(0);
mkdir("test", 0777);
umask($oldmask);
?>
但收到错误
Warning: mkdir(): Permission denied in /Applications/XAMPP/xamppfiles/htdocs/add/add_site.php on line 27
我使用XAMPP在Mac OSX El Capitan上。
答案 0 :(得分:1)
因此,假设您通过Apache调用脚本,则apache用户必须具有在目录上写入的权限。
为了做到这一点,首先你必须找到运行apache的用户,为此你可以使用:
ps aux | grep http
或
ps aux | grep apache
当您找到apache用户时,您可以为apache创建一个可写目录:
mkdir /Applications/XAMPP/xamppfiles/htdocs/add/apachedir # create a directory for apache
# for the line below, replace apache:apache by your apache user:group.
chown apache:apache /Applications/XAMPP/xamppfiles/htdocs/add/apachedir # give directory ownership to apache user
现在,如果您编辑脚本:
mkdir("./apachedir/test", 0777);
一切都应该有效。
然后我建议您在将目录权限更改为777时要小心,这意味着每个人都可以在文件夹中读/写。这在大多数情况下是一种不好的做法,并且当这个文件夹是apache webroot的儿子时很关键(任何用户都可以在这个目录中写入并且可以使用apache权限运行他们的代码)。
答案 1 :(得分:0)
您必须在xampp中为您提供htdocs目录的完全权限。