6

在过去的两个小时里一直在拔头发,我确信我在做一些非常愚蠢的事情。

<?php
mkdir("blah", 0777);
?>

这通过命令行工作,并创建文件夹。但是当我尝试通过浏览器运行它时,同样的事情不起作用。任何文件权限问题?

4

3 回答 3

11

可能是在命令行下运行时,脚本继承了您的权限,但从浏览器运行时却没有?

在这种情况下,您可能希望为组设置目录权限“写入”。

于 2010-02-07T03:59:30.800 回答
3

您的 Web 服务器(apache?)以它自己的用户身份运行,并且无权写入您正在运行 mkdir 的目录。

授予您的 Web 服务器的用户写入目录的权限,方法是 A) 使其成为所有者,B) 如果组具有写入权限,则将其添加到组中,或 C) 授予每个人写入权限(不建议在大多数设置中使用)。

于 2010-02-07T04:13:23.793 回答
0

你可以试试umask,当 PHP 被用作服务器模块时,每个请求完成后都会恢复 umask。

$old = umask(0); 
mkdir($path,0777); 
umask($old); 
于 2015-01-15T11:38:13.847 回答