目录
环境准备
操作系统:ubuntu
网络要求:可以连接外网
开始
1、安装ssh,允许远程登录
之后就可用通过xshell操作了
sudo apt-get install ssh
2、使用pyenv管理python版本
先更新系统环境,再安装curl、git
sudo apt-get update
sudo apt-get install curl git-core
安装pyenv,下方命令将pyenv安装到当前用户的~/.pyenv目录下
curl -L https://raw.githubusercontent.com/yyuu/pyenv-installer/master/bin/pyenv-installer | bash
安装vim
sudo apt-get install vim
编辑~/.bashrc文件,在末尾添加如下内容
export PYENV_ROOT="${HOME}/.pyenv"
if [ -d "${PYENV_ROOT}" ]; then
export PATH="${PYENV_ROOT}/bin:${PATH}"
eval "$(pyenv init -)"
fi
执行source命令使其生效
source ~/.bashrc
3、安装python
先安装依赖包,如下:
sudo apt-get update
sudo apt-get install make build-essential libssl-dev zlib1g-dev
sudo apt-get install libbz2-dev libreadline-dev libsqlite3-dev wget curl
sudo apt-get install llvm libncurses5-dev libncursesw5-dev
再执行如下命令,安装python3.6.6
pyenv install 3.6.6 -v
这个命令下载会比较慢,打印出下载url后,ctrl+c停止,使用wget下载到~/.pyenv/cache目录下,命令如下:
mkdir ~/.pyenv/cache
cd ~/.pyenv/cache
wget https://www.python.org/ftp/python/3.6.6/Python-3.6.6.tar.xz
再次执行安装python3.6.6命令,会直接读cache中的包直接安装
pyenv install 3.6.6 -v
4、配置虚拟环境
执行如下命令进行配置
echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bash_profile
重启shell
exec "$SHELL"
创建虚拟环境 pywk1
pyenv virtualenv 3.6.6 pywk1
执行如下命令切换到虚拟环境 pywk1
pyenv shell pywk1
5、安装配置nginx
安装nginx
sudo apt-get install nginx
启停nginx
systemctl start nginx
systemctl stop nginx
systemctl restart nginx
打开浏览器访问 xxx.xxx.xxx.xxx:80,验证nginx是否启动成功
6、django代码上传
通过pycharm直接上传,省时省力省心,具体操作如下:
打开 Tools - deployment - configuration
添加一个远程,
connection标签页中填写必要的协议类型、host、username、password、root path等信息,
mappings标签页中映射本地目录与远程目录,
excluded paths标签页中填写无需上传的目录。
配置完成后,点击Tools - deployment - automatic upload,开启自动上传
或点击 Tools - deployment - upload to xxx,进行上传
7、项目试运行
设置任意ip均可访问,编辑app目录下的settings.py文件,修改ALLOWED_HOSTS的值
ALLOWED_HOSTS = ['*']
pycharm中项目根目录下执行导出依赖包命令
pip freeze > require.txt
服务器中cd到require.txt所在目录,执行安装依赖包命令
pip install -r require.txt
执行runserver命令,启动项目
python manage.py runserver 0.0.0.0:8000
浏览器中输入 xxx.xxx.xxx.xxx:8000 验证项目是否可以访问
8、nginx代理
项目根目录下添加config目录,新建djapp_nginx.conf文件
mkdir ~/djapp/config
vim ~/djapp/config/djapp_nginx.conf
文件中填写如下内容
server {
listen 80;
server_name 10.10.14.5 localhost; #ip替换为服务器ip
access_log /home/peace/log/access.log; #日志路径文件自己配置
error_log /home/peace/log/error.log; #日志路径文件自己配置
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:8890;
}
location /static/ {
alias /home/peace/djapp/static/;
expires 30d;
}
}
创建项目日志目录,命令如下:
mkdir /home/peace/log/ #日志文件路径保持与上一步中的相同即可
/etc/nginx/nginx.conf文件中添加刚刚新增的nginx配置文件,增加如下内容
include /home/peace/djapp/config/*.conf; #具体路径以自己的为准
在如下位置
配置完成,重启nginx
9、uwsgi安装配置
在虚拟环境中安装uwsgi
pyenv shell pywk1
pip install uwsgi
在项目的config目录下新增uwsgi配置文件
vim ~/djapp/config/uwsgi.ini
添加如下内容:
[uwsgi]
master = true
processes = 4
pythonpath = /home/peace/djapp #配置自己的项目路径
module = djapp.wsgi
socket = 127.0.0.1:8890
logto = /home/peace/log/uwsgi.log #配置自己的日志路径
10、启动项目
进入项目的config目录,执行如下命令
uwsgi --ini uwsgi.ini