我是靠谱客的博主 优雅心锁,这篇文章主要介绍Django的安装与服务器的搭建的坑,现在分享给大家,希望可以做个参考。

一、安装uwsgi

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

复制代码
1
pip install uwsgi

1.可能出现如下异常:

复制代码
1
2
raise Exception("you need a C compiler to build uWSGI") Exception: you need a C compiler to build uWSGI

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

复制代码
1
yum install -y gcc gcc-c++
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
[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

复制代码
1
yum install python-devel
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
[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

复制代码
1
2
3
4
5
6
7
[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文件,内容如下:

复制代码
1
2
3
4
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,可以通过以下命令下载,版本更新的话,只要将命令中的版本换成最新的,还是可以下载。

复制代码
1
wget http://nginx.org/download/nginx-1.13.0.tar.gz
复制代码
1
2
tar -xvzf nginx-1.13.0.tar.gz cd nginx-1.13.0
复制代码
1
./configure --prefix=/usr/local/nginx-1.13.0 --with-http_stub_status_module --with-http_gzip_static_module

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

复制代码
1
brew install nginx

三、uwsgi 配置

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

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
[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的安装目录(我的安装目录是:

复制代码
1
2
3
4
5
[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;

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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内容请搜索靠谱客的其他文章。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部