あなたはホスティングにお金を払わずに取得しますか?
- 1 GBのディスクスペース
- 3つのアプリケーションを作成する機能
- php 5.3、Ruby 1.9、Node.js 0.6、Perl 5.10、python 2.6(3.3)、Zend Server 5.6のサポート。これは完全なリストではありません。
必要な言語が見つからない場合は、Do-It-Yourselfアプリケーションを作成し、好きなように構成できます。
Djangoアプリケーションの展開を検討します。
私はインターネット上でたくさんのマニュアルを見つけましたが、落とし穴は私をいじくり回しました。 以下で説明します。
そのため、 openshift.comに登録した後、 rhc(私たちに割り当てられたリソースを管理するためのツール)をインストールすることをお勧めします。 なぜそれが良いのですか? はい、Webブラウザからすべてを簡単に構成できますが、コンソールは特にLinuxではるかにシンプルで高速です。
次のようにrhcをubuntuにインストールできます。
$ sudo yum install rubygems git $ sudo gem install rhc
コンソールからログインします:
$ rhc setup
できた オンラインです。
Pythonアプリケーションを作成します。
$ rhc app create habr python-2.6
habrはもちろんアプリケーションの名前です。
このユーティリティは、アプリケーションが作成されて利用可能であることを報告します: http : //habr-lamazavr.rhcloud.com/
、アプリケーションのgitアドレス(kudanibutをコピー)。
このページが表示されます。
それでは、djangoのインストールに移りましょう。 wsgiディレクトリに移動して、djangoアプリケーションを作成します。
$ cd habr/wsgi/ $ django-admin startproject habr
wsgiディレクトリのアプリケーションファイルを編集します。
#!/usr/bin/env python # some original codes we need import os 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: pass # new codes we adding for Django import sys import django.core.handlers.wsgi os.environ['DJANGO_SETTINGS_MODULE'] = os.environ['OPENSHIFT_APP_NAME']+'.settings' sys.path.append(os.path.join(os.environ['OPENSHIFT_REPO_DIR'], 'wsgi', os.environ['OPENSHIFT_APP_NAME'])) application = django.core.handlers.wsgi.WSGIHandler()
djangoをインストールするには、行のコメントを解除します
install_requires=['Django>=1.3'],
openshiftアプリケーションのルートにあるsetup.pyファイル内。
次に、これらすべてをサーバーにアップロードする必要があります。
wsgiディレクトリに入ったら、アプリケーションフォルダーをgitに追加します。
$ git add habr $ git commit -a -m "Initialization" $ git push
実行中に、djangoもサーバーにインストールされました(私の場合は1.5.1、つまり今日の最新バージョン)。
最後に、djangoの開始ページが表示されます。
ただし、データベースのない一部のアプリケーション。
mysqlデータベースphpmyadminを追加し、djangoプロジェクトをセットアップしてそれを使用します。
mysqlカートリッジをhabrアプリケーションに追加します。
$ rhc cartridge add mysql-5.1 -a habr
rhc出力からデータベースのユーザー名とパスワードを保存します。
Added mysql-5.1 to application habr MySQL 5.1 database added. Please make note of these credentials: Root User: Root Password: Database Name: habr Connection URL: mysql://$OPENSHIFT_MYSQL_DB_HOST:$OPENSHIFT_MYSQL_DB_PORT/ You can manage your new MySQL database by also embedding phpmyadmin-3.4. The phpmyadmin username and password will be the same as the MySQL credentials above.
phpmyadminを追加します。
$ rhc cartridge add phpmyadmin-3.4 -a habr
phpmyadminのパスワードとログイン名が再び表示されますが、これはパスワードとデータベース名の重複です。
ここでは、管理者を入力するリンクのみが重要です。 habr-lamazavr.rhcloud.com/phpmyadmin
完成したデータベースをサーバーにインポートするために、phpmyadminを追加します。 そこでsyncdbを実行するのはあまり便利ではありません。
djangoアプリケーションのsettings.pyファイルでデータベースと連携するようにdjangoを設定します。
'ENGINE': 'django.db.backends.mysql', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'. 'NAME': os.environ['OPENSHIFT_APP_NAME'], # Or path to database file if using sqlite3. 'USER': os.environ['OPENSHIFT_MYSQL_DB_USERNAME'], # Not used with sqlite3. 'PASSWORD': os.environ['OPENSHIFT_MYSQL_DB_PASSWORD'], # Not used with sqlite3. 'HOST': os.environ['OPENSHIFT_MYSQL_DB_HOST'], # Set to empty string for localhost. Not used with sqlite3. 'PORT': os.environ['OPENSHIFT_MYSQL_DB_PORT'], # Set to empty string for default. Not used with sqlite3.
当然、ファイルの先頭でosモジュールをインポートする必要があります。
変更をコミットして入力:
$ git commit -a -m "db init" $ git push
卒業後、アプリケーションのページに移動します。 すべて順調です。 したがって、データベースは接続されています。それ以外の場合、501エラーが表示されます。 次に、コマンドでログを確認します。
$ rhc tail habr
また、プロジェクト内にdjangoアプリケーションを作成します。
$ django-admin startapp habrapp
次の行を追加します。
'habrapp',
djangoプロジェクトのsettiongs.pyファイルのINSTALLED_APPSにあります。
それぞれcssとメディアファイルでビューを作成しましょう。
habr / habrディレクトリ(settings.pyファイルの隣)にテンプレートフォルダーを作成し、その中にindex.htmlファイルを作成します。
<!DOCTYPE html> <html lang="ru"> <head> <meta charset="utf-8"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <link rel="stylesheet" href="/media/css/style.css" type="text/css" /> <title>{{title}}</title> </head> <body> <h3>{{text}}</h3> </body> </html>
ビューをviews.pyに記述します。
from django.shortcuts import render_to_response def index(request): c = { 'title': 'Habratitle', 'text': 'Hello habrahabr from OpenShift!',} return render_to_response('index.html',c)
urls.pyでURLを指定します。
(r'^$','habrapp.views.index'),
ここで、settings.pyファイルでプロジェクトのテンプレートを使用してディレクトリを指定します。
TEMPLATE_DIRS = ( os.path.join(os.path.dirname(__file__),'templates').replace('\\','/'), )
作成したテンプレートフォルダーとdjangoアプリケーションをgitに追加します。
$ git add templates/ $ git add habrapp/
パス付きの例は示しませんが、以下は例付きのアーカイブです。
コミットして記入
$ git commit -a -m 'views add' $ git push
ページを見に行きます。
さて、今ではメディアファイルの利点のみです。
最初に、静的管理ファイルを追加します。 それらを収集します。
$ python manage.py collectstatic
adminフォルダを取得し、wsgiディレクトリの静的ディレクトリに配置します。
wsgiディレクトリで、.htaccessファイルを作成します。
RewriteEngine On
RewriteRule ^application/media/(.+)$ /static/media/$1 [L]
そしてそのように! エラーではなくアプリケーションが必要です。
style.cssファイルにmedia / css /フォルダーを作成し、それに挨拶の色を追加します。
h3 { color: #6DA3BD; }
gitで作成したものを追加することを忘れないでください:
$ git add . $ git add . $ git add .htaccess $ git commit -a -m 'media files' $ git push
ページに行きます。 テキストの色が変わりました。
プロジェクトが約束したとおり。