2017-04-07 103 views
1

我很努力地让Apache 2.4.7为使用mod_wsgi 4.5.15和Python 3.5.3作为虚拟环境的Django 1.8.17应用程序提供服务。这是我机器上唯一的虚拟环境(Linux Mint 17.3)。使用虚拟环境配置mod_wsgi的问题

我在浏览器中出现“内部服务器错误”。

我的Apache的错误日志中说:

[Thu Apr 06 19:48:22.530935 2017] [mpm_prefork:notice] [pid 4476] AH00163: Apache/2.4.7 (Ubuntu) PHP/5.5.9-1ubuntu4.21 mod_wsgi/4.5.15 Python/3.5 configured -- resuming normal operations 
[Thu Apr 06 19:48:22.531008 2017] [core:notice] [pid 4476] AH00094: Command line: '/usr/sbin/apache2' 
[Thu Apr 06 19:48:28.165360 2017] [wsgi:error] [pid 4480] [remote 127.0.0.1:34901] mod_wsgi (pid=4480): Target WSGI script '/home/magic-rat/ektropy_project/ektropy_project/wsgi.py' cannot be loaded as Python module. 
[Thu Apr 06 19:48:28.165494 2017] [wsgi:error] [pid 4480] [remote 127.0.0.1:34901] mod_wsgi (pid=4480): Exception occurred processing WSGI script '/home/magic-rat/ektropy_project/ektropy_project/wsgi.py'. 
[Thu Apr 06 19:48:28.166150 2017] [wsgi:error] [pid 4480] [remote 127.0.0.1:34901] Traceback (most recent call last): 
[Thu Apr 06 19:48:28.166210 2017] [wsgi:error] [pid 4480] [remote 127.0.0.1:34901] File "/home/magic-rat/ektropy_project/ektropy_project/wsgi.py", line 16, in <module> 
[Thu Apr 06 19:48:28.166218 2017] [wsgi:error] [pid 4480] [remote 127.0.0.1:34901]  application = get_wsgi_application() 
[Thu Apr 06 19:48:28.166230 2017] [wsgi:error] [pid 4480] [remote 127.0.0.1:34901] File "/home/magic-rat/virtualenvs/ektropy_project/lib/python3.5/site-packages/django/core/wsgi.py", line 14, in get_wsgi_application 
[Thu Apr 06 19:48:28.166238 2017] [wsgi:error] [pid 4480] [remote 127.0.0.1:34901]  django.setup() 
[Thu Apr 06 19:48:28.166250 2017] [wsgi:error] [pid 4480] [remote 127.0.0.1:34901] File "/home/magic-rat/virtualenvs/ektropy_project/lib/python3.5/site-packages/django/__init__.py", line 17, in setup 
[Thu Apr 06 19:48:28.166257 2017] [wsgi:error] [pid 4480] [remote 127.0.0.1:34901]  configure_logging(settings.LOGGING_CONFIG, settings.LOGGING) 
[Thu Apr 06 19:48:28.166269 2017] [wsgi:error] [pid 4480] [remote 127.0.0.1:34901] File "/home/magic-rat/virtualenvs/ektropy_project/lib/python3.5/site-packages/django/conf/__init__.py", line 48, in __getattr__ 
[Thu Apr 06 19:48:28.166276 2017] [wsgi:error] [pid 4480] [remote 127.0.0.1:34901]  self._setup(name) 
[Thu Apr 06 19:48:28.166288 2017] [wsgi:error] [pid 4480] [remote 127.0.0.1:34901] File "/home/magic-rat/virtualenvs/ektropy_project/lib/python3.5/site-packages/django/conf/__init__.py", line 44, in _setup 
[Thu Apr 06 19:48:28.166295 2017] [wsgi:error] [pid 4480] [remote 127.0.0.1:34901]  self._wrapped = Settings(settings_module) 
[Thu Apr 06 19:48:28.166307 2017] [wsgi:error] [pid 4480] [remote 127.0.0.1:34901] File "/home/magic-rat/virtualenvs/ektropy_project/lib/python3.5/site-packages/django/conf/__init__.py", line 92, in __init__ 
[Thu Apr 06 19:48:28.166314 2017] [wsgi:error] [pid 4480] [remote 127.0.0.1:34901]  mod = importlib.import_module(self.SETTINGS_MODULE) 
[Thu Apr 06 19:48:28.166325 2017] [wsgi:error] [pid 4480] [remote 127.0.0.1:34901] File "/usr/local/lib/python3.5/importlib/__init__.py", line 126, in import_module 
[Thu Apr 06 19:48:28.166335 2017] [wsgi:error] [pid 4480] [remote 127.0.0.1:34901]  return _bootstrap._gcd_import(name[level:], package, level) 
[Thu Apr 06 19:48:28.166347 2017] [wsgi:error] [pid 4480] [remote 127.0.0.1:34901] File "<frozen importlib._bootstrap>", line 986, in _gcd_import 
[Thu Apr 06 19:48:28.166358 2017] [wsgi:error] [pid 4480] [remote 127.0.0.1:34901] File "<frozen importlib._bootstrap>", line 969, in _find_and_load 
[Thu Apr 06 19:48:28.166369 2017] [wsgi:error] [pid 4480] [remote 127.0.0.1:34901] File "<frozen importlib._bootstrap>", line 944, in _find_and_load_unlocked 
[Thu Apr 06 19:48:28.166381 2017] [wsgi:error] [pid 4480] [remote 127.0.0.1:34901] File "<frozen importlib._bootstrap>", line 222, in _call_with_frames_removed 
[Thu Apr 06 19:48:28.166392 2017] [wsgi:error] [pid 4480] [remote 127.0.0.1:34901] File "<frozen importlib._bootstrap>", line 986, in _gcd_import 
[Thu Apr 06 19:48:28.166418 2017] [wsgi:error] [pid 4480] [remote 127.0.0.1:34901] File "<frozen importlib._bootstrap>", line 969, in _find_and_load 
[Thu Apr 06 19:48:28.166429 2017] [wsgi:error] [pid 4480] [remote 127.0.0.1:34901] File "<frozen importlib._bootstrap>", line 956, in _find_and_load_unlocked 
[Thu Apr 06 19:48:28.166464 2017] [wsgi:error] [pid 4480] [remote 127.0.0.1:34901] ImportError: No module named 'ektropy_project' 

我的目录结构是:

home/magic-rat/ 
| 
|__________virtualenvs 
|    | 
|    |-ektropy_project 
|      | 
|      |-lib 
|       | 
|       |-python3.5 
|        | 
|        |-site_packages 
| 
|__________ektropy_project 
        | 
        |-manage.py 
        | 
        |-ektropy_project 
          | 
          |-wsgi.py 
          |-helloworld.wsgi (so you can see where it is) 

我的Apache的虚拟主机文件是:

<VirtualHost *:8000> 

ServerAdmin [email protected] 
DocumentRoot /var/www/html 

WSGIDaemonProcess ektropy_project python-home=/home/magic-rat/virtualenvs/ektropy_project 

WSGIProcessGroup ektropy_project 
WSGIApplicationGroup %{GLOBAL} 

WSGIScriptAlias//home/magic-rat/ektropy_project/ektropy_project/wsgi.py 

<Directory /home/magic-rat/ektropy_project/ektropy_project> 
    <Files wsgi.py> 
     Require all granted 
    </Files> 
</Directory> 

我的wsgi。 py文件我s:

import os 

from django.core.wsgi import get_wsgi_application 

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

application = get_wsgi_application() 

我相信mod_wsgi配置正确。我可以运行一个简单的hello_world程序,它可以工作。

我相信在所有文件上权限设置正确。

任何帮助表示赞赏。

+0

你的nginx看起来很好,因为你得到了Django错误日志。你有没有测试你的应用程序没有nginx('python manage.py runserver')?我认为这很奇怪,因为看起来你并没有将主模块添加到你的设置中...... – Rafael

+0

是的,它可以与内置的runserver命令一起使用。我做了 – Pat

回答

1

添加一个额外的选项WSGIDaemonProcess的:

python-path=/home/magic-rat/ektropy_project 

你必须告诉mod_wsgi的地方你的项目代码,以及因此它可以导入。

+0

。谢谢! 我收到了.css的动态内容和一些内容。我现在去弄明白。 我终于与Apache! – Pat

+0

有关静态文件,请参阅https://docs.djangoproject.com/en/1.10/howto/deployment/wsgi/modwsgi/#serving-files –