在Linux上部署django工程的时候,有些细节上的操作如果没注意的话可能会导致一些莫名其妙的错误,这里整理两个很常出现的问题:
-- unavailable modifier requested: 0 --
这句话写的确实不太明确,其实这问题出在uwsgi没能正确找到python。而这多是因为通过apt来独立安装uwsgi导致的,所以如果确实要这么做要注意进一步安装uwsgi-plugin-python,并且在uwsgi的配置文件中指定“plugins = python”。
还有一种方法,我认为更合适,就是直接编译安装uwsgi或通过pip,这样一般不会出问题并且不需要在uwsgi中额外指定plugins。
让人摸不着头脑的500
好不容易把工程部署的差不多了,是时候开跑了!兴奋的打开浏览器输入域名后,映入眼帘的却是一个大大的服务器异常,而查看日志却发现也只有一行访问记录中间穿插着一个碍眼的500。这场景确实有点让人摸不清方向。
一般说来,我觉得可以从两个方面去理清思路。首先可以考虑检查DEBUG模式是不是False,如果是的话,那看看ALLOWED_HOSTS是否加入了当前的域名,否则一定是500!
其次是日志。DEBUG为False的时候,日志的打印是会遵循settings中的LOGGING配置的,比如也许你就有类似于这样的一段配置:
'loggers': { 'django.request': { 'handlers': ['mail_admins'], 'level': 'ERROR', 'propagate': True, }, }
也就是说在级别为ERROR的时候django会向admins投递错误邮件,而且仅仅如此。如果这时我们没有配置admins,那错误信息可就真的不翼而飞了。
感谢!问题解决~