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,文件上传工作没有任何问题。问题仅出现在生产服务器上。
我在那里错过了什么?
我不知道如何,但即使我一整天都在寻找答案,我终于在发帖后几分钟内找到解决方案。SO 上发生了一些魔法。所以我编辑了错误的 php.ini 文件。我正在通过 ssh 检查哪个 php ini 文件是这样使用的:
$ php --ini
Run Code Online (Sandbox Code Playgroud)
但它在那里显示了错误的文件。由于某种原因,实际配置文件有所不同。
现在我转储了 php 信息:
<?php
phpinfo();
?>
Run Code Online (Sandbox Code Playgroud)
找到实际的配置文件,一切正常。希望这会对某人有所帮助。