2017-08-12 117 views
0

我要在虚拟主机的ubuntu服务器上设置一个django应用程序。
我配置了我的虚拟主机,以便出现一些东西!
但它仍然存在上给我,因为有些问题500内部错误,你在这里看到:关于wsgi.py中的wsgi模块的Ubuntu 16.04服务器错误

mod_wsgi (pid=31972): Target WSGI script '/var/www/mmcba/mmemp/wsgi.py' cannot be loaded as Python module. 
mod_wsgi (pid=31972): Exception occurred processing WSGI script '/var/www/mmcba/mmemp/wsgi.py'. 
Traceback (most recent call last): 
    File "/var/www/mmcba/mmemp/wsgi.py", line 25, in <module> 
    application = django.core.handlers.wsgi.WSGIHandler() 
    File "/usr/local/lib/python3.5/dist-packages/django/core/handlers/wsgi.py", line 151, in __init__ 
    self.load_middleware() 
    File "/usr/local/lib/python3.5/dist-packages/django/core/handlers/base.py", line 80, in load_middleware 
    middleware = import_string(middleware_path) 
    File "/usr/local/lib/python3.5/dist-packages/django/utils/module_loading.py", line 20, in import_string 
    module = import_module(module_path) 
    File "/usr/lib/python3.5/importlib/__init__.py", line 126, in import_module 
    return _bootstrap._gcd_import(name[level:], package, level) 
    File "<frozen importlib._bootstrap>", line 986, in _gcd_import 
    File "<frozen importlib._bootstrap>", line 969, in _find_and_load 
    File "<frozen importlib._bootstrap>", line 958, in _find_and_load_unlocked 
    File "<frozen importlib._bootstrap>", line 673, in _load_unlocked 
    File "<frozen importlib._bootstrap_external>", line 665, in exec_module 
    File "<frozen importlib._bootstrap>", line 222, in _call_with_frames_removed 
    File "/usr/local/lib/python3.5/dist-packages/django/contrib/auth/middleware.py", line 4, in <module> 
    from django.contrib.auth.backends import RemoteUserBackend 
    File "/usr/local/lib/python3.5/dist-packages/django/contrib/auth/backends.py", line 4, in <module> 
    from django.contrib.auth.models import Permission 
    File "/usr/local/lib/python3.5/dist-packages/django/contrib/auth/models.py", line 4, in <module> 
    from django.contrib.auth.base_user import AbstractBaseUser, BaseUserManager 
    File "/usr/local/lib/python3.5/dist-packages/django/contrib/auth/base_user.py", line 52, in <module> 
    class AbstractBaseUser(models.Model): 
    File "/usr/local/lib/python3.5/dist-packages/django/db/models/base.py", line 110, in __new__ 
    app_config = apps.get_containing_app_config(module) 
    File "/usr/local/lib/python3.5/dist-packages/django/apps/registry.py", line 247, in get_containing_app_config 
    self.check_apps_ready() 
    File "/usr/local/lib/python3.5/dist-packages/django/apps/registry.py", line 125, in check_apps_ready 
    raise AppRegistryNotReady("Apps aren't loaded yet.") 
django.core.exceptions.AppRegistryNotReady: Apps aren't loaded yet. 

我真的很感谢您的答复


更新#2

如果我使用此代码在我的wsgi.py:

import os 

from django.core.wsgi import get_wsgi_application 

os.environ['DJANGO_SETTINGS_MODULE'] = 'myapp.settings' 
application = get_wsgi_application() 

堆栈跟踪将成为此:(mmemp是我的应用程序的名称):

mod_wsgi (pid=5579): Target WSGI script '/var/www/mmcba/mmemp/wsgi.py' cannot be loaded as Python module. 
mod_wsgi (pid=5579): Exception occurred processing WSGI script '/var/www/mmcba/mmemp/wsgi.py'. 
Traceback (most recent call last): 
    File "/var/www/mmcba/mmemp/wsgi.py", line 16, in <module> 
    application = get_wsgi_application() 
    File "/usr/local/lib/python2.7/dist-packages/django/core/wsgi.py", line 13, in get_wsgi_application 
    django.setup(set_prefix=False) 
    File "/usr/local/lib/python2.7/dist-packages/django/__init__.py", line 22, in setup 
    configure_logging(settings.LOGGING_CONFIG, settings.LOGGING) 
    File "/usr/local/lib/python2.7/dist-packages/django/conf/__init__.py", line 56, in __getattr__ 
    self._setup(name) 
    File "/usr/local/lib/python2.7/dist-packages/django/conf/__init__.py", line 41, in _setup 
    self._wrapped = Settings(settings_module) 
    File "/usr/local/lib/python2.7/dist-packages/django/conf/__init__.py", line 110, in __init__ 
    mod = importlib.import_module(self.SETTINGS_MODULE) 
    File "/usr/lib/python2.7/importlib/__init__.py", line 37, in import_module 
    __import__(name) 
ImportError: No module named mmemp.settings 

我的虚拟主机配置,这就是:

Listen 80 

NameVirtualHost 148.251.218.202:80 

<VirtualHost *:80> 
     ServerAdmin [email protected] 
     ServerName mmcba.com 
     ServerAlias www.mmcba.com 

     WSGIScriptAlias//var/www/mmcba/mmemp/wsgi.py 

     <Directory /var/www/mmcba/mmemp> 
     <Files wsgi.py> 
     Require all granted 
     </Files> 
     </Directory> 

     ErrorLog ${APACHE_LOG_DIR}/error.log 
     CustomLog ${APACHE_LOG_DIR}/access.log combined 

</VirtualHost> 
+0

着Django的版本,您使用的是适用于每一个未知的模块中您的应用程序? – akhilsp

+0

Django 1.10使用Python 3.5.2 – Arshamnm

+0

显示您正在使用的mod_wsgi配置。它看起来并不像你告诉mod_wsgi你项目所在的位置。 –

回答

1

解决方案:
将项目和应用程序目录添加到wsgi.py中的sys.path,它会工作。

import sys 
sys.path.append('<Project_Directory>') 
sys.path.append('<Project_Directory>/AppName') 
1

如果你使用Django 1.7+做这个替换您的wsgi.py的内容:

import os 

from django.core.wsgi import get_wsgi_application 

os.environ['DJANGO_SETTINGS_MODULE'] = 'myapp.settings' 
application = get_wsgi_application() 

或尝试添加以下行settings.py

import django 
django.setup() 

还有一个类似的问题here。希望能帮助到你。

+0

谢谢,但它不是工作我在我的问题的底部插入了新的堆栈跟踪 – Arshamnm

+0

该项目是否在您的本地计算机上工作?还请检查您的应用程序目录(mmemp)中是否有__init __。py'文件 – akhilsp

+0

当然,它的工作原理一个魅力!是啊有一个:( – Arshamnm

相关问题