Laravel文件上传返回禁止403,文件权限是700不是755

问题描述 投票:0回答:2

我正在使用 Laravel 并将文件上传到文件夹 使用此代码:

$request->file('file')[$key]->storeAs('public/' . $model[0] . '/' . $data['id'], $name);

我已经运行过这个命令:

php artisan storage:link

在本地主机上一切正常,但是当我将其上传到 cpanel 时出现此错误:

Forbidden

You don't have permission to access this resource. 
Server unable to read htaccess file, denying access to be safe
Additionally, a 403 Forbidden error was encountered while trying to use an ErrorDocument to handle the request.

我检查了上传的文件是否有权限

700
,而不是
755
像文件夹
$model[0]
.

我该如何解决这个问题?

我的

.htaccess
档案:

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews -Indexes
    </IfModule>

    RewriteEngine On

    # Handle Authorization Header
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} (.+)/$
    RewriteRule ^ %1 [L,R=301]

    # Send Requests To Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>
php laravel apache
2个回答
0
投票

作为测试,将您的

.htaccess
文件权限设置为 666。我打赌它会起作用。然后重置为 640,将
.htaccess
的所有权更改为
root
,在您的 Apache httpd 配置中查找
Group
设置并将组更改为 Apache 配置中的
Group
设置。

这可以防止除 root 之外的任何人修改您的

.htaccess
文件,但允许 Apache 读取它。

您还应该确保您的 Laravel 存储目录可由 Apache

User
Group
写入。


-2
投票

.htacces 文件:Chmod(至 755)是一种选择。

另一个是将Chown的所有者或组更正为Web服务器的所有者或组。 在标准设置中大多称为“www-data” 外壳:chown www-data .htaccess(所有者) 或 Shell:chown root.www-data .htaccess(组) 或两者 Shell:chown www-data.www-data .htaccess (Owner&Group)

但是您的错误可能与上传文件的文件权限有关

也许您还必须定义可见性并将其应用于上传的文件。 看看: https://laravel.com/docs/10.x/filesystem#file-visibility

© www.soinside.com 2019 - 2024. All rights reserved.