【问题标题】:Why I can't create directory with php mkdir()?为什么我不能用 php mkdir() 创建目录?
【发布时间】:2015-05-02 14:13:27
【问题描述】:

当我使用mkdir($path, 0755); 创建新目录时出现错误:

警告:mkdir() [function.mkdir]: Permission denied in /home/u235555603/public_html/vacancies/index.php on line 51

在“职位空缺”目录中,我拥有 755 项权利。

我该怎么办?

感谢您的帮助。

【问题讨论】:

  • "在目录 "vacancies" 我有 755 个权限。" - 运行 Apache 的帐户是否具有相同的权限?
  • 警告本身表明该文件夹没有足够的权限...授予该文件夹的权限,然后执行此操作..
  • 使用此更改权限... chmod 777
  • @phpfresher 当我尝试在 FileZilla 中更改为 777 时,它会将它们恢复为 755。
  • 我建议确保 web 服务器组是文件夹权限的组,而不是登录用户的组,或者使用完整的 acl 系统

标签: php mkdir


【解决方案1】:

正如其他人所说,确保您的目录可由运行您的网络服务器的用户写入。对于*nix下的apache,可以这样做:

ps aux | egrep 'apache|http|nginx'

然后在第一列中查找用户名。

关于在 PHP 中安全地创建目录,请在尝试创建目录之前检查is_writable($parentDir) 的结果。见is_writable

【讨论】: