新聞中心
先說明一下本人的環(huán)境:

uWSGI版本:2.0.14(yum install安裝)
Django版本:1.10.6(pip install安裝)
Python版本:2.7.5(阿里云 centos 7自帶)
Nginx版本:1.10.2(yum install安裝)
首先,我們在/django這個目錄下,#django-admin.py startproject logan,建立了一個叫l(wèi)ogan的project,然后在/django/logan/logan里會有一個自動生成的wsgi.py,打開一看,里面的內(nèi)容如下:
"""
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,然后打開瀏覽器,在地址欄里輸入“外網(wǎng)ip:8000”,看到了如下的界面:
可見django已經(jīng)啟動成功,但是前面說過了,這種方法只能測試環(huán)境里小規(guī)模的玩玩,完全不推薦拿去生產(chǎn)化境里。所以現(xiàn)在我們用uwsgi在8000來啟動一下django。
首先,先停止了原來我們啟動的django。
然后,使用命令#uwsgi --http :8000 --wsgi-file logan.py,反饋錯誤信息如下:
出現(xiàn)這個錯誤,那就#yum install uwsgi-plugin-python,同時使用#uwsgi --plugin python --http-socket :8001 --wsgi-file /django/logan/logan/wsgi.py,這樣卻又出了一個新錯誤:
提示說:ImportError: No module named logan.settings??墒钱斘沂褂胮ython客戶端單獨測試的時候,這個語句是可以使用的,如圖:
肯多人都卡在了這種情況,這個時候我們需要換一個命令:#uwsgi --plugin python --http-socket :8001 --chdir /django/logan/ --wsgi-file /django/logan/logan/wsgi.py。然后我們在瀏覽器地址欄里輸入“外網(wǎng)地址:8001”就可以看到如下網(wǎng)頁:
可見,我們已經(jīng)通過uwsgi啟動了原本已經(jīng)關(guān)閉了的django,這樣就達到了Web Client <===> uWSGI <===> Django的目的。
如果過程中出現(xiàn)了端口被占用的情況,比如8002端口已經(jīng)被使用了:
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,然后把對應(yīng)的進程干掉就好了。
最后附贈python腳本一個,這個腳本可以顯示python的path,內(nèi)容如下:
import os
print '===== sys.path / PYTHONPATH ====='
for k in sorted(os.environ.keys()):
v = os.environ[k]
print ('%-30s %s' % (k,v[:70]))
文章標題:CentOS下uWSGI+Django成功搭建記錄
URL分享:http://fisionsoft.com.cn/article/ccciiso.html


咨詢
建站咨詢
