mkdir():通过XAMPP/Apache运行php时权限被拒绝

mkdir():通过XAMPP/Apache运行php时权限被拒绝,php,apache,permissions,xampp,mkdir,Php,Apache,Permissions,Xampp,Mkdir,我在使用mkdir()上传PHP项目中的图像时遇到问题。创建任何目录的权限被拒绝。当我在不使用Apache和mac上内置的php-S服务器的情况下尝试此操作时,目录的创建不会带来任何麻烦 if (!is_dir('images')) { mkdir('images'); } if ($image && $image['tmp_name']) { $imagePath = 'images/' . randomString(8) . '/' . $image

我在使用
mkdir()
上传PHP项目中的图像时遇到问题。创建任何目录的权限被拒绝。当我在不使用Apache和mac上内置的
php-S
服务器的情况下尝试此操作时,目录的创建不会带来任何麻烦

if (!is_dir('images')) {
    mkdir('images');
  }

  if ($image && $image['tmp_name']) {
    $imagePath = 'images/' . randomString(8) . '/' . $image['name'];
    mkdir(dirname($imagePath));
    move_uploaded_file($image['tmp_name'], $imagePath);
  }
我不断在上面的代码中发现这些错误:

警告:mkdir():权限被拒绝
警告:移动上传的文件(images/KhqnrHx0/image.png):无法打开流
警告:移动上传的文件():无法将“/opt/lampp/temp/phpmYtqa7”移动到“image.png”

当我运行
时,结果返回的是守护进程而不是用户名,因此我假设这就是权限不断被拒绝的原因,但我不知道如何安全/正确地更改权限


有人能解决这个问题吗?

你猜到了:权限问题。如何设置权限取决于您的环境,而您并没有告诉我们太多

我看到您已经有了/opt/lampp,因此我正在设计一个linux堆栈。但是哪种口味?森托斯?Debian?小狗Linux?谁知道呢


现在让您了解最新情况需要转到您想要创建映像目录的目录,并将其所有者设置为(您的apache用户),权限设置为755。这将使第一位工作。然后您需要设置umask。

您需要授予脚本使用该目录的权限,就像在Linux中,我们将www数据分配为用户和组到该目录一样。