2016-01-23 84 views
1

我已阅读过类似的问题/答案,但我无法解决这种情况。所以我安装了WSGI,并想从Apache服务我的django应用程序。apache wsgi django路径问题挫折

我最开始做的是用virtualenv创建包含python相关内容的文件夹测试。所以,我没有

virtualenv environment 

我的虚拟主机文件看起来像:

<VirtualHost *:8001> 
WSGIDaemonProcess myapp python-path=/var/www/vhosts/myapp.com/:/var/www/vhosts/myapp.com/environment/lib/python2.7/:/var/www/vhosts/myapp.com/environment/lib/python2.7/sites-available 
WSGIScriptAlias//var/www/vhosts/myapp/testing/wsgi.py 
... 
... 

我wsgi.py是:

import os 

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "testing.settings") 

from django.core.wsgi import get_wsgi_application 

application = get_wsgi_application() 

一旦访问我得到一个服务器内部错误和错误网页.log说基本上有2条错误信息:

[wsgi:error] [pid 31165] [client 192.168.0.3:31337] mod_wsgi (pid 31165): Target WSGI script '/var/www/vhosts/myapp.com/testing/wsgi.py' cannot be loaded as Python Module 

,并在之后几行文字,结束于:

[wsgi:error] [pid 31165] [client 192.168.0.3:31337] mod_wsgi (pid 31165): ImportError: Could not import settings 'testing.settings' (is it on sys.path? Is there an import error in the settings file?) 

我就发现的第一个错误味精这个Target WSGI script cannot be loaded as Python module但是我想不出解决问题。我得到的是,这个错误并没有阻止Apache尝试加载我的python(django)项目,因为下一个错误是我认为会导致500响应的原因。对于第二个错误,我发现这是添加路径(我已经做了我的vhost文件!)

我试过其他的解决方案,例如在我的apache.conf中添加WSGIPythonPath,但没有奏效。

我wsgi.py文件如下:

import os 
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "testing.settings") 

from django.core.wsgi import get_wsgi_application 

application = get_wsgi_application() 

我也尝试添加

import sys 
    os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings' 
    sys.path.append('/var/www/vhosts/myapp/testing') 
    import mysite.settings 

没有工作。

+0

做,如果你在目录中执行'蟒蛇wsgi.py'你收到任何错误讯息* /无功/网络/虚拟主机/ MYAPP /测试/ * ? –

+0

是的。我遇到了与导入错误相同的错误。它肯定是一个路径问题,但我不明白我在做什么错误。:( – user3124171

+0

如果你有* wsgi.py *(带'sys.path.append等)的更新版本,它可能会更好 –

回答

0

你可以尝试移动wsgi.pysettings.py/无功/网络/虚拟主机/ MYAPP /测试/ mysite的

WSGIPythonPath /var/www/vhosts/myapp/testing 
<VirtualHost *:8000> 

    WSGIScriptAlias//var/www/vhosts/myapp/testing/mysite/wsgi.py 
    # WSGIApplicationGroup is needed to prevent some problem? 
    WSGIApplicationGroup %{GLOBAL} 
</VirtualHost> 

,并在wsgi.py文件

os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings' 
sys.path.append('/var/www/vhosts/myapp/testing') 
import mysite.settings 

我想我在升级django时遇到过类似的问题。事情开始工作后,我搬到settings.pywsgi.py

+0

Thanks for your answer。Did not work though :(相同的错误信息 – user3124171

+0

@ user3124171我在'wsgi.py'中也放了一些相关的行,我忘记了放置他们在这里 –

+0

这些行我也发现他们也在另一个线程。然而,这些不适合我...我不知道发生了什么:(我被诅咒 – user3124171