在过去的2个小时里,我一直在拔头发,并确定我做的事情非常愚蠢。
<?php
mkdir("blah", 0777);
?>
这可以通过命令行工作,并创建文件夹。但是当我尝试通过浏览器运行它时,同样的事情不起作用。任何文件权限问题?
答案 0 :(得分:11)
可能是在命令行下运行时,脚本会继承您的权限,但是从浏览器运行时它不会吗?
在这种情况下,您可能希望将目录权限设置为“写入”。
答案 1 :(得分:3)
您的网络服务器(apache?)正在以其自己的用户身份运行,并且无权写入您正在运行mkdir的目录。
授予您的Web服务器用户写入目录的权限A)使其成为所有者,B)如果该组具有写入权限则将其添加到组,或C)授予Everyone写入权限(不建议用于大多数设置) 。
答案 2 :(得分:0)
您可以尝试umask
,当PHP被用作服务器模块时,每个请求完成后都会恢复umask。
$old = umask(0);
mkdir($path,0777);
umask($old);