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

时间:2017-01-17 18:09:00

标签: php laravel amazon-web-services nginx amazon-ec2

我昨天推出了一个早期测试网站。这是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.',
        ] );
}

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

upload_max_filesize   100M
post_max_size         100M
memory_limit          256M

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

我也在nginx配置文件中进行了更改:

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

client_max_body_size 100m;

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

P.S。我在本地运行宅基地,文件上传工作没有任何问题。问题仅出在生产服务器上。

我在那里错过了什么?

2 个答案:

答案 0 :(得分:3)

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

$ php --ini

但它显示错误的文件。实际配置文件因某种原因不同。

现在我转储了php信息:

<?php
phpinfo();
?>

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

答案 1 :(得分:0)

有时您安装php-fpm,并且必须更改它的特定ini。 查找文件的更好方法是使用“ locate”命令:

$ locate php.ini

/etc/php5/cgi/php.ini
/etc/php5/cli/php.ini
/etc/php5/fpm/php.ini

现在,如果您安装了php-fpm,则必须在fpm文件夹中更改php.ini。