在virtualenv中使用Wagtail(Django变种CMS),在FastCGI + Apache +共享主机上。
通过内置的Wagtail Image Uploader上传图像时,某些图像可以正常工作和编译,而某些上传会导致500内部服务器错误。
尝试在导致错误但未发现任何相似之处的图像类型中寻找图案。
我可以上传各种JPG,GIF,PNG, 大小从88KB到236KB不等, 最大尺寸为1000px x 950px
导致错误的文件也有各种各样的JPG,GIF,PNG。我不能上传大于300KB的任何内容,虽然一些只有100KB或更少的文件也会导致500错误。 通过django-admin上传会导致相同的问题。
当我通过sftp和cpanel上传时图像有效,所以那里没有问题。
Wagtail使用Pillow
进行图像处理。
我不知道从哪里开始寻找这个。它是枕头还是Django错误?
答案 0 :(得分:6)
我怀疑你的网络服务器正在设置请求大小的限制 - 我们在nginx上部署时遇到了类似的事情,这对开箱即用的请求施加了1 Mb的限制。 (对于nginx,相关设置为client_max_body_size
。)如果您看到普通的500内部服务器错误页面而不是Django错误,则表明错误发生在Web服务器级别而不是Django中...如果您检查Web服务器的错误日志,您将有希望获得更多信息。
您可以尝试的一个简单的检查是在Wagtail的“文档”区域中上传相同的文件 - 这不会对文件进行任何处理(它只存储它们),所以如果上传仍然失败,这消除了Pillow的可能性。
答案 1 :(得分:0)
发生同样的错误,但就我而言,我在Ubuntu VPS中使用apache2 Web服务器。
但是做
sudo chown www-data:www-data mysite/
和
sudo chmod 755 mysite/media
解决了这个问题。