2017-04-07 41 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 –