博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
uwsgi django mysql_Nginx+uWSGI+Mysql+Django+Virtualenv环境部署
阅读量:5223 次
发布时间:2019-06-14

本文共 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/

你可能感兴趣的文章
CAN总线波形中ACK位电平为什么会偏高?
查看>>
MyBatis课程2
查看>>
桥接模式-Bridge(Java实现)
查看>>
svn客户端清空账号信息的两种方法
查看>>
springboot添加servlet的两种方法
查看>>
java的Array和List相互转换
查看>>
layui父页面执行子页面方法
查看>>
如何破解域管理员密码
查看>>
Windows Server 2008 R2忘记管理员密码后的解决方法
查看>>
IE11兼容IE8的设置
查看>>
windows server 2008 R2 怎么集成USB3.0驱动
查看>>
Foxmail:导入联系人
查看>>
vue:axios二次封装,接口统一存放
查看>>
vue中router与route的区别
查看>>
js 时间对象方法
查看>>
网络请求返回HTTP状态码(404,400,500)
查看>>
Spring的JdbcTemplate、NamedParameterJdbcTemplate、SimpleJdbcTemplate
查看>>
Mac下使用crontab来实现定时任务
查看>>
303. Range Sum Query - Immutable
查看>>
图片加载失败显示默认图片占位符
查看>>