似乎无法在PHP中获得mkdir()的正确权限
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了似乎无法在PHP中获得mkdir()的正确权限,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1902字,纯文字阅读大概需要3分钟。
内容图文
![似乎无法在PHP中获得mkdir()的正确权限](/upload/InfoBanner/zyjiaocheng/784/d8fe6cd9d2f048478225c4087e36ff92.jpg)
我有以下简单的脚本来测试PHP中的mkdir()函数:
<?php
$id = rand();
$targetPath = $_SERVER['DOCUMENT_ROOT'] . '/sample_folder/' . $id .'/';
mkdir(str_replace('//','/',$targetPath), 0755, true);
?>
理想情况下,每次在我的web目录/ sample_folder下运行脚本时,这将创建一个随机文件夹. Sample_folder具有755个权限.
我面临的问题是,我一直在运行PHP:mkdir()权限被拒绝的问题.我的sample_folder权限当前设置为chmod 755.
一切我读过的状态不是chmod到777所以请不要建议.
出于测试目的,chmod 777的’sample_folder’目录解决了这个问题,但这又引发了安全问题.关于如何使这项工作还有其他我想念的东西吗?
值得注意的是:我系统上的PHP用户是“apache”;
我在Media Temple专用虚拟服务器上运行PHP 5.3.*和CentOS 5.5以供参考.我还查看了几乎所有关于SO的chmod问题,似乎无法找到符合我的问题的解决方案(除了777个建议).
编辑
在我的服务器上运行ls -la返回:
drwxr-xr-x 2 ftphiddenname psacln 4096 Jan 26 11:24 sample_folder
最后更新
提供的答案非常有用.对于任何寻找其他信息的人,我都会看到这篇知识库文章,虽然它在Media Temple上列出,但我认为这些原则适用于任何最相似的配置:
(dv):Resolve Apache permission errors
解决方法:
原因是脚本需要在sample_folder中写入权限.
我不知道你的实际设置,但我猜你的脚本要么是在世界权限下运行,要么是组权限是5(读4执行1),因为你当前的权限是755(所有者为7,组为5) 5为世界).要将目录写入该文件夹,您的脚本将需要写访问权限.如果您有权访问chown目录,则可以比777更安全地设置它.我的建议是创建一个名为“webgroup”或类似组的组,并将您的webserver用户放入该组.然后,在设置完成后,给予组写权限(770)是合适的.如果您对权限的工作方式有点模糊,最终的设置将是:
sample_folder:由root,group webgroup,770权限拥有
添加正在运行的任何用户apache(或其他Web服务器)作为webgroup
编辑:
在初始帖子中提供了更多详细信息,这意味着您将向webgroup添加用户“apache”.如果您发现设置太困难,或者您没有在服务器上设置完全权限,那么使用其他地方建议的chown让apache拥有该目录也可以.
例如:chown apache sample_folder
这将使apache成为该文件夹的所有者,使其能够访问写入权限(假设它仍然是755)
内容总结
以上是互联网集市为您收集整理的似乎无法在PHP中获得mkdir()的正确权限全部内容,希望文章能够帮你解决似乎无法在PHP中获得mkdir()的正确权限所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。