无法在 Laravel 目录中写入

Cow*_*irl 2 php permissions laravel

在我的服务器中,我收到此错误消息

Unable to write in the "/home/company/blog/public/img" directory
Run Code Online (Sandbox Code Playgroud)

当我尝试在控制器中上传这样的图像时

$file = $request->file('img');
        $name = time() . '-' . $file->getClientOriginalName();
        $file->move(public_path() .'/img/', $name);
        $company = company::where('username', $username)->first();
        $company->images()->create(['path' => "/{$name}"]);
Run Code Online (Sandbox Code Playgroud)

我知道这是关于授予我尝试过的权限

chmod 755 /home/company/blog/public/img
Run Code Online (Sandbox Code Playgroud)

但它仍然不起作用。

我该如何解决这个问题?

shu*_*van 8

当您的服务器使用的用户与您在控制台中使用的用户不同时,这是一种常见情况。您可以拥有www-dataWeb 服务器和user控制台。

755意味着拥有者的完全权限和用户组和其他人的读取+执行权限(阅读本文)。因此,当您chmod 755作为 时user,您授予对 的完全访问权限,user而没有对 的写权限www-data

您必须将目录的所有者更改为您服务器的用户。如果您的服务器的用户是www-data,请使用

sudo chown -R www-data:www-data /home/company/blog/public/img