解决ueditor上传图片报Nginx 502 bad gateway问题

项目放到LNMP环境的服务器下,发现ueditor无法上传图片,最开始的问题是页面报“后端配置项没有正常加载,上传插件不能正常使用”。

当时Nginx的日志报的是:FastCGI sent in stderr: "Access to the script '/***/static/js/ueditor/php' has been denied (see security.limit_extensions)" while reading response header from upstream, client: ***, server: ***, request: "GET /static/js/ueditor/php/controller.php?action=config&&noCache=*** HTTP/1.1", upstream: "fastcgi://unix:/tmp/php-cgi.sock:", host: "***", referrer: "http://***/***.html"

百度过各种方法,包括修改ecurity.limit_extensions参数、Chongqing大小写问题、填写config.json绝对路径等等,均无变化。

后来重新修改了Nginx配置,在fastcgi.conf文件开头,添加以下

fastcgi_split_path_info       ^(.+\.php)(/.+)$;
fastcgi_param PATH_INFO       $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;

重启生效,ueditor正常出现“点击选择图片”按钮。

选择图片,开始上传时,又发现了新的问题,页面提示上传失败,http://localhost/static/js/ueditor/php/controller.php?action=uploadimage&encode=utf-8返回Nginx 502 bad gateway。

此时Nginx的日志报的是:recv() failed (104: Connection reset by peer) while reading response header from upstream, client: ***, server: ***, request: "POST /static/js/ueditor/php/controller.php?action=uploadimage&encode=utf-8 HTTP/1.1", upstream: "fastcgi://unix:/tmp/php-cgi.sock:", host: "***", referrer: "http://localhost/static/js/ueditor/dialogs/image/image.html"

又是尝试了各种方法什么图片路径、什么pm.max_children、request_terminate_timeout各种参数,毫无变化。

后来才发现图片其实是上传成功了,在服务器上是能找到的,只是提示上传失败;发现了这一点,才找到了解决方法。

修改Uploader.class.php文件:

将以下内容iconv('unicode', 'utf-8', $this -> stateMap['ERROR_TYPE_NOT_ALLOWED'])
替换为mb_convert_encoding($this->stateMap['ERROR_TYPE_NOT_ALLOWED'],'utf-8','auto')

OK,终于成功了。

reference:

https://www.jianshu.com/p/5afc7aaa4bac

猜你喜欢

转载自blog.csdn.net/huangyw888/article/details/89674958