1

Phusion Passenger を Google の App Engine 用の django-nonrel と連携させるのに非常に苦労しています。GoogleAppEngineLauncher と運用サーバーでは機能するようですが、Passenger では機能しないようです。または Passenger および GoogleAppEngineLauncher 用ですが、本番サーバー用ではありません。または Passenger と本番サーバー用ですが、GoogleAppEngineLauncher 用ではありません。

アプリを 3 つすべてにデプロイするにはどうすればよいですか?

4

1 に答える 1

0

Mac OS X Snow Leopard で行う必要があるのは次のとおりです。

  1. djangoappengine ディレクトリを「ROOT/common-apps」に直接配置します。common-apps ディレクトリの外に配置すると、appengine が混乱し、ROOT を PROJECT_DIR として使用する代わりに、djangoappengine ディレクトリを PROJECT_DIR として使用する可能性があります。また、common-apps ディレクトリにinit .py を追加する必要がある場合もあります。
  2. django-nonrel を ROOT ディレクトリの外側に配置し、ROOT/common-apps/django から NONROOT/django-nonrel/django へのシンボリック リンクを作成します。django-nonrel を common-apps ディレクトリに直接配置すると、デプロイ時に app-engine の 3000 ファイル アップロード制限を超える可能性があります。
  3. 空の ROOT/public ディレクトリを作成します。Passenger は、このディレクトリの親をプロジェクト ルートとして使用します。
  4. MYAPPNAME.local が /etc/hosts であると仮定して、Apache vhost を以下のように構成します。
  5. Passenger_wsgi.py を作成し、以下のように ROOT ディレクトリに配置します。

仮想ホスト:

<VirtualHost *:80>
   ServerName MYAPPNAME.local
   DocumentRoot /Users/mike/Projects/ROOT/public
    <Directory  /Users/mike/Projects/ROOT/public>
      AllowOverride all
      Options -MultiViews
      Order allow,deny
      Allow from all
    </Directory>
</VirtualHost>

Passenger_wsgi.py:

import os, sys

# BUG there must be a better way than listing everything individually...
sys.path.append('/Users/mike/Projects/ROOT/')
sys.path.append('/Users/mike/Projects/ROOT/common-apps/')
sys.path.append('/Users/mike/Projects/NONROOT/django-nonrel/')
sys.path.append('/usr/local/google_appengine/')
sys.path.append('/usr/local/google_appengine/lib/yaml/lib/')
sys.path.append('/usr/local/google_appengine/lib/antlr3/')
sys.path.append('/usr/local/google_appengine/lib/django/')
sys.path.append('/usr/local/google_appengine/lib/cacerts/')
sys.path.append('/usr/local/google_appengine/lib/ipaddr/')
sys.path.append('/usr/local/google_appengine/lib/webob/')
sys.path.append('/usr/local/google_appengine/google/appengine/api/')

os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()

うまくいけば、私は何か重要なことを忘れていませんでした。

于 2010-05-16T04:09:34.630 に答える