Djangoroidの奮闘記

python,django,angularJS1~三十路過ぎたプログラマーの奮闘記

django備忘録29 FTP for Production Settings

FTPを使ったproduction settings

  • filezilla を利用して、sftpで接続する。 この辺りのサイトが参照しやすいと思います。

FileZilla の設定(Mac OS X の場合) - KAGOYA Internet Routing

sshで、port22でアクセスしました。

  • デフォで入っている、djangoのprojectのフォルダを削除

  • srcをwebfactionの方に、アップロードする

  • webfactionというフォルダをlocal側に作成する

  • [webfaction]apache2/conf/httpd.conf → [local]webfaction にコピーする apache2の設定をするため。

apache2のhttpd.confの設定準備

  • まずは、src のpathを確認する。pwdコマンド。
[webfaction]$ cd src/
[webfaction src]$ pwd
/webapps/mvpland/src
  • 次に、local/httpd.confを開く

次の2つを変更する。

  1. `python-path=' 以降が、元々の、プロジェクトのルートになってると思うので、そこをsrcに変更する。

  2. 'WSGIScriptAlias' も、wsgi.pyのルートを正しく新しい方に設定する。

  3. local/httpd.conf のファイルを、apache2/conf/httpd.conf に上書きする。

databaseの設定

  • production用のdatabase などの設定をするために、settings/production.py を編集していく。

  • base.py → production.py にコピペする。

  • production.py のdatabaseの設定。取り急ぎ完成系は以下のような感じ。

production.py

from .db_password import DBPASS

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': "データベース名",
        'USER': "ユーザー名",
        'PASSWORD': DBPASS,
    }
}
  • DEBUG, ALLOWED_HOSTも編集する。debug=false, AllowedHostもwebfactionで割り当てられているurlを利用する。

production.py

DEBUG = False

ALLOWED_HOSTS = ['ユーザー名.webfactional.com']
  • さらにこのタイミングで、base.py のDEBUG=Falseに変更しておく。(localは、debug=trueにしておく)

  • production.py に、以下の2つの設定を追加する。

  • from django.conf import settings settings(.init.py)を読み込んで、settings内の設定を参照できるようにする。

Djangoの設定 | Django documentation | Django

  1. if not settings.DEBUG: settings.DEBUG=Falseになっている場合のみ、productionの設定は起動するようにする。 debag=Trueでの起動を防ぐため。

  2. settings/.db_password.pyを新規作成する。 'DBPASS = "データベースのパスワード"' てな感じで設定しておく。 (この時点では、webfaction上には、データベースを作成してないのかな?だから設定予定のパスワードでいいかと思います。)

  3. websaction/settings/local.py とlocal.pyc は削除でしておく。使わないため。

  4. local/.db_password.py,base.py,production.pyは、websactionに上書きを反映させる。

websaction上で、起動させてみる

  • cd src して、python を起動させてみる。 そうすると、pythonのversionが多分合っていない。

  • なので、pythonを起動するときは、versionを指定して起動してあげる。 python3.4 manage.py runserver 的な感じ。

  • python3.4 manage.py runserver を起動すると、appがないというようなエラーが出てくると思う。

  • localの方に戻って、srcないに、pip freeze > requirements.txt をターミナルで打って、requirements.txtを作成する

  • requirements.txtをwebfactionにアップする。

  • [websaction] $pip install -r requirements.txt でinstallできるが、pipが入ってないので、次回はpipをinstallするところから始める。

参照サイト

  • 詳しいdjangoのinstallガイドは、webfactionの公式サイトにあります。

docs.webfaction.com

  • djangoのデータベースの設定は、こちらの公式サイト参照

Settings | Django documentation | Django