Django WSGI Error:class.__dict__ not accessible in restricted mode

starof發表於2015-04-21

一、問題

今天網站出了一個錯誤:

RuntimeError at /index.html

class.__dict__ not accessible in restricted mode

 

二、原因

用了兩次WSGIScriptAlias,類似於:

WSGIScriptAlias /my_app /home/myuser/myapp/wsgi_scripts/deployment.wsgi

WSGIScriptAlias /my_app_demo /home/myuser/myapp/wsgi_scripts/deployment.wsgi

導致執行時報錯:RuntimeError: class.__dict__ not accessible in restricted mode

有兩個程式都要用相同的資源,先執行的程式佔用了必要資源,導致隨後的程式拿不到資源而報錯。

我的情況是因為給同一個app配置兩個域名,用了兩個<VirtualHost>,同樣就用了兩次WSGIScriptAlias。

三、解決辦法

在apache2的配置里加一個配置項(在虛擬主機配置之前新增)

WSGIApplicationGroup %{GLOBAL}

然後重啟apache服務。

原因是一般情況,一個wsgi app可以執行在單獨的python直譯器裡。所以使用WSGIApplicationGroup直接告訴mod_wsgi不要使用單獨的python直譯器,直接在同一個全域性的直譯器裡互動。

四、參考

http://www.mediacore.com/blog/hosting-multiple-wsgi-applications-with-apache

mod_wsgi 流程簡單分析: 一個嵌入python的例子

https://github.com/nkchenz/ajourneyintopythonsource/blob/master/100.rst

部署django

http://djangobook.py3k.cn/2.0/chapter12/

ps:時隔四個月,今天又遇到了同樣的問題,居然是通過google找到了我的這篇文章解決了問題^_^【2015/8/24】

 

 

本文作者starof,因知識本身在變化,作者也在不斷學習成長,文章內容也不定時更新,為避免誤導讀者,方便追根溯源,請諸位轉載註明出處:http://www.cnblogs.com/starof/p/4443342.html有問題歡迎與我討論,共同進步。

相關文章