2013-02-12 112 views
2

我想在我的PHP脚本执行以下代码:PHP的mkdir不工作 - 可能与Mac的本地主机

if (!is_dir($path . 'channel-partners/html/intro-letter/' . $name_url)) { 
     mkdir($path . 'channel-partners/html/intro-letter/' . $name_url, 0777, true); 
} 

$name_url在运行时传递的字符串。当我尝试在我的Mac本地主机上执行此操作时,我获得了许可。我想知道这个问题不是我的脚本,而是Apache在我的Mac上设置的方式。我是否需要做一些特别的事情来配置Apache以允许它创建文件和创建目录(这里没有显示创建文件)?

+0

它是Apache用户组,它需要权限来创建文件和文件夹。 – 2013-02-12 19:58:00

+0

'mkdir'函数返回'false'? – user20232359723568423357842364 2013-02-12 19:58:06

+0

@ Damien - 我如何设置用户组有权限? – sehummel 2013-02-12 19:58:41

回答

0

您应该将apache用户的适当权限设置为目标文件夹。

+0

需要权限的文件夹是'channel-partners/html'。我怎么做? – sehummel 2013-02-12 20:01:33

+0

在带有chmod命令的终端或osX上的文件夹的信息视图(读写所有人) – 2013-02-12 20:04:30

+0

'chgrp'将如上所述工作吗? – sehummel 2013-02-12 20:05:11

3

Apache正在运行的用户或组需要具有对父目录的写入权限。在Mac上的Apache默认安装运行在用户&组名为_www,所以

chgrp -R _www /the/parent/directory/here应该做的工作。有关更多信息,请参阅man chmodman chownman chgrp

+0

这是一个终端命令吗? – sehummel 2013-02-12 20:04:06

+0

对不起,是的。该命令将使_www为/ the/parent /目录中的组成员,因此该组也需要具有对文件夹的写入权限。可能值得你查找Unix权限结构。 – juco 2013-02-12 20:05:41

+0

Gotcha。谢谢,@juco。 – sehummel 2013-02-12 20:06:00