在过去的2个小时里,我一直在拔我的头发,我确信我在做一些非常愚蠢的事情。
<?php mkdir("blah", 0777); ?>
这通过命令行工作,文件夹被创建。但是当我试图通过浏览器运行它时,同样的事情也不起作用。有文件权限问题吗?
8mmmxcuj1#
有没有可能在命令行下运行时,脚本继承了您的权限,但在浏览器中运行时却没有?在这种情况下,您可能希望将组的目录权限设置为“写”。
jmp7cifd2#
您的Web服务器(Apache?)以自己的用户身份运行,并且没有写入运行mkdir的目录的权限。通过以下方式给予Web服务器的用户写入目录的权限:A)使其成为所有者,B)如果组具有写入权限,则将其添加到组,或者C)授予Everyone写入权限(不建议用于大多数设置)。
x33g5p2x3#
你可以尝试使用umask,当PHP被用作服务器模块时,当每个请求完成时,umask被恢复。
umask
$old = umask(0); mkdir($path,0777); umask($old);
zbq4xfa04#
linux注意:要使(mkdir)代码在linux中运行,您需要通过sudo chmod a+w [file/path]或将premision a+rwx添加到此文件
sudo chmod a+w [file/path]
sudo chmod a+rwx [file/path]
4条答案
按热度按时间8mmmxcuj1#
有没有可能在命令行下运行时,脚本继承了您的权限,但在浏览器中运行时却没有?
在这种情况下,您可能希望将组的目录权限设置为“写”。
jmp7cifd2#
您的Web服务器(Apache?)以自己的用户身份运行,并且没有写入运行mkdir的目录的权限。
通过以下方式给予Web服务器的用户写入目录的权限:A)使其成为所有者,B)如果组具有写入权限,则将其添加到组,或者C)授予Everyone写入权限(不建议用于大多数设置)。
x33g5p2x3#
你可以尝试使用
umask
,当PHP被用作服务器模块时,当每个请求完成时,umask被恢复。zbq4xfa04#
linux注意:要使(mkdir)代码在linux中运行,您需要通过
sudo chmod a+w [file/path]
或将premision a+rwx添加到此文件