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