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