无法访问 laravel public 目录中的图像和文件 - 403 禁止访问 - digitalocean

Cant access images and files in laravel public directory - 403 Forbidden - digitalocean

我在数字海洋 LEMP 上部署了我的 laravel 项目。

我遇到了什么问题?

我遇到的问题是图像、css 和 js 文件未从 public 文件夹中加载。看来我的权限有问题。

我在 Public 文件夹中有这些文件夹:

img, photos, css, js,

检查后我发现这个错误:

Status Code: 403 Forbidden

这是根文件夹权限:

drwxrwxr-x 13 www-data www-data 4096 Nov 9 16:36 laravelproject

项目文件夹权限:

-rw-rw-r--  1 www-data www-data   3851 Nov  9 16:29 README.md
drwxrwxr-x 10 www-data www-data   4096 Nov  9 16:29 app
-rwxrwxr-x  1 www-data www-data   1686 Nov  9 16:29 artisan
drwxrwxr-x  3 www-data www-data   4096 Nov  9 16:29 bootstrap
-rw-rw-r--  1 www-data www-data   2116 Nov  9 16:29 composer.json
-rw-rw-r--  1 www-data www-data 344507 Nov  9 16:29 composer.lock
drwxrwxr-x  2 www-data www-data   4096 Nov  9 16:29 config
drwxrwxr-x  5 www-data www-data   4096 Nov  9 16:29 database
-rw-rw-r--  1 www-data www-data 743285 Nov  9 16:29 package-lock.json
-rw-rw-r--  1 www-data www-data    768 Nov  9 16:29 package.json
-rw-rw-r--  1 www-data www-data   1202 Nov  9 16:29 phpunit.xml
drwxr-xr-x 10 www-data www-data   4096 Nov  9 16:29 public
drwxrwxr-x  9 www-data www-data   4096 Nov  9 16:29 resources
drwxrwxr-x  2 www-data www-data   4096 Nov  9 16:29 routes
-rw-rw-r--  1 www-data www-data    563 Nov  9 16:29 server.php
drwxrwxr-x  5 www-data www-data   4096 Nov  9 16:29 storage
drwxrwxr-x  4 www-data www-data   4096 Nov  9 16:29 tests
drwxrwxr-x 60 www-data www-data   4096 Nov  9 16:31 vendor
-rw-rw-r--  1 www-data www-data    679 Nov  9 16:29 webpack.mix.js

Public 文件夹内容权限:

drwxr-xr-x 5 www-data www-data 4096 Nov  9 16:29 assets
drwxr-xr-x 4 www-data www-data 4096 Nov  9 16:29 backend
drwxr-xr-x 4 www-data www-data 4096 Nov  9 16:29 css
-rwxr-xr-x 1 www-data www-data    0 Nov  9 16:29 favicon.ico
drwxr-xr-x 3 www-data www-data 4096 Nov  9 16:29 fonts
drwsr-sr-x 5 www-data www-data 4096 Nov  9 16:29 img
-rwxr-xr-x 1 www-data www-data 1735 Nov  9 16:29 index.php
drwxr-xr-x 2 www-data www-data 4096 Nov  9 16:29 js
drwxr-xr-x 2 www-data www-data 4096 Nov  9 16:29 langs
-rwxr-xr-x 1 www-data www-data  173 Nov  9 16:29 mix-manifest.json
-rwxr-xr-x 1 www-data www-data   24 Nov  9 16:29 robots.txt
drwxr-xr-x 3 www-data www-data 4096 Nov  9 16:29 vendor
-rwxr-xr-x 1 www-data www-data 1183 Nov  9 16:29 web.config

Nginx 日志

2021/11/09 19:00:57 [error] 48608#48608: *92 access forbidden by rule

万一有人遇到这样的问题。

如果您 运行 正在 Linux,很可能是 read/write 权限问题,要解决这些问题,请执行以下操作:

在执行以下步骤之前,请务必在您的 Laravel 文件夹之外

假设您的用户应该是所有者,请键入以下命令:

sudo chown -R user:www-数据/path/of/your/laravel/project 然后给用户和网络服务器权限如下:

sudo find /var/www/project -type f -exec chmod 664 {} ; 然后 运行:

sudo find /var/www/project -type d -exec chmod 775 {} ; 在你 运行 这些命令之后,转到你的 Laravel 文件夹并将网络服务器权限 read/write 授予你的 bootstrap/cache 和存储文件夹:

sudo chgrp -R www-数据存储bootstrap/cache sudo chmod -R ug+rwx 存储 bootstrap/cache 它不仅可以解决你的问题,还可以解决你的项目安全问题。