書き込む前に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$
インストールdjango
とdjango rest_framework
pip install django==1.8
pip install djangorestframework==3.6.4
注:
django2
あなたが少し低いをインストールしたいので、スタートpython2はサポートしていませが、あなたは少し低いdjangorestframeworkインストールしていない場合は、上の一致は存在しません
Apacheの設定ファイルを変更します。/etc/apache2/sites-available/000-default.conf
:パスDjangoプロジェクト、我々はデーモンモードを使用し、この時、3行を保持する主な必要性を修正
WSGIDaemonProcess
、WSGIProcessGroup
およびWSGIScriptAlias
`` `SHの
#これは、静的な設定ファイルである
エイリアス/デモ/ todolistの/静的/ /ルート/ウェブ/デモ/ todolistの/仕事/静的/
許可、拒否#Order
全てから#Allowを
すべて付与された要求
<ファイルwsgi.py>は
すべて許可さを必要とします
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のコードを変更します。
wsgi.py
、直接によって生成されましたsetting.py
:ALLOWED_HOSTがアクセスできる外の世界に適応する必要がありながら、本番環境に置くために、あなたは、DEBUGを先送りすることができます
#1 ALLOWED_HOSTS = [ '*'] #は、 この書き込みをすることは推奨されません
`` `Pythonの
#SECURITYに警告:!デバッグを実行していない生産者にONに
DEBUG = Falseを
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
ログはに記録されます年:Apache
error_log
import sys
print >> sys.stderr, message
あなたはそれを見ていない場合は、apache
ログレベルが上昇するinfo
ので、長いログをプリントアウトします:
アクセス権の設定sqlite3の概要
この問題は、次のように翻訳、比較的広い場合がありますdb.sqlite3
データベース:
- Apacheは親ディレクトリデータベースを書くことができるようにするには
- 数で始まっていないデータベースフォルダへの完全なパスを確認します
- 完全なパスを確認していなかった
db
フォルダを - ていることを確認し
/tmp
たフォルダは、3つのレベルで書くことができます - ていることを確認し
settings.py
フルパスを書くこと - 確保するためのパス上の特別な文字がありません
- Windowsでは、パスは、二重のバックスラッシュを書き込みます
最後に!!!!!!!
Apacheを再起動!!!!!!!!
あなたは、ソースコードのpythonを変更するたびに再起動する必要があります!!!!!それ以外の場合はWSGIは、元のコードを使用します!!