无法访问 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
它不仅可以解决你的问题,还可以解决你的项目安全问题。
我在数字海洋 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 它不仅可以解决你的问题,还可以解决你的项目安全问题。