我是靠谱客的博主 优雅心锁,最近开发中收集的这篇文章主要介绍Django的安装与服务器的搭建的坑,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一、安装uwsgi

直接使用pip安装就可以了,命令如下:

pip install uwsgi

1.可能出现如下异常:

raise Exception("you need a C compiler to build uWSGI")
Exception: you need a C compiler to build uWSGI

出现以上错误是因为没有c的编译器,解决办法是:

yum install -y gcc gcc-c++ 
[root@VM_153_111_centos SoftWare]# yum install -y gcc gcc-c++

已加载插件:fastestmirror, langpacks
Repository epel is listed more than once in the configuration
Loading mirror speeds from cached hostfile
正在解决依赖关系
--> 正在检查事务
---> 软件包 gcc.x86_64.0.4.8.5-11.el7 将被 安装
--> 正在处理依赖关系 libgomp = 4.8.5-11.el7,它被软件包 gcc-4.8.5-11.el7.x86_64 需要
--> 正在处理依赖关系 cpp = 4.8.5-11.el7,它被软件包 gcc-4.8.5-11.el7.x86_64 需要
--> 正在处理依赖关系 libgcc >= 4.8.5-11.el7,它被软件包 gcc-4.8.5-11.el7.x86_64 需要
--> 正在处理依赖关系 libmpfr.so.4()(64bit),它被软件包 gcc-4.8.5-11.el7.x86_64 需要
--> 正在处理依赖关系 libmpc.so.3()(64bit),它被软件包 gcc-4.8.5-11.el7.x86_64 需要
---> 软件包 gcc-c++.x86_64.0.4.8.5-11.el7 将被 安装
--> 正在处理依赖关系 libstdc++-devel = 4.8.5-11.el7,它被软件包 gcc-c++-4.8.5-11.el7.x86_64 需要
--> 正在处理依赖关系 libstdc++ = 4.8.5-11.el7,它被软件包 gcc-c++-4.8.5-11.el7.x86_64 需要
--> 正在检查事务
---> 软件包 cpp.x86_64.0.4.8.5-11.el7 将被 安装
---> 软件包 libgcc.i686.0.4.8.5-4.el7 将被 升级
---> 软件包 libgcc.x86_64.0.4.8.5-4.el7 将被 升级
---> 软件包 libgcc.i686.0.4.8.5-11.el7 将被 更新
---> 软件包 libgcc.x86_64.0.4.8.5-11.el7 将被 更新
---> 软件包 libgomp.x86_64.0.4.8.5-4.el7 将被 升级
---> 软件包 libgomp.x86_64.0.4.8.5-11.el7 将被 更新
---> 软件包 libmpc.x86_64.0.1.0.1-3.el7 将被 安装
---> 软件包 libstdc++.i686.0.4.8.5-4.el7 将被 升级
---> 软件包 libstdc++.x86_64.0.4.8.5-4.el7 将被 升级
---> 软件包 libstdc++.i686.0.4.8.5-11.el7 将被 更新
---> 软件包 libstdc++.x86_64.0.4.8.5-11.el7 将被 更新
---> 软件包 libstdc++-devel.x86_64.0.4.8.5-11.el7 将被 安装
---> 软件包 mpfr.x86_64.0.3.1.1-4.el7 将被 安装
--> 解决依赖关系完成
依赖关系解决
================================================================================
Package
架构
版本
源
大小
================================================================================
正在安装:
gcc
x86_64
4.8.5-11.el7
os
16 M
gcc-c++
x86_64
4.8.5-11.el7
os
7.2 M
为依赖而安装:
cpp
x86_64
4.8.5-11.el7
os
5.9 M
libmpc
x86_64
1.0.1-3.el7
os
51 k
libstdc++-devel
x86_64
4.8.5-11.el7
os
1.5 M
mpfr
x86_64
3.1.1-4.el7
os
203 k
为依赖而更新:
libgcc
i686
4.8.5-11.el7
os
104 k
libgcc
x86_64
4.8.5-11.el7
os
97 k
libgomp
x86_64
4.8.5-11.el7
os
152 k
libstdc++
i686
4.8.5-11.el7
os
312 k
libstdc++
x86_64
4.8.5-11.el7
os
300 k
事务概要
================================================================================
安装
2 软件包 (+4 依赖软件包)
升级
( 5 依赖软件包)
总下载量:32 M
Downloading packages:
Delta RPMs disabled because /usr/bin/applydeltarpm not installed.
(1/11): gcc-4.8.5-11.el7.x86_64.rpm
|
16 MB
00:00
(2/11): gcc-c++-4.8.5-11.el7.x86_64.rpm
| 7.2 MB
00:00
(3/11): libgcc-4.8.5-11.el7.i686.rpm
| 104 kB
00:00
(4/11): libgcc-4.8.5-11.el7.x86_64.rpm
|
97 kB
00:00
(5/11): libgomp-4.8.5-11.el7.x86_64.rpm
| 152 kB
00:00
(6/11): cpp-4.8.5-11.el7.x86_64.rpm
| 5.9 MB
00:00
(7/11): libmpc-1.0.1-3.el7.x86_64.rpm
|
51 kB
00:00
(8/11): libstdc++-4.8.5-11.el7.x86_64.rpm
| 300 kB
00:00
(9/11): libstdc++-4.8.5-11.el7.i686.rpm
| 312 kB
00:00
(10/11): libstdc++-devel-4.8.5-11.el7.x86_64.rpm
| 1.5 MB
00:00
(11/11): mpfr-3.1.1-4.el7.x86_64.rpm
| 203 kB
00:00
--------------------------------------------------------------------------------
总计
42 MB/s |
32 MB
00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
正在安装
: mpfr-3.1.1-4.el7.x86_64
1/16
正在安装
: libmpc-1.0.1-3.el7.x86_64
2/16
正在更新
: libgcc-4.8.5-11.el7.x86_64
3/16
正在更新
: libstdc++-4.8.5-11.el7.x86_64
4/16
正在安装
: libstdc++-devel-4.8.5-11.el7.x86_64
5/16
正在安装
: cpp-4.8.5-11.el7.x86_64
6/16
正在更新
: libgomp-4.8.5-11.el7.x86_64
7/16
正在安装
: gcc-4.8.5-11.el7.x86_64
8/16
正在更新
: libgcc-4.8.5-11.el7.i686
9/16
正在安装
: gcc-c++-4.8.5-11.el7.x86_64
10/16
正在更新
: libstdc++-4.8.5-11.el7.i686
11/16
清理
: libstdc++-4.8.5-4.el7
12/16
清理
: libstdc++-4.8.5-4.el7
13/16
清理
: libgcc-4.8.5-4.el7
14/16
清理
: libgcc-4.8.5-4.el7
15/16
清理
: libgomp-4.8.5-4.el7.x86_64
16/16
验证中
: libmpc-1.0.1-3.el7.x86_64
1/16
验证中
: gcc-c++-4.8.5-11.el7.x86_64
2/16
验证中
: mpfr-3.1.1-4.el7.x86_64
3/16
验证中
: libgcc-4.8.5-11.el7.x86_64
4/16
验证中
: libstdc++-4.8.5-11.el7.i686
5/16
验证中
: cpp-4.8.5-11.el7.x86_64
6/16
验证中
: libgomp-4.8.5-11.el7.x86_64
7/16
验证中
: gcc-4.8.5-11.el7.x86_64
8/16
验证中
: libstdc++-4.8.5-11.el7.x86_64
9/16
验证中
: libstdc++-devel-4.8.5-11.el7.x86_64
10/16
验证中
: libgcc-4.8.5-11.el7.i686
11/16
验证中
: libstdc++-4.8.5-4.el7.x86_64
12/16
验证中
: libgcc-4.8.5-4.el7.i686
13/16
验证中
: libgomp-4.8.5-4.el7.x86_64
14/16
验证中
: libgcc-4.8.5-4.el7.x86_64
15/16
验证中
: libstdc++-4.8.5-4.el7.i686
16/16
已安装:
gcc.x86_64 0:4.8.5-11.el7
gcc-c++.x86_64 0:4.8.5-11.el7
作为依赖被安装:
cpp.x86_64 0:4.8.5-11.el7
libmpc.x86_64 0:1.0.1-3.el7
libstdc++-devel.x86_64 0:4.8.5-11.el7
mpfr.x86_64 0:3.1.1-4.el7
作为依赖被升级:
libgcc.i686 0:4.8.5-11.el7
libgcc.x86_64 0:4.8.5-11.el7
libgomp.x86_64 0:4.8.5-11.el7
libstdc++.i686 0:4.8.5-11.el7
libstdc++.x86_64 0:4.8.5-11.el7
完毕!

2.出现异常:plugins/python/uwsgi_python.h:2:20: 致命错误:Python.h:没有那个文件或目录

一般出现这种问题,都是 xx-devel没有安装,那我们就试一下看看有没有 python-devel

 yum install python-devel
 [root@VM_153_111_centos SoftWare]# yum install python-devel
已加载插件:fastestmirror, langpacks
Repository epel is listed more than once in the configuration
Loading mirror speeds from cached hostfile
正在解决依赖关系
--> 正在检查事务
---> 软件包 python-devel.x86_64.0.2.7.5-48.el7 将被 安装
--> 正在处理依赖关系 python(x86-64) = 2.7.5-48.el7,它被软件包 python-devel-2.7.5-48.el7.x86_64 需要
--> 正在检查事务
---> 软件包 python.x86_64.0.2.7.5-39.el7_2 将被 升级
---> 软件包 python.x86_64.0.2.7.5-48.el7 将被 更新
--> 正在处理依赖关系 python-libs(x86-64) = 2.7.5-48.el7,它被软件包 python-2.7.5-48.el7.x86_64 需要
--> 正在检查事务
---> 软件包 python-libs.x86_64.0.2.7.5-39.el7_2 将被 升级
---> 软件包 python-libs.x86_64.0.2.7.5-48.el7 将被 更新
--> 解决依赖关系完成
依赖关系解决
================================================================================
Package
架构
版本
源
大小
================================================================================
正在安装:
python-devel
x86_64
2.7.5-48.el7
os
393 k
为依赖而更新:
python
x86_64
2.7.5-48.el7
os
90 k
python-libs
x86_64
2.7.5-48.el7
os
5.6 M
事务概要
================================================================================
安装
1 软件包
升级
( 2 依赖软件包)
总下载量:6.1 M
Is this ok [y/d/N]: y
Downloading packages:
Delta RPMs disabled because /usr/bin/applydeltarpm not installed.
(1/3): python-devel-2.7.5-48.el7.x86_64.rpm
| 393 kB
00:00
(2/3): python-2.7.5-48.el7.x86_64.rpm
|
90 kB
00:00
(3/3): python-libs-2.7.5-48.el7.x86_64.rpm
| 5.6 MB
00:00
--------------------------------------------------------------------------------
总计
17 MB/s | 6.1 MB
00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
正在更新
: python-libs-2.7.5-48.el7.x86_64
1/5
正在更新
: python-2.7.5-48.el7.x86_64
2/5
正在安装
: python-devel-2.7.5-48.el7.x86_64
3/5
清理
: python-2.7.5-39.el7_2.x86_64
4/5
清理
: python-libs-2.7.5-39.el7_2.x86_64
5/5
验证中
: python-2.7.5-48.el7.x86_64
1/5
验证中
: python-devel-2.7.5-48.el7.x86_64
2/5
验证中
: python-libs-2.7.5-48.el7.x86_64
3/5
验证中
: python-libs-2.7.5-39.el7_2.x86_64
4/5
验证中
: python-2.7.5-39.el7_2.x86_64
5/5
已安装:
python-devel.x86_64 0:2.7.5-48.el7
作为依赖被升级:
python.x86_64 0:2.7.5-48.el7
python-libs.x86_64 0:2.7.5-48.el7
完毕!

再次执行pip install uwsgi

[root@VM_153_111_centos SoftWare]# pip install uwsgi
Collecting uwsgi
Using cached uwsgi-2.0.15.tar.gz
Installing collected packages: uwsgi
Running setup.py install for uwsgi ... done
Successfully installed uwsgi-2.0.15

刚在mac上试了下,直接sudo pip install uwsgi就OK了,不过还是搭服务器上吧,就上面两个坑,陆续装下包就行了。

测试uwsgi是否正常:新建test.py文件,内容如下:


def application(env, start_response):
start_response('200 OK', [('Content-Type','text/html')])
return "Hello World"

然后在终端运行:

uwsgi –http :8001 –wsgi-file test.py

在浏览器内输入:ip:8001,有“Hello World”输出。

二、Ngnix安装
nignix官网最新版为1.13.0,可以通过以下命令下载,版本更新的话,只要将命令中的版本换成最新的,还是可以下载。

wget http://nginx.org/download/nginx-1.13.0.tar.gz
tar -xvzf nginx-1.13.0.tar.gz
cd nginx-1.13.0
 ./configure --prefix=/usr/local/nginx-1.13.0 --with-http_stub_status_module --with-http_gzip_static_module 

上面是在centos7.2服务器上安装的,mac下,可以通过命令一键安装

brew install nginx

三、uwsgi 配置

uwsgi支持ini、xml等多种配置方式,本文以 ini 为例, 在/ect/目录下新建uwsgi9090.ini,添加如下配置:

[uwsgi]
socket = 127.0.0.1:9090
master = true
//主进程
vhost = true
//多站模式
no-site = true
//多站模式时不设置入口模块和文件
workers = 2
//子进程数
reload-mercy = 10

vacuum = true
//退出、重启时清理文件
max-requests = 1000

limit-as = 512
buffer-size = 30000
pidfile = /var/run/uwsgi9090.pid
//pid文件,用于下面的脚本启动、停止该进程
daemonize = /website/uwsgi9090.log

四、Nginx 配置

找到nginx的安装目录(我的安装目录是:

[root@VM_153_111_centos nginx-1.13.0]# pwd
/usr/local/nginx-1.13.0
```),打开conf/nginx.conf文件,修改server配置:
<div class="se-preview-section-delimiter"></div>

server {
listen 80;
server_name localhost;


location / {
include
uwsgi_params;
uwsgi_pass
127.0.0.1:9090;
//必须和uwsgi中的设置一致
uwsgi_param UWSGI_SCRIPT demosite.wsgi;
//入口文件,即wsgi.py相对于项目根目录的位置,“.”相当于一层目录
uwsgi_param UWSGI_CHDIR /demosite;
//项目根目录
index
index.html index.htm;
client_max_body_size 35m;
}
}

“`

最后

以上就是优雅心锁为你收集整理的Django的安装与服务器的搭建的坑的全部内容,希望文章能够帮你解决Django的安装与服务器的搭建的坑所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(39)

评论列表共有 0 条评论

立即
投稿
返回
顶部