DjangoはApacheサーバにプロジェクトを展開します

書き込む前にDjangoはXAMPPのに展開時間が、バグがあり、投入Apacheのログを見つけることができないimport _ssl、私はapache2の上に直接取り付けられた怒ります

コンフィギュ約この記事はほとんど

必要なパッケージをインストールします。

sudo apt-get update
sudo apt-get install python-pip apache2 libapache2-mod-wsgi

そしてまた、運転中WSGIモジュールを確保するために:

sudo a2enmod wsgi

Pythonの仮想環境を設定します

システムのpythonを変更させないために、Pythonと実際に私はXAMPPライブラリシステムは、この上にない解決しなければならないことが疑われる
インストールツール:

sudo pip install virtualenv

私たちにprojectカタログに、新しい環境:

virtualenv myprojectenv

Pythonパッケージをインストールするには、仮想環境を入力します。

source myprojectenv/bin/activate

そして、これは、この社長でなければなりません:
(myprojectenv)user@host:~/myproject$
インストールdjangodjango rest_framework

pip install django==1.8
pip install djangorestframework==3.6.4

注: django2あなたが少し低いをインストールしたいので、スタートpython2はサポートしていませが、あなたは少し低いdjangorestframeworkインストールしていない場合は、上の一致は存在しません

Apacheの設定ファイルを変更します。/etc/apache2/sites-available/000-default.conf

  1. :パスDjangoプロジェクト、我々はデーモンモードを使用し、この時、3行を保持する主な必要性を修正WSGIDaemonProcessWSGIProcessGroupおよびWSGIScriptAlias
    `` `SHの
    #これは、静的な設定ファイルである
    エイリアス/デモ/ todolistの/静的/ /ルート/ウェブ/デモ/ todolistの/仕事/静的/

    許可、拒否#Order
    全てから#Allowを
    すべて付与された要求


    <ファイルwsgi.py>は
    すべて許可さを必要とします

    WSGIDaemonProcess python-ホーム= /ルート/ウェブ/デモ/ todolistの/ tdlenvのpython-パス= /ルート/ウェブ/デモ/ todolistの
    WSGIProcessGroup
    WSGIScriptAlias /デモ/ todolistの/root/web/demos/todolist/todolist/wsgi.pyプロセスグループ=
    一个Django项目的结构一般是这样的:
    • プロジェクト名
      -プロジェクト名
      ---- wsgi.py
      - AppNameは
      ----静的
      `` `
      、2名が同じフォルダに存在することに留意されたい混同しない
      静的な設定ファイルを:
    • 最初の行為Alias <URL Path> <FILE PATH>
      <URL Path>これからの意味と上記の、http://hostname/<URL PATH>/静的フォルダ訪問することである<FILE PATH>パスを
    • 二行目の<Directory <FILE PATH> >パスは、記入または静的フォルダ

Djangoのコードを変更します。

  1. wsgi.py、直接によって生成されました
  2. setting.py
    • :ALLOWED_HOSTがアクセスできる外の世界に適応する必要がありながら、本番環境に置くために、あなたは、DEBUGを先送りすることができます
      `` `Pythonの
      #SECURITYに警告:!デバッグを実行していない生産者にONに
      DEBUG = Falseを

      #1 ALLOWED_HOSTS = [ '*'] #は、 この書き込みをすることは推奨されません
      ALLOWED_HOSTS = [ 'localhostの'、 ' 127.0.0.1'、 'あなたのIP'、 'あなたのホスト名が']#は、一般的に、4つの書かれた
      `` `を
    • スタティックルートは変更する必要が
      `` `Pythonの
      #静的ファイル(CSS、JavaScriptの、ロイヤリティーフリー)
      #https://docs.djangoproject.com/en/1.11/howto/static-files/

      STATIC_URL = '/デモ/ todolistの/静的/'
      `` 主要是要与エイリアス 里的 `一貫した

PRODでのデバッグ

そこに多くの時間は、サーバー上のバグを持っているために、ローカルサーバー上にありますが、バグは、この時間は、必要な情報を印刷する必要がどこか分かりません。
最も簡単な方法は、情報を印刷することであるstderrので、wsgiログはに記録されます年:Apacheerror_log

import sys
print >> sys.stderr, message

あなたはそれを見ていない場合は、apacheログレベルが上昇するinfoので、長いログをプリントアウトします:

アクセス権の設定sqlite3の概要

この問題は、次のように翻訳、比較的広い場合がありますdb.sqlite3データベース:

  1. Apacheは親ディレクトリデータベースを書くことができるようにするには
  2. 数で始まっていないデータベースフォルダへの完全なパスを確認します
  3. 完全なパスを確認していなかったdbフォルダを
  4. ていることを確認し/tmpたフォルダは、3つのレベルで書くことができます
  5. ていることを確認しsettings.pyフルパスを書くこと
  6. 確保するためのパス上の特別な文字がありません
  7. Windowsでは、パスは、二重のバックスラッシュを書き込みます

最後に!

Apacheを再起動!
あなたは、ソースコードのpythonを変更するたびに再起動する必要があります!それ以外の場合はWSGIは、元のコードを使用します!

おすすめ

転載: www.cnblogs.com/milliele/p/11078971.html
おすすめ