ubuntu 16.04 部署 pypy+nginx+uwsgi+django(详细)

1、nginx                                                                                                                                            

 

 安装nginx之前先安装python的pip,千万不能用pypy的pip,会容易破坏依赖关系,很难修复,

sudo apt-get install nginx

 

因为,是自动安装,所以nginx的配置文件在/etc/nginx/sites-enabled/文件目录下的default。直接通过命令vi打开,a,进入插入模式,进行编辑。因为ubuntu是没有vim的,所以上下左右方向键其实显示的是字母,H、j、k、l,才是上下左右,所以先下载vim,在进行编辑。

sudo apt-get install vim --下载vim

vi  /etc/nginx/sites-enabled/default --打开配置文件

 

对配置文件进行的更改

# the upstream component nginx needs to connect to
//关于djjango的配置 upstream django { server unix:///tmp/webvision.sock; # for a file socket #server 127.0.0.1:8001; # for a web port socket (we'll use this first) } server {
//链接到index首页 listen 80 default_server; index index.html index.htm index.php default.html default.htm default.php; # the domain name it will serve for server_name .shitac.net default 192.168.21.31; # substitute your machine's IP address or FQDN charset utf-8; root /var/www/html; # max upload size client_max_body_size 75M; # adjust to taste
//通用配置
//直接匹配网站根,通过域名访问网站首页比较频繁,使用这个会加速处理 location / { uwsgi_pass django; include /etc/nginx/uwsgi_params; } location /media/ { alias /var/www/webvision2/media/; } location /static/ { alias /var/www/webvision2/static/; } location = /crossdomain.xml { root /var/www/html; } location /live { root /var/www/html; expires -1; } location /pic { root /var/www/html; expires 30d; } }

2、pypy                                                                                                                                             

 

注意:官方源的运行uwsgi会出现错误,google是说官方源的是staticlibpypy-c.so: cannot open shared object file

所以我选择安装ppapypy

安装命令

sudo add-apt-repository ppa:pypy/ppa
sudo apt update
sudo apt install pypy

 

您可能需要一个pip的国内源,以增加pip操作的速度,可以百度找有很多,我用的是豆瓣

vim ~/.pip/pip.conf
 // 將下列复制在pip.conf中
    [global]
    index-url = http://pypi.douban.com/simple
    [install]
    trusted-host=pypi.douban.com

 

3、uwsgi                                                                                                                                                     

我们先进入pypy环境,在pypy环境下安装uwsgi

安装uwsgi

virtualenv -p /usr/bin/pypy pypy  --建立pypy的虚拟环境
source ~/pypy/bin/activate -- 进入环境

pip install uwsgi           --安装

 

等到下载完以后就可以更改uwsgi的配置文件了,

[uwsgi]
socket = /tmp/webvision.sock --指定socket #这是实现应用nginx与uwsgi之间的通信(很复杂的东西)
master = true -- 主进程启动true
processes = 4 -- 启动四个进程工作
enable-threads = true --允许用内嵌的语言启动线程。
pidfile = /tmp/webvision2_uwsgi.pid  --指定pid进程文件
daemonize = /var/log/webvision2/uwsgi.log  --uwsgi.log肯定是日志咯
chdir = /var/www/webvision2  --项目目录,如果站点多推荐flase
pythonpath = /var/www/webvision2  --指明当前应用程序的项目路径
virtualenv = /home/kanbig/pypy 
pypy-home = /home/kanbig/pypy 
pypy-wsgi-file = /var/www/webvision2/lteadmin/wsgi.py --wsgi是uwsgi与djiango之间的通信,这是绝对路径

 

4、djiango                                                                                                                                         

 安装djiaogo需要进入djiango的目录,已经在webvision2中配置了wsgi.py,所以cd进去

先安装requirememts依赖库

pip install -r requirements.txt

 

这最后一步问题多多,pyflake8可能需要降档,系统提示pyflake8》=1.6等等有许多问题,按着报错提示一个个安装下载就行,这里我只提供一个降档步骤

pip uninstall pyflakes
pip install pyflakes==1.6

 

最后启动命令

uwsgi --ini uwsgi.ini
    ps -elf|grep uwsgi --如果有四个进程启动就对啦
sudo service nginx restart
    ps -elf|grep nginx -- nginx打开输入localhost不报错就行

 

 

 

posted @ 2018-07-12 23:47  DDDDyun  阅读(1032)  评论(0编辑  收藏  举报