ubuntu14.04
virtualenv13.1.0
Django1.8.3
uwsgi1.9.17.1-debian
nginx1.4.6
apt-get install python-pip
pip install virtualenv virtualenvwrapper
修改~/.bash_profile或其它环境变量相关文件,添加以下语句
export WORKON_HOME=/usr/local/virtualenvs
export PROJECT_HOME=/usr/local/workspace
#source /usr/local/bin/virtualenvwrapper.sh
如果项目路径不存在要手动创建
mkdir /usr/local/workspace
常用命令:
mkvirtualenv [-p python3.4] ENV:创建运行环境ENV,-p指定python版本
mkproject [-p python3.4] PRJ:创建PRJ项目,-p指定python版本
workon ENV/PRJ: 切换到ENV环境/切换到PRJ项目路径和环境
deactivate:退出当前运行环境
rmvirtualenv ENV:删除运行环境ENV
mktmpenv:创建临时运行环境
lsvirtualenv: 列出可用的运行环境
lssitepackages: 列出当前环境安装了的包
首先创建Django项目运行环境和路径(本例创建python3.4运行环境)
mkproject -p python3.4 django
将会生成/usr/local/workspace/django项目路径
进入环境:workon django 退出环境:deactivate
进入环境,安装Django
pip install Django
然后创建一个测试项目
django-admin startproject mysite
python manage.py makemigrations
python manage.py migrate
启动项目测试下:
python manage.py runserver 0.0.0.0:8008
(端口冲突换端口,ctrl + c 终止服务)
浏览器打开 http://设备IP:8008/
显示It worked!成功
收集下静态文件(下文测试admin时需要,否则加载不到样式表)
编辑mysite/settings.py添加
STATIC_ROOT = os.path.join(BASE_DIR, "static/")
python manage.py collectstatic
apt-get install uwsgi uwsgi-plugin-python uwsgi-plugin-python3
配置uwsgi
复制默认基础配置文件,修改为自己的配置文件,未配置的选项将会按default.ini执行(复制后最好删掉最上边的注释,以免误会)
cp /usr/share/uwsgi/conf/default.ini /etc/uwsgi/apps-available/django.ini
ln -s /etc/uwsgi/apps-available/django.ini /etc/uwsgi/apps-enabled/
打开配置文件,增加以下配置:
plugins = python3
chdir = /usr/local/workspace/django/mysite
module = mysite.wsgi
env = DJANGO_SETTINGS_MODULE=mysite.settings
virtualenv = /usr/local/virtualenvs/django/
其中:
chdir为django项目所在路径(django-admin startproject mysite 的路径)
virtualenv为python环境路径(在virtualenv中用which python查看,写到bin路径前即可)
修改项目文件的用户和组到uwsgi运行用户
启动
service uwsgi restart
upstream django {
server unix:///run/uwsgi/app/django/socket;
}
server {
listen 8008;
charset utf-8;
client_max_body_size 75M; # adjust to taste
location /media {
alias /usr/local/workspace/django/mysite/media;
}
location /static {
alias /usr/local/workspace/django/mysite/static;
}
location / {
uwsgi_pass django;
include uwsgi_params;
}
}
重新加载配置
service nginx reload
打开浏览器http://IP地址:8008和http://IP地址:8008/admin查看效果