具体过程查看3个项目部署文件,只记录易出错步骤
在服务器上创建虚拟环境
mkvirtualenv xxxenv
workon xxxenv
可导入依赖库
将本地能运行的项目拖进服务器自定义目录,如“www”
在该项目工程目录下添加2个配置文件
uwsgi.ini文件中,在下面位置需要修改成你的项目文件夹名:
在ngix.conf文件中,需要设置云服务器地址和静态文件路径
在云服务器创建数据库表的时候一定要记得设置字符格式为utf8,否则不支持中文
需要自己新建一个logs的文件夹存放log日志
在setting文件中设置:
还有log
LOGGING = {
'version': 1,
'disable_existing_loggers': True,
# 格式配置
'formatters': {
'simple': {
'format': '%(asctime)s %(module)s.%(funcName)s: %(message)s',
'datefmt': '%Y-%m-%d %H:%M:%S',
},
'verbose': {
'format': ('%(asctime)s %(levelname)s [%(process)d-%(threadName)s] '
'%(module)s.%(funcName)s line %(lineno)d: %(message)s'),
'datefmt': '%Y-%m-%d %H:%M:%S',
}
},
# Handler 配置
'handlers': {
'console': {
'class': 'logging.StreamHandler',
'level': 'DEBUG' if DEBUG else 'WARNING'
},
'info': {
'class': 'logging.handlers.TimedRotatingFileHandler',
'filename': '%s/logs/info.log' % BASE_DIR, # 日志保存路径
'when': 'D', # 每天切割日志
'backupCount': 30, # 日志保留 30 天
'formatter': 'simple',
'level': 'INFO',
},
'error': {
'class': 'logging.handlers.TimedRotatingFileHandler',
'filename': '%s/logs/error.log' % BASE_DIR, # 日志保存路径
'when': 'W0', # 每周一切割日志
'backupCount': 4, # 日志保留 4 周
'formatter': 'verbose',
'level': 'WARNING',
}
},
# Logger 配置
'loggers': {
'django': {
'handlers': ['console'],
},
'inf': {
'handlers': ['info'],
'propagate': True,
'level': 'INFO',
},
'err': {
'handlers': ['error'],
'propagate': True,
'level': 'WARNING',
}
}
}
执行这两句后生成.pid文件
服务器切换项目的时候,旧的进程很有可能无法stop。这时候就要去查看uwsgi和nginx进程 , kill后重启
先启动 nginx, 再启动uwsgi