簡體   English   中英

Django生產部署

[英]Django Deployment for Production

我在本地計算機上運行了Django,但是現在我想將Django站點部署到生產服務器上。 我的服務器是Ubuntu 14.04服務器,具有Apache 2.x,python 2.7和Django 1.8。 我已經嘗試將Django的基本配置用於Apache和mod_wsgi 鏈接 ,但我一直收到以下錯誤:

我的網站

內部服務器錯誤

服務器遇到內部錯誤或配置錯誤,無法完成您的請求。

這是我收到的Apache錯誤日志中的錯誤:

mod_wsgi (pid=14962): Target WSGI script '/var/www/tmws/tmws/wsgi.py' cannot be loaded as Python module.,  
mod_wsgi (pid=14962): Exception occurred processing WSGI script '/var/www/tmws/tmws/wsgi.py'.,  
Traceback (most recent call last):,  
File "/var/www/tmws/tmws/wsgi.py", line 21, in <module>,  
  application = get_wsgi_application(),  
File "/usr/local/lib/python2.7/dist-packages/django/core/wsgi.py", line 14, in get_wsgi_application,  
  django.setup(),  
File "/usr/local/lib/python2.7/dist-packages/django/__init__.py", line 18, in setup,  
  apps.populate(settings.INSTALLED_APPS),  
File "/usr/local/lib/python2.7/dist-packages/django/apps/registry.py", line 85, in populate,  
  app_config = AppConfig.create(entry),  
File "/usr/local/lib/python2.7/dist-packages/django/apps/config.py", line 86, in create,  
  module = import_module(entry),  
File "/usr/lib/python2.7/importlib/__init__.py", line 37, in import_module,  
  __import__(name),  
File "/var/www/tmws/django_tables2/__init__.py", line 2, in <module>,  
  from .tables import Table,  
File "/var/www/tmws/django_tables2/tables.py", line 15, in <module>,  
  from . import columns,  
File "/var/www/tmws/django_tables2/columns/__init__.py", line 1, in <module>,  
  from .base import library, BoundColumn, BoundColumns, Column,  
File "/var/www/tmws/django_tables2/columns/base.py", line 10, in <module>,  
  from django_tables2.utils import Accessor, AttributeDict, OrderBy, OrderByTuple,  
File "/var/www/tmws/django_tables2/utils.py", line 111, in <module>,  
  @six.python_2_unicode_compatible,  
AttributeError: 'module' object has no attribute 'python_2_unicode_compatible',  

這是我的apache2.conf文件:

...

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

...

WSGIScriptAlias / /var/www/tmws/tmws/wsgi.py
WSGIPythonPath /var/www/tmws

這是我的wsgi.py文件:

import os, sys

from django.core.wsgi import get_wsgi_application

sys.path.append('/home/ubuntu/gather/src')
sys.path.append('/usr/local/lib/python2.7/dist-packages')
sys.path.append('/var/www/tmws')
sys.path.append('/var/www/tmws/tmws')

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

application = get_wsgi_application()

這是我的網站.conf文件:

<VirtualHost *:80>
    ServerAdmin xxxxxxxx
    ServerName xxxxxxxxxxx
    DocumentRoot /var/www/tmws
    WSGIScriptAlias / /var/www/tmws/tmws/wsgi.py

    ErrorLog ${APACHE_LOG_DIR}/TMWSerror.log
    CustomLog ${APACHE_LOG_DIR}/TMWSaccess.log combined

</VirtualHost>

任何幫助將不勝感激。 如果還有其他可以幫忙的地方,請告訴我。

您的系統可能正在使用不包含python_2_unicode_compatible方法的six python軟件包的舊版本。 將六個升級到最新版本應該可以解決此問題:

pip install --upgrade six

就是說,強烈建議從虛擬環境中運行Django,而不是在系統級別安裝軟件包-如果某些系統軟件包由於某種原因依賴於six舊版本,那么您可能會遇到其他問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM