关于 Django 部署遇到了奇怪的问题???

2017-09-22 22:16:45 +08:00
 guoweikuang

部署网站时,使用了 Supervisor+Gunicorn+Nginx 部署,


DEBUG = False
ALLOWED_HOSTS = ['101.236.6.252', '127.0.0.1', '.guoweikuang.com']
[program:django_cms]
directory = /home/guoweikuang/projects/django_cms
command = /home/guoweikuang/projects/django_cms/venv/bin/gunicorn django_cms.wsgi:application -b 127.0.0.1:8003
user=www-database_pool
startsecs = 5
startretries = 3
stopsignal = KILL
stopasgroup = True
stdout_logfile = /var/log/supervisor/django_cms.log
stderr_logfile = /var/log/supervisor/django_cms.error.log

配置好重新载入配置并启动,都没有出现问题 然后我打开首页,也没有问题 然后我试着点进去一个详情页,what the fuck, 直接Server Error (500)

赶紧去看了下 supervisor 的日志,发现只有 500 服务器端错误,但也找不到原因

GET /article/3 HTTP/1.0" 500 27

然后去看了 nginx 的日志,也只有

GET /article/3 HTTP/1.1" 500 38 "http://101.236.6.252/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.79 Safari/537.36"

这个错误信息。 然后我直接在项目路径下执行

gunicorn django_cms.wsgi:application -b 127.0.0.1:8003

再访问一次发现是可以的,我分析是我 supervisor 的配置错了,但改了几次都不行,

3505 次点击
所在节点    Django
11 条回复
rogwan
2017-09-22 22:33:14 +08:00
建议 1. 你检查下 supervisor 启动的时候,[program:django_cms] 有加载吗?
建议 2. gunicorn 可以试试直接放在系统启动加载
guoweikuang
2017-09-22 22:36:40 +08:00
@rogwan supervisor 已经有加载配置了,都正常运行,gunicorn 放在系统启动加载???这个步骤不了解
lxy
2017-09-22 22:45:32 +08:00
既然是 500,开 Debug 不就知道了吗
Victor215
2017-09-22 22:46:33 +08:00
settings 把 debug 打开看看呗
rogwan
2017-09-22 22:47:05 +08:00
@guoweikuang 直接写个启动文件,比如 gunicorn.conf 放在 /etc/init/ 目录下就可以随系统启动了。
neoblackcap
2017-09-22 22:48:08 +08:00
数据库设置正确了吗?
guoweikuang
2017-09-22 22:51:13 +08:00
@Victor215 这个我居然忘了
guoweikuang
2017-09-22 22:55:42 +08:00
问题通过 DEBUG 找到了,是数据库权限问题,我运行下面语句时是在 root 权限下运行
```python
gunicorn django_cms.wsgi:application -b 127.0.0.1:8003
```
所以那时候都是可以访问了,
julyclyde
2017-09-23 22:38:41 +08:00
如果是数据库权限的问题,按说你用各种运行方式应该得到相同的错误才对啊
guoweikuang
2017-09-24 21:07:42 +08:00
@julyclyde 因为使用的是 sqlite 数据库,数据库也就是一个磁盘文件,但是它的权限是 root 才能打开的。我之前直接在命令行下操作都是 root 权限运行的,所以没有报错,放在 supervisor 里面已经配置用户是 www-data 了,所以报错
julyclyde
2017-09-26 08:07:00 +08:00
@guoweikuang 不错不错,能分析出原因分享给大家

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/392954

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX