前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CentOS下uWSGI+Django成功搭建记录

CentOS下uWSGI+Django成功搭建记录

作者头像
星哥玩云
发布2022-07-11 09:29:52
2770
发布2022-07-11 09:29:52
举报
文章被收录于专栏:开源部署开源部署

先说明一下本人的环境:

uWSGI版本:2.0.14(yum install安装)

Django版本:1.10.6(pip install安装)

Python版本:2.7.5

Nginx版本:1.10.2(yum install安装)

在 http://www.linuxidc.com/Linux/2017-03/141794.htm,我们已经实现了网页打开"good bye,logan"的效果,可见Web Client <===> uWSGI <===> Python是通畅的,现在我们要调整看看django与uwsgi是否是通畅的。

首先,我们在/django这个目录下,#django-admin.py startproject logan,建立了一个叫logan的project,然后在/django/logan/logan里会有一个自动生成的wsgi.py,打开一看,里面的内容如下:

""" WSGI config for logan project. It exposes the WSGI callable as a module-level variable named ``application``. For more information on this file, see https://docs.djangoproject.com/en/1.10/howto/deployment/wsgi/ """ import os from django.core.wsgi import get_wsgi_application os.environ.setdefault("DJANGO_SETTINGS_MODULE", "logan.settings") application = get_wsgi_application()

我们原来的目标就是测试django跟uwsgi的链接是否正常,那么返回到/django/logan,使用#python manage.py runserver 0.0.0.0:8000启动django,然后打开浏览器,在地址栏里输入“外网ip:8000”,看到了如下的界面:

可见django已经启动成功,但是前面说过了,这种方法只能测试环境里小规模的玩玩,完全不推荐拿去生产化境里。所以现在我们用uwsgi在8000来启动一下django。

首先,先停止了原来我们启动的django。

然后,使用命令#uwsgi --http :8000 --wsgi-file logan.py,反馈错误信息如下:

出现这个错误,那就#yum install uwsgi-plugin-python,同时使用#uwsgi --plugin python --http-socket :8001 --wsgi-file /django/logan/logan/wsgi.py,这样却又出了一个新错误:

提示说:ImportError: No module named logan.settings。可是当我使用python客户端单独测试的时候,这个语句是可以使用的,如图:

肯多人都卡在了这种情况,这个时候我们需要换一个命令:#uwsgi --plugin python --http-socket :8001 --chdir /django/logan/ --wsgi-file /django/logan/logan/wsgi.py。然后我们在浏览器地址栏里输入“外网地址:8001”就可以看到如下网页:

可见,我们已经通过uwsgi启动了原本已经关闭了的django,这样就达到了Web Client <===> uWSGI <===> Django的目的。

如果过程中出现了端口被占用的情况,比如8002端口已经被使用了:

probably another instance of uWSGI is running on the same address (:8002). bind(): Address already in use [core/socket.c line 764]

那么就可以使用#lsof -i:8002,然后把对应的进程干掉就好了。

最后附赠python脚本一个,这个脚本可以显示python的path,内容如下:

import os print '===== sys.path / PYTHONPATH =====' for k in sorted(os.environ.keys()):     v = os.environ[k]     print ('%-30s %s' % (k,v[:70]))

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档