centos+uwsgi+django
一 .centos的相关依赖安装
- yum install python3-devel #如果是python2请使用 yum install python-devel
- yum install zilb-devel
- yum install libjpeg-turbo-devel
二.数据库服务的安装
- sqlite的安装
- yum install sqlite
- 进入数据库命令: sqlite3
- 退出数据库命令: .q
- mysql 的安装
- 下载mysql的yum源
- wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm #centos7
- wget https://dev.mysql.com/get/mysql57-community-release-el6-11.noarch.rpm #centos6
- 安装mysql的yum源
- rpm -ivh mysql57-community-release-el7-11.noarch.rpm #centos7
- rpm -ivh mysql57-community-release-el6-11.noarch.rpm #centos6
- 安装mysql
- yum install mysql-community-server
- 下载mysql的yum源
三.python虚拟环境
- python3.4及以上可以使用 python3 -m venv 目录名(目前已经支持,ps对比以前的开发模式是virtualenv/virtualenvwrapper.)
- source /目录名/bin/activate
- 将项目拷贝目录名下,使用pip install -r requirements.txt 安装相关环境依赖
四.安装及测试
- 检查python版本,以及django版本
- 检查django的settings中数据库中的配置是否正确,使用python manage.py makemigrations 和 python manage.py migrate 创建数据库模型
- 使用python manage.py runserver运行django项目,检查是否出错
- uwsgi的安装和测试
- pip install uwsgi
- 测试uwsgi到python是否连通
def application(env, start_response): start_response('200 OK', [('Content-Type','text/html')]) return [b"Hello World"] - 测试命令uwsgi --http :8000 --wsgi-file test.py #注http后面是空格
- 先在django的settings文件中确认Allow_host是否允许访问,在浏览器上输入IP:8000,如果显示Hello World着表示uwsgi到python连通
- 测试uwsgi到django是否连通过
- 是用命令 uwsgi --http :8000 --module mysite.wsgi #mysite.wsgi为项目的wsgi
- 在浏览器输入IP:8000进行测试
- 在项目根目录下创建uwsgi的配置文件uwsgi.in
[uwsgi] socket = 服务器IP:8001 #注如在同一服务器上可以使用127.0.0.1 chdir = /home/foobar/myproject/ wsgi-file = myproject/wsgi.py master = true processes = 4 threads = 2- uwsgi服务启动命令 uwsgi --ini uwsgi.ini(这步自己部署的时候少了,折腾了一夜。想哭的经历)
- 安装nginx
- yum install nginx
- 在/etc/nginx/conf.d/创建blog.conf
upstream django { server IP:8001; #对应uwsgi.ini中socket,也可一写为127.0.0.1 } # configuration of the server server { listen 8000; #对应浏览器 server_name IP; charset utf-8; access_log /var/log/nginx/blog_access.log; client_max_body_size 8M; # adjust to taste location /media { #配置上传文件 alias /usr/local/site/demo/project-blog/media; } location /static { #配置静态文件 alias /usr/local/site/demo/project-blog/static; } location / { uwsgi_pass django; #对应upstream django include /etc/nginx/uwsgi_params; } } - 启动nginx service nginx start, 注:在每次修改nginx的配置文件后要记得重启或者reloadnginx服务
- 请在浏览器输入IP:8000进行测试
- 注:还有使用Gunicorn进行部署,使用supervisor进行进程管理的。。。这我都没弄过.后续再探讨