Django发布服务器
首先连接到服务器,安装环境
WSGI,web服务器网关接口。WSGI是一个规范,定义了web服务器如何与pyhton程序交互
更新系统软件包:yum update -y
yum install wget
下载python: wget https://www.python.org/ftp/python/3.5.3/Python-3.5.3.tgz
解压:tar -zxvf python-3.7.2
进入python: cd python-3.7.2
编译安装到指定路径:./configure --prefix=/use/local/python3 --enable-shared
开始安装:make make install
配置变量:ln -s /usr/local/python3/bin/python3 /usr/bin/python3
查看python版本:python3 -v
安装pip: wget --no-check-certificate https://pypi.python.org/packages/source/p/pip/pip-8.0.2.tar.gz#md5=3a73c4188f8dbad6a1e6f6d44d117eeb
解压 tar -zxvf pip-8.0.2.tar.gz 进入 cd pip-8.0.2
配置 python3 setup.py build python3 setup.py install
鉴于之前写太乱了,修改一下,这里用的是Ubuntu 16系统
先把项目上传到github,方便使用
首先升级版本,安装包
sudo apt-get update sudo apt-get upgrade sudo apt-get install nginx sudo apt-get install python3 sudo apt-get install python3-pip sudo apt-get install git sudo pip3 install virtualenv
接下来修改Django文件settings.py
#关闭调试模式
DEBUG = False #这里写你的服务器IP ALLOWED_HOSTS = ['101.133.166.128'] #静态文件部署时需要找一个地方统一收集起来,就是STATIC_ROOT
指定的地址 STATIC_ROOT = os.path.join(BASE_DIR, 'collected_static')
在本地环境下把开发中用到的库列一个清单
pip freeze > requirements.txt
回到服务器的命令行(记住把项目上传到github),给项目创建文件夹
mkdir -p /home/sites/a.com cd /home/sites/a.com #从github拉取代码 git clone https://github.com/15903434407/boke.git
创建虚拟环境,进入虚拟环境
virtualenv --python=python3.5 env
source env/bin/activate
cd boke (env) ../boke# pip3 install -r requirements.txt (env) ../boke# pip3 python3 manage.py collectstatic
(env) ../boke# pip3 python3 manage.py migrate
回到根目录,启动nginx,编辑nginx配置
cd /
sudo service nginx start
cd /etc/nginx/sites-available
sudo vi dusaiphoto.com
server { charset utf-8; listen 80; server_name 101.133.166.128; # 改成你的 IP location /static { alias /home/sites/a.com/boke/collected_static; } location /media { alias /home/sites/a.com/boke/media; } location / { proxy_set_header Host $host; proxy_pass http://unix:/tmp/101.133.166.128.socket; # 改成你的 IP } }
回到项目目录下
cd /home/sites/a.com/boke
sudo ln -s /etc/nginx/sites-available/a.com /etc/nginx/sites-enabled
(env) ../boke# pip3 install gunicorn
(env) ../boke# sudo service nginx reload
(env) ../boke# gunicorn --bind unix:/tmp/101.133.166.128.socket my_blog.wsgi:application
my_blog 是自己项目下的名字,还有ip记得改
到这了就可以了,浏览器输入服务器IP试试吧