nginx+uwsgi部署django程序

系统环境

系统 Centos 7.3 //debian系列,如ubuntu等也可借鉴次方法

本应用使用80端口,也可以自定义端口

如果不是root用户而是sudo用户,有些命令前需要加sudo

netstat -lnp | grep 80 // 查看80端口是否被使用,确保80端口不被占用,一个程序只能拥有一个端口

service iptables status // 查看防火墙状态,确保其关闭、或者开放80端口

getenforce //确保selinux关闭,selinux类似防火墙

安装nginx

https://www.digitalocean.com/community/tutorials/how-to-install-nginx-on-centos-7
chkconfig nginx on # 设置开机启动项 浏览器输入: 公网ip或域名, 如果看到nginx欢迎页面nginx安装成

安装mysql  

因为mysql数据库在Linux上实在是太流行了,所以目前下载的主流Linux系统版本基本上都集成了mysql数据库在里面,但是版本可能较老
我们卸载它重新安装,Centos7默认安装了mysql的免费版mariadb

rpm -qa | grep mariadb// 这个命令就会查看该操作系统上是否已经安装了mariadb数据库
rpm -e --nodeps `rpm -qa | grep mariadb`// mysql有依赖包,普通模式无法删除;nodeps为强力删除模式,如果使用上面命令删除时,提示有依赖的其它文件,则用该命令可以对其进行强力删除

yum install -y mariadb-server mariadb  //安装mysql,mysql-server是服务端,mysql是客户端,mysql-devel是依赖包  
rpm
-qi mariadb-server //查看刚安装好的mysql-server的版本,但并不是mysql官网的最新版本 service mysqld start

//启动mysql ps -ef | grep mysql //如果出现3行mysql相关信息说明启动成功;默认端口是3306,建议通过/etc/my.cnf修改,改后service mysqld restart
chkconfig mariadb on
//设置nginx为开机启动项
mysqladmin
-u root password 'root' //为mysql程序设置密码,这里设置为root
mysql
-u root -p //进入mysql程序 grant all on *.* to root identified by 'root';
//设置root用户可远程连接 通过navicat新建一个数据库

 配置虚拟环境

yum install python-setuptools python-devel

# 安装virtualenvwrapper
pip install virtualenvwrapper  //mkvirtualenv自动加入环境变量

# 编辑~/.bashrc文件
export WORKON_HOME=$HOME/.virtualenvs
source /usr/bin/virtualenvwrapper.sh  

source  ~/.bashrc  # 重新加载.bashrc文件

mkvirtualenv  //有提示则安装成功

 部署

# 新建虚拟环境
mkvirtualenv myenv

# 安装pip包
workon myenv  //进入到项目的虚拟环境
pip freeze > requirements.txt  //把pip安装的依赖包导出

# 把数据库同步到服务器的mysql下的mxonline库
pip install -r requirements.txt

# 脚本启动Django 
python manage.py runserver 0.0.0.0:8000 //脚本方式直接启动 

# uwsgi启动Django 
cd Project
pip install uwsgi uwsgi --http :8000 --module Project.wsgi //启动后,页面能访问则测试成功,继续下一步,利用nginx开启静态缓存和端口转发等,这里不再介绍,配置nginx即可

 

posted @ 2017-06-12 17:29  沐风先生  阅读(241)  评论(0编辑  收藏  举报