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是说官方源的是static的 libpypy-c.so: cannot open shared object file

所以我选择安装ppa的pypy

安装命令

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不报错就行

ubuntu 16.04 部署 pypy+nginx+uwsgi+django(详细)的更多相关文章

  1. Ubuntu 16.04下配置 Nginx 与 Node.js 以及服务的部署

    第一步:安装nginx sudo apt-get update sudo apt-get install nginx 如果遇到依赖问题,尝试执行sudo apt-get -f install命令 第二 ...

  2. Ubuntu 16.04 LTS 安装 Nginx/PHP 5.6/MySQL 5.7 (LNMP) 与Laravel

    Ubuntu 16.04 LTS 安装 Nginx/PHP 5.6/MySQL 5.7 (LNMP) 与Laravel 1.MySQL安装[安装 MariaDB]MariaDB是MySQL的一个分支首 ...

  3. Ubuntu 16.04安装QQ国际版图文详细教程

            因工作需要,我安装了Ubuntu 16.04,但是工作上的很多事情需要QQ联系,然而在Ubuntu上的WebQQ很是不好用,于是在网上搜索了好多个Linux版本的QQ,然而不是功能不全 ...

  4. 如何在Ubuntu 16.04上安装Nginx

    原文链接https://www.digitalocean.com/community/tutorials/how-to-install-nginx-on-ubuntu-16-04 介绍 Nginx是世 ...

  5. Ubuntu 16.04 上安装 CUDA 9.0 详细教程

    https://blog.csdn.net/QLULIBIN/article/details/78714596 前言: 本篇文章是基于安装CUDA 9.0的经验写,CUDA9.0目前支持Ubuntu1 ...

  6. Ubuntu-18.04.2系统 Nginx+uWSGI+Django 部署生产环境

    首先准备环境: 1.使用虚拟机 VMware Workstation Pro (也可以不用),安装Ubuntu-18.04.2系统 开始搭建环境 (因为ubuntu18.4.2集成了python3.6 ...

  7. Ubuntu 16.04 -- 同时配置Nginx(转发)和frp(内网映射)和HTTPS(ca加密) - 端口转发

    Ubuntu16.04下: sudo apt -get nginx 用这条命令安装完nginx之后, nginx在该目录下: 然后配置nginx: 如下: 红圈圈住的地方多写几个可以做负载均衡. 端口 ...

  8. Nginx+uwsgi+django+vue部署项目

    购买服务器 # 购买阿里云服务器 # 短期或是测试使用,创建 按量收费 服务器,可以随时删除,删除后不再计费,但要保证账户余额100元以上 连接服务器 1)账号 >: ssh root@39.9 ...

  9. [技术博客]ubuntu+nginx+uwsgi+Django+https的部署

    ubuntu+nginx+uwsgi+Django+https部署文档 配置机器介绍 操作系统:Ubuntu 18.04.2 LTS 64位 python版本:Python 3.6.7 Django版 ...

随机推荐

  1. ITerm常用的快捷键

    新建标签:command + t 关闭标签:command + w 切换标签:command + 数字 或者 command + 左右方向键 切换全屏:command + enter 查找:comma ...

  2. vs2019编译redis

    版本信息 使用Redis源码版本,解压工程右键生成hiredis项目正常,编译Win32_Interop项目报下图错误(error C2039:system_error:不是std成员;error C ...

  3. Installshield相关的后续操作<一>图解

    1.XML文件读取 选择需要读取XML文件 2.SQL数据库的安装 这里选择的文件是数据库脚本.如果脚本没有创建数据库的语句,还需手动输入. 3.自定义界面Dialogs 下一步: 上面红色框框里面是 ...

  4. ThreadPoolExecutor 使用说明

    它是一个ExecutorService,使用线程池中的线程执行提交的任务.通常我们使用Executors框架,定义使用. 线程池主要用来解决两类问题:通过缓存一定数量的可用线程,避免频繁的线程创建,销 ...

  5. Java 浅拷贝 深拷贝

    两者区别主要在于引用数据类型的属性,对于基本数据类型采用的是值传递,所以两者一样: 对于浅拷贝,引用数据类型只会进行引用传递,即复制一份引用值(内存地址)给新对象,一个对象的变化会影响到另一个的引用属 ...

  6. CS224n学习笔记1——深度自然语言处理

    一.什么是自然语言处理呢? 自然语言处理是计算机科学家提出的名字,本质上与计算机语言学是同义的,它跨越了计算机学.语言学以及人工智能学科. 自然语言处理是人工智能的一个分支,在计算机研究领域中,也有其 ...

  7. “Hello World!“”团队第七周召开的第二次会议

    今天是我们团队“Hello World!”团队第七周召开的第二次会议.博客内容: 一.会议时间 二.会议地点 三.会议成员 四.会议内容 五.todo list 六.会议照片 七.燃尽图 八.代码 一 ...

  8. jQuery获取复选框选中的每一个值

    $('input[name="serviceMode"]:checked').each(function(){ this.attr('value') });

  9. 20162314 《Program Design & Data Structures》Learning Summary Of The Fifth Week

    20162314 2017-2018-1 <Program Design & Data Structures>Learning Summary Of The Fifth Week ...

  10. 实验二 四则运算 完成版 ver.1

    package size; import java.awt.EventQueue; import javax.swing.JFrame; import javax.swing.JMenuBar; im ...