当文件大小大于 2mb 时,Laravel 文件上传失败

Nic*_*dze 7 php nginx amazon-ec2 amazon-web-services laravel

我昨天推出了一个早期测试网站。这是 vrep.io,我遇到了一个奇怪的问题。当上传大于 2mb 的图像(用户头像)时,laravel 验证器会返回“validation.uploaded”错误消息。

验证器代码:

protected function basicValidator( array $data ) {
    return Validator::make( $data, [
        'name'        => 'required|min:2|max:255',
        'occupation'  => 'max:255',
        'avatar'      => 'mimes:jpeg,png,gif|dimensions:min_width=500,min_height=500|max:8000',
        'drop-avatar' => 'in:1,0',
    ],
        [
            'avatar.mimes'      => 'Uploaded file format should be jpeg, jpg, png or gif.',
            'avatar.dimensions' => 'Image should have minimum 500x500px dimensions.',
            'avatar.max'        => 'Maximum allowed file size is 6 MB.',
        ] );
}
Run Code Online (Sandbox Code Playgroud)

我更改了当前的 php.ini 文件参数:

upload_max_filesize   100M
post_max_size         100M
memory_limit          256M
Run Code Online (Sandbox Code Playgroud)

它在AWS EC2实例上运行。UBUNTU 16.04 和 Nginx。

我还对 nginx 配置文件进行了更改:

$ sudo vim /etc/nginx/sites-available/default

client_max_body_size 100m;
Run Code Online (Sandbox Code Playgroud)

重新启动了nginx和php,甚至重新启动了整个Web服务器。没有效果。上传大于 2mb 的文件时仍然出现同样的错误。

ps 我在本地运行 homestead,文件上传工作没有任何问题。问题仅出现在生产服务器上。

我在那里错过了什么?

Nic*_*dze 6

我不知道如何,但即使我一整天都在寻找答案,我终于在发帖后几分钟内找到解决方案。SO 上发生了一些魔法。所以我编辑了错误的 php.ini 文件。我正在通过 ssh 检查哪个 php ini 文件是这样使用的:

$ php --ini
Run Code Online (Sandbox Code Playgroud)

但它在那里显示了错误的文件。由于某种原因,实际配置文件有所不同。

现在我转储了 php 信息:

<?php
phpinfo();
?>
Run Code Online (Sandbox Code Playgroud)

找到实际的配置文件,一切正常。希望这会对某人有所帮助。