OPENSHIFTによるDJANGO開発


Djangoフレームワークで開発された個人ブログがほぼ完成したため、キーワードインデックス機能といくつかのページの設計が欠けており、BAEはドメイン名バインドサービスを停止した(BAEが提供する2級ドメイン名だけでアクセスできないだろう).そこで、BAEのようなサービスを振り回しました.
目標:*Python(Django)をサポートするプラットフォームを探して、自分のBlogを開発します.*もちろん、できるだけ無料です.学生党は、仕事をしていないし、自分の資金源に依存していない--無料のクラウドサービスしか必要ありません.
試したクラウドサービスプラットフォーム
GoogleのGAE
GoogleのGAEはDjangoのサポートが悪いようで、試していません.以前はGAEを通じて独自のサービスを構築していたが、国内では正常にアクセスできなかった.ただし、ドメイン名をバインドするとドメイン名でアクセスできます.中国大陸に生きていなければ、GoogleのGAEは絶対に第一選択です.問題は主にドメイン名バインドです.
  • はサポートする.cnドメイン名バインド.
  • Google Apps for Businessはかかります.一年で300 RMBくらいのようです.やってみたいのですが、サポートしていません.cnドメイン名バインド.環境許可の条件の下で、やはりGoogleを優先したのですが、残念です.

  • HeroKU
    勉強したかったJSの時、振り回されたことがあります.デフォルトではDjangoもサポートされており、HeroKuを使用する予定だったが、アクセスが遅すぎるのが問題だ.comの公式サイトは長い間待たなければ表示されません.速度が遅いので、デバッグなどの操作のリズムが遅い--仕方なくあきらめた.(キャンパスネットワーク環境の欠陥でしょう).
    SEA、TAE, etc.
    BAEとの徳行を信じて、深く試していません.公式サイトに入って説明を見て、そのまま諦めます.SAEはどんな豆(変相料金)を要して、振り回す时間がありません;TAEは試用して、登録はたくさんの事項で、振り回されません.
    OPENSHIFT
    最終的に選択したのは、ドメイン名バインドをサポートする3つのアプリケーションを構築することができます.速度はHeroKuと似ていて、遅いです.しかし、ドキュメントのサポートはよく、自動的に提供される2級ドメイン名はhttpsでしかアクセスできません.Djangoをサポートしている点が強く、ローカル開発やデバッグ、アップロードなどの操作が本当に便利です.唯一納得しにくいのはgitでコードupdateを行う場合、操作が多く、速度が遅いことです.SSHログインもサポートされています.(操作を実行する権限はあまりありませんが、本当に楽しかったです).
    最後に、ドキュメントのサポートも重要です.GAE、HeroKu、openshiftのドキュメントは豊富です.ええ、全部英語が読めます.
    プロジェクトの作成
    これはOpenShift上の説明ドキュメントを直接表示します.詳しくて、辛抱強く見てください.rhcをインストールして習得できればよい.関連リンク:OpenShiftマニュアル
    #    
    $ rhc app create MyApp python-2.7
    #    
    $ rhc cartridge add mysql-5.1 -a MyApp
    

    このとき自分のWebアプリアドレスはhttp://MyApp-MyDomain.rhcloud.com/(うちMyDomainはあなたのOpenShiftアカウント名です).httpsで訪ねることができて、国内でしょう.
    ローカルデバッグ環境の構築
    Appを作成すると、自分のプロジェクトの開発編集を開始できます.注意点はDjangoバージョンが1.4です.プロファイルsetting.pyデータベースの構成には条件文があります.内容は次のとおりです.
    if ON_OPENSHIFT:
        DATABASES = {
            'default': {
                'ENGINE': 'django.db.backends.mysql', 
                'NAME': DB_NAME,  
                'USER': DB_USER,                     
                'PASSWORD': DB_PASSWD,               
                'HOST': DB_HOST,                     
                'PORT': DB_PORT,                     
            }
        }
    else:
        DATABASES = {
            'default': {
                'ENGINE': 'django.db.backends.mysql',
                'NAME': '',
                'USER': '',                      
                'PASSWORD': '',                  
                'HOST': '',                      
                'PORT': '',                     
            }
        }
    

    具体的には、OpenShiftプラットフォームかどうかを判断し、もしそうであれば、上のデータベースを構成します.そうでない場合は、次のデータベースを構成します(ローカル開発デバッグとして使用します).このようにローカル環境とOpenShift環境はデータベースの違いだけで、他は同じで、私の前のようにローカルで開発してアップロードする必要はありません.
    独自のプロジェクトを公開
    データベース構成
    データベースアドレスなどの操作はすべてhttps://github.com/drivard/openshift-django-mysql/blob/master/wsgi/openshift/settings.pyを選択して設定できます.結局悲劇問題が来た.
    if os.environ.has_key('OPENSHIFT_APP_NAME'):
        DB_NAME = os.environ['OPENSHIFT_APP_NAME']
    if os.environ.has_key('OPENSHIFT_DB_USERNAME'):
        DB_USER = os.environ['OPENSHIFT_DB_USERNAME']
    if os.environ.has_key('OPENSHIFT_DB_PASSWORD'):
        DB_PASSWD = os.environ['OPENSHIFT_DB_PASSWORD']
    if os.environ.has_key('OPENSHIFT_DB_HOST'):
        DB_HOST = os.environ['OPENSHIFT_DB_HOST']
    if os.environ.has_key('OPENSHIFT_DB_PORT'):
        DB_PORT = os.environ['OPENSHIFT_DB_PORT']
    

    データに関する情報がまったく得られないので、_DB_前にMYSQLを追加してこそ意味があります.OPENSHIFTのようにDB_HOSTはOPENSHIFT_を使わなければなりませんMYSQL_DB_HOSTで置き換えます.これにより、データベースに正常にアクセスできます.
    ドメイン名バインド
    直接OpenShift公式サイトを通ります.ログイン後、自分のドメイン名を選択し、aliasを追加すればいいです.これも私がOpenShiftを自分のブログ開発サービスとして選んだ最も直接的な原因です.
    SSHログインレビュー
    OpenShiftには、SSHでリモートサービスにログインできる機能もあります.端末がrhc app show -a App_nameを入力すると、そのAppのすべての情報が取得される.その一つがSSHアドレスである.
    まとめ
    OpenShiftによって開発されたWebアプリへのアクセスは相変わらず遅い(しかも私はJSに多く依存している)が、満足している.今、自分のブログサイトhttp://blog.iliyang.cn/やっと正常にアクセスできる.しかもコストがかからない--投資ゼロでしょう.