【问题标题】:When trying to mkdir() in a directory with 777 permissions I get permission denied当尝试在具有 777 权限的目录中执行 mkdir() 时,我得到权限被拒绝
【发布时间】:2019-06-24 12:56:51
【问题描述】:

运行时

$id = mysqli_num_rows($resultSelect) + 1;
    $uploadDir = "/projects/$id/";
    mkdir($uploadDir,0777,true);

我得到错误

Warning: mkdir() [function.mkdir0]: Permission denied in /var/www/devx.online/html/php/newProject.php on line 9

目录由 www-data 所有,组为 www-data。测试的权限是 777,甚至权限仍然被拒绝。我正在使用 Apache2 运行 Ubuntu 18.04 LTS。

【问题讨论】:

  • 请运行此命令授予目录权限:sudo chmod -R 0777 uploads
  • @PHPGeek 我已将 777 分配给从 /var/www 到 /projects 的所有目录,也都归 www-data 所有。
  • 您确定在文件系统根目录下有一个/projects 文件夹,并且具有全局可写权限吗?
  • @mario 就是这样,谢谢。 Ctrl+H 不假思索。

标签: php ubuntu permissions apache2 mkdir


【解决方案1】:

=> 运行此命令,您不需要将权限设置为 777,因为它已授予访问权限。

chown -R www-data:www-data /path/to/webserver/www

接下来启用 www-data 组的所有成员读写文件

chmod -R g+rw /path/to/webserver/www

希望它有效。

【讨论】:

    【解决方案2】:

    我的目录结构不正确。它应该是$uploadDir = "../projects/$id/" 而不是$uploadDir = "/project/$id/"。谢谢马里奥。

    【讨论】:

      猜你喜欢
      • 2018-09-07
      • 1970-01-01
      • 2012-05-03
      • 2016-08-24
      • 2013-07-01
      • 2012-08-13
      • 1970-01-01
      相关资源
      最近更新 更多