2012-07-27 9 views
23

私は最近、OpenShiftでDjangoプロジェクトをエクスポートしようとしましたが、うまくいきませんでした。私が見つけた唯一の解決策は、 "prebuilt"ものでした(https://github.com/openshift/django-exampleなど)。OpenShiftでDjangoを設定するには?

私はプロジェクトにそれを適応させるのに数時間を費やしましたが、私はいつも内部サーバーエラーが発生しました。

だから、オープンシフトでdjangoを設定するには?

答えて

30

私はついにそれを理解しました。まず最初に行うには、openshiftアプリを起動し、setup.pyファイルを編集することです:

rhc app create -a APPNAME -t python-2.6 
cd APPNAME 
vim setup.py 

あなたは次にあなたがコミットすることができます「install_requires = [ 『> = 1.3ジャンゴ』]」

のコメントを解除する必要がありますサーバーへ:デフォルトで

git commit -a -m "Initialization" 
git push 

、それはジャンゴ1.4がインストールされますが、私はあなたが正しいがsetup.pyに要件をインストールすると、別のバージョンを選択することができると思います。とにかく、次のことについては、コンピュータとサーバーで同じdjangoバージョンを実行する必要があります。

あなたのDjangoプロジェクトを作成します。

cd wsgi 
django-admin.py startproject PROJECTNAME 

次にファイルのアプリケーションを編集する必要があります、で全体のコンテンツを置き換える:

#!/usr/bin/python 
import os, sys 

os.environ['DJANGO_SETTINGS_MODULE'] = 'PROJECTNAME.settings' 
sys.path.append(os.path.join(os.environ['OPENSHIFT_REPO_DIR'], 'wsgi', 
    'PROJECTNAME')) 

virtenv = os.environ['APPDIR'] + '/virtenv/' 
os.environ['PYTHON_EGG_CACHE'] = os.path.join(virtenv, 'lib/python2.6/site-packages') 
virtualenv = os.path.join(virtenv, 'bin/activate_this.py') 

try: 
    execfile(virtualenv, dict(__file__=virtualenv)) 
except IOError: 
    pass 

# 
# IMPORTANT: Put any additional includes below this line. If placed above this 
# line, it's possible required libraries won't be in your searchable path 
# 
from django.core.handlers import wsgi 
application = wsgi.WSGIHandler() 

最後に、あなたが変更をコミットすることができます

cd .. 
git add . 
git commit -a -m "Project Creation" 
git push 

djangoのようこそページが表示されます。 設定を編集して不要なコンテンツをなくしてdjangoアプリをインポートすることができます

+4

素晴らしい作品です。ありがとう! 上記の手順のマイナーな拡張。 1.静的ファイルを提供するには、それらを 'PROJECTNAME/wsgi/static'に入れる必要があります。 2. 'PROJECTNAME/wsgi/static'には' site-packages/Django-xxx/django/contrib/admin/static/admin'の 'admin'フォルダも置いてください。そうしないと、静的なDjango管理者ファイルが欠落します。 – orschiro

+5

残念ながら、私があなたの解決策を試してみたところ、503 Service Temporarily Unavailableエラーが発生しました。プロジェクト名ごとにPROJECTNAMEを編集し、python2.7でその行を編集しました。 OpenShiftのプロジェクトのドキュメントがあまりないようです。( – shailenTJ

+0

あなたは[このファイル](https://github.com/suhailvs/django-example/blob/master/wsgi/application)を編集したばかりですが、まだありがたいです素晴らしい仕事:)))) – suhailvs

関連する問題