Ubuntu下的Nginx+Uwsgi+Django项⽬部署详细流程
⽂章⽬录
前⾔
这篇博客主要介绍标题中写明的项⽬部署流程,以及解决部署过程中可能遇到的⼀些问题,在开始之前,墙裂推荐这篇⽂档:
看完这篇⽂档,你可能已经能够解决90%(甚⾄100%)的问题了,剩下10%的问题(我所遇到的)将穿插在我部署的过程中进⾏解决。
(第⼀次部署的过程⼗分粗糙,遇到的很多问题都没有妥善记录下来,现在另起⼀个⽐较⼲净的服务器,重新部署⼀下,好把之前的坑过⼀遍,另外对配置进⾏⼀些优化)
如果按照本⽂流程,仍然配置不成功的话,请按照以下⼏点排除问题:
1. 检查服务器端⼝配置
2. 检查配置⽂件是否正确
3. 检查部署过程中各个项⽬的版本是否和本⽂⼀致(版本更新后可能导致配置变化)
4. 检查防⽕墙(我配置时没有遇到这个问题)
5. google…
6. 欢迎留⾔,⼀起解决问题~
环境nginx部署前端项目
阿⾥云: Ubuntu 14.04 64位
本机:windows10
python:3.6.6
⼯具
IDE:Pycharm(代码部署功能⽐较好⽤)
(可选)⽂件图形化客户端:WinSCP(查看服务器⽂件结构)
申请⼀个服务器
这⾥在阿⾥云上申请注册了⼀个Ubuntu服务器……个⼈喜好,可⾃⾏更换
获取服务器实例
获取IP
配置安全组()
连接服务器
连接服务器的⽅法很多,不⼀⼀赘述了,这⾥使⽤ssh直连
安装ssh
sudo apt-get install ssh
连接⽬标服务器
ssh
xxx部分为服务器的公⽹IP地址,root为⽤户名(不推荐使⽤root账户进⾏后续部署操作)
配置⽤户
给服务器系统添加⾃定义⽤户,后⾯的操作都在该⽤户下(本⽂中添加并使⽤账户名为breavo,账户名可任意取)
sudo adduser breavo
详细过程可以⾃⾏google,这⾥贴出⼀个简单的⽅法:
(创建⽤户后请务必添加sudo权限,避免后续出现权限问题)
使⽤pyenv管理python版本
由于各个项⽬之间存在python的版本问题,⽽服务器中⾃带的python2(现在也⾃带python3了,但是版本可能不符合需求)是远远⽆法满⾜需求的,导致的结果就是你的服务器中安装了多个python版本,每个项⽬依赖不同的版本运⾏。那么管理的必要性是不⾔⽽喻的了,另外每个项⽬需要⼀个独⽴的运⾏环境(项⽬依赖需要分开管理,否则会变成噩梦),这⼀点通过创建虚拟环境来解决。
下载pyenv
⾸先对系统环境进⾏⼀下更新,确保后⾯的操作不会因为缺少某个⼯具导致失败
sudo apt-get update
安装curl,git
sudo apt-get install curl git-core
安装pyenv
curl -L raw.github/yyuu/pyenv-installer/master/bin/pyenv-installer | bash
这个命令会把pyenv安装到当前⽤户的~/.pyenv⽬录下.(本⽂中为/home/breavo/.pyenv)
同样,在⽤户⽬录下到.bashrc⽂件,将下⾯的代码添加⾄⽂件内容末尾(本⽂中bashrc⽂件路径在/home/breavo下,可⾃⾏对应到⾃⼰的路径)
export PYENV_ROOT="${HOME}/.pyenv"
if[ -d "${PYENV_ROOT}"];then
export PATH="${PYENV_ROOT}/bin:${PATH}"
eval"$(pyenv init -)"
fi
或者
export PATH="/home/breavo/.pyenv/bin:$PATH"
eval"$(pyenv init -)"
eval"$(pyenv virtualenv-init -)"
修改后保存~
这段代码的作⽤主要是指明pyenv的位置,以便以后可以直接在命令⾏⾥⾯运⾏pyenv命令。 保存在~/.bashrc ⽂件中是为了每次⽤户登陆后⾃动⽣效。
所以如果你是第⼀次运⾏命令并且没有注销的话, 这⼀段是不会⽣效的, 我们还需要运⾏下⾯的命令令其⽣效
source ~/.bashrc
然后就可以直接在命令⾏⾥⾯敲pyenv了。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论