本文共 2664 字,大约阅读时间需要 8 分钟。
文章目录
[隐藏]
安装软件包
配置Virtualenv及Python环境
Django项目配置
uWSGI 配置
Nginx 配置
安装软件包
我的Linux是Ubuntu,需要安装Python3,如果你需要安装其他版本替换即可
sudo apt-get install mysql-server python3 python-dev python3-pip virtualenv
配置Virtualenv及Python环境
首先,这个Virtualenv并不是必须的,他的作用就是创建一个“隔离”的Python运行环境。
我想大家都碰到过在一台电脑上同时开发多个应用程序,如果应用A需要Python 2.7,而应用B需要Python 2.6怎么办?有时还会碰到不只是Python版本的不一致,比如Django等软件包版本。
这种情况下,每个应用可能需要各自拥有一套“独立”的Python运行环境。
1、新建独立运行环境,命名为pyblog_env
virtualenv pyblog_env --python=python3.5 --no-site-packages
–python指定Python版本 –no-site-packages不复制系统已安装Python包
2、进入pyblog_env环境
source pyblog_env/bin/activate
这时会发现命令提示符前面多了一个(pyblog_env),变成(pyblog_env)user@hostname:~$ 这种形式,这表示我们已经进入到刚刚创建的虚拟环境。 然后再通过pip安装包,都会安装到这个环境下,不会对系统环境造成影响。 退出虚拟环境命令:deactivate
3、安装项目依赖
pip3 install django PyMySQL mysqlclient Pillow #如果有需求文件,比如requirements.txt,则执行 pip3 install -r requirements.txt
Django项目配置
1、上传Django项目,我的项目在GitHub。
git clone https://github.com/zytx/pyblog.git
2、配置项目的数据库信息
3、数据迁移
python manage.py makemigrations python manage.py migrate
4、建立超级用户:
python manage.py createsuperuser
5、收集静态文件:
python manage.py collectstatic
6、测试项目 运行开发服务器看项目能否正常运行
python manage.py runserver 0.0.0.0:8000
访问ip:8000看是否出错
uWSGI 配置
退出刚才进入的虚拟环境,使用命令:deactivate
1、安装uWSGI
pip3 install uwsgi
2、运行测试:
uwsgi --http :8000 --home /home/zytx/pyblog_env/ --chdir /home/zytx/pyblog_env/pyblog -w pyblog.wsgi
–home Virtualenv的虚拟环境目录 –chdir Django项目目录
如果访问IP:8000可以看到项目,就说明Python环境和uWSGI是没有问题的
3、创建配置文件 接下来在项目里新建一个配置文件uwsgi.ini
[uwsgi] # 项目根目录路径(full path) chdir = /home/zytx/pyblog_env/pyblog/ # Django的 wsgi 文件 module = pyblog.wsgi:application # virtualenv目录 (full path) home = /home/zytx/pyblog_env/ master = true # 最大工作进程数(CPU密集型建议设为CPU核心数,IO密集型建议设为CPU核心数的两倍) processes = 2 # unix套接字文 socket = /home/zytx/pyblog_env/pyblog.sock # socket文件权限 chmod-socket = 777 # 退出时清空环境 vacuum = true
4、后台启动uWSGI
uwsgi /home/zytx/pyblog_env/pyblog/uwsgi.ini&
Nginx 配置
1、创建配置文件
sudo vi /etc/nginx/sites-available/pyblog
加入如下内容:
server { listen 80; server_name www.immrz.com; root /home/zytx/pyblog_env/pyblog/; location /media/ { #如果你的media目录不在root里,可以配置 alias /path/to/your/mysite/media; } location /static/ { #如果你的static目录不在root里,可以配置 alias /path/to/your/mysite/static; } location / { uwsgi_pass unix:///home/zytx/pyblog_env/pyblog.sock; include uwsgi_params; # the uwsgi_params file you installed } }
软连接到sites-enabled
sudo ln -s /etc/nginx/sites-available/pyblog /etc/nginx/sites enabled/
2、重新加载Nginx配置
sudo service nginx reload
如果配置无误我们就可以让uWSGI开机运行
#编辑/etc/rc.local,在exit0之前加入 /usr/local/bin/uwsgi --ini /home/zytx/pyblog_env/pyblog/pyblog.uwsgi.ini&
原文出处:immrz -> https://www.immrz.com/nginx-uwsgi-django-mysql-virtualenv-server-deploy/
转载地址:http://poatv.baihongyu.com/