Python 使用Django mod_wsgi导入恐怖
我想在CentOS上将Django项目从测试服务器移动到Apache 2.2.15版。我使用[1]安装了mod_wsgi,并尝试使用[2]将我的项目装载为wsgi应用程序 我遵循Hello World示例[3],将测试wsgi.py文件放在与现有Django项目文件wsgi.py相同的目录中。例如,我可以通过wget访问Python 使用Django mod_wsgi导入恐怖,python,django,apache,mod-wsgi,Python,Django,Apache,Mod Wsgi,我想在CentOS上将Django项目从测试服务器移动到Apache 2.2.15版。我使用[1]安装了mod_wsgi,并尝试使用[2]将我的项目装载为wsgi应用程序 我遵循Hello World示例[3],将测试wsgi.py文件放在与现有Django项目文件wsgi.py相同的目录中。例如,我可以通过wget访问 <VirtualHost *:80> DocumentRoot <abs_path>/myproject/myproject WSGIScr
<VirtualHost *:80>
DocumentRoot <abs_path>/myproject/myproject
WSGIScriptAlias /wsgi <abs_path>/myproject/myproject/test_wsgi.wsgi
</VirtualHost>
基于[6],我在wsgi.py中添加了python2.7站点包的路径:
# add the myproject project path into the sys.path
sys.path.append('<PATH_TO_MY_DJANGO_PROJECT>/myproject')
# add the python2.7 site-packages path to the sys.path
sys.path.append('<PATH_TO_python2.7>/Lib/site-packages')
我还在httpd.conf中添加了python2.7的路径:
WSGIPythonPath <PATH_TO_PROJECT>:<PATH_TO_python2.7>/Lib/site-packages
尽管如此,我还是得到了500个内部服务器错误:ImportError:没有名为django.core.wsgi的模块
有什么建议吗
[1]
[2]
[3]
[4]
[5]
[6] 去阅读实际的Django文档。在这里,您将看到设置Python模块搜索路径的要求。你不应该有做过那件事的证据
另外,不要将DocumentRoot设置为Django项目的父目录。您正在向安全问题敞开大门。更重要的是,因为您将Django应用程序安装在一个子URL上,这意味着远程用户现在可以从站点的根目录下载您的项目源代码,包括带有数据库密码的设置文件等。查看您在/var/log/apache*中的日志。日志是否在django设置中设置?日志显示ImportError:没有名为django.core.wsgi的模块。试图通过附加到此链接中讨论的sys.path来寻址-。还没有奏效,但正在研究这一点。我没有安排主持人。谢谢,格雷厄姆。是我干的。在我上面的文章中详细阐述了:获取ImportError:其他线程中没有报告名为django.core.wsgi的模块。尝试使用您和其他人以前制定的推荐策略解决此问题。您指定的路径中是否确实有“Lib”而不是“Lib”?是否启用了SELinux?Apache运行时的用户是否可以访问/读取目录?明白了,这是3:python 2.7站点包的权限问题。解决了这个问题,它成功了。
# add the myproject project path into the sys.path
sys.path.append('<PATH_TO_MY_DJANGO_PROJECT>/myproject')
# add the python2.7 site-packages path to the sys.path
sys.path.append('<PATH_TO_python2.7>/Lib/site-packages')
WSGIPythonPath <PATH_TO_PROJECT>:<PATH_TO_python2.7>/Lib/site-packages