0

環境

  • パイソン 2.7 64 ビット
  • ジャンゴ1.3
  • WAMP 2.2 (アパッチ 2.2.22) 64 ビット
  • mod_wsgi 3.4 64ビット
  • ウィンドウズ7 64ビット

詳細 | アパッチ httpd.conf

...
Listen 192.168.20.11:8080
...
LoadModule wsgi_module modules/mod_wsgi.so
...
ServerName 192.168.20.11:8080
...
DocumentRoot "c:/wamp/www/"
...
<VirtualHost *:8080>

    ServerName 192.168.20.11
    ServerAdmin me@mine.com

    DocumentRoot "C:/wamp/www/myapp"

    <Directory "C:/wamp/www/mapp">
    Order allow,deny
    Allow from all
    </Directory>

    Alias /myapp/static "C:/wamp/www/myapp/static"
    WSGIScriptAlias /test "C:/wamp/www/myapp/wsgi.py"

</VirtualHost>   

詳細 | wsgi.py

Django の startproject によって生成されます。デフォルトでは /myapp/myapp/wsgi.py にあります

import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myapp.settings")
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()

問題

上記のコンテキストでは、Django アプリを WAMP にデプロイできません。

「Hello World」テスト wsgi アプリケーションは問題なく動作するので、mod_wsgi がアクティブであることを確認しました。

エラーが発生します:

内部サーバーエラー

サーバーで内部エラーまたは構成ミスが発生したため、リクエストを完了できませんでした。

サーバー管理者 me@mine.com に連絡して、エラーが発生した時刻と、エラーの原因となった可能性のある操作を知らせてください。

このエラーの詳細については、サーバー エラー ログを参照してください。

を指している場合:

http://192.168.20.11:8080/myapp

静的フォルダーは正常に機能します。次を指すことで、ディレクトリ内のすべての静的ファイルにアクセスできます。

http://192.168.20.11:8080/myapp/static

詳細 | サーバーエラーログ

注意: 読みやすくするためにタイムスタンプを削除しました。

mod_wsgi (pid=5728, process='', application='192.168.20.11:8080|/myapp'): WSGI スクリプト 'C:/wamp/www/myapp/myapp/wsgi.py' をロードしています。

mod_wsgi (pid=5728): WSGI スクリプトの処理中に例外が発生しました

「C:/wamp/www/myapp/myapp/wsgi.py」。

トレースバック (最新の呼び出しが最後):

ファイル "C:\Python27\lib\site-packages\django\core\handlers\wsgi.py"、236 行目、呼び出し中

self.load_middleware()

settings.MIDDLEWARE_CLASSES の middleware_path の場合:

getattr のファイル「C:\ Python27 \lib\site-packages\django\conf\_ init _.py」の 52 行目

self._setup(名前)

ファイル "C:\Python27\lib\site-packages\django\conf\_ init _.py"、47 行目、_setup

self._wrapped = 設定(settings_module)

ファイル "C:\Python27\lib\site-packages\django\conf\_ init _.py"、132 行目、init内

raise ImportError("Could not import settings '%s' (is it on sys.path?): %s" %(self.SETTINGS_MODULE, e))

ImportError: 設定 'myapp.settings' をインポートできませんでした (sys.path にありますか?): myapp.settings という名前のモジュールはありません

ファイルが存在しません: C:/wamp/www/myapp/favicon.ico

この場合のミドルウェアの機能が理解できず、ミドルウェアを使用する必要がないという印象を受けました。

システムパスに関して、追加すると:

WSGIPythonPath "c:/wamp/www/myapp"

httpd.conf ファイルの VirtualHost に接続すると、サーバーは起動を拒否します。

目的

IIS を使用せずに、動作中の Django アプリ (Django 開発サーバーを使用してローカルで開発およびテストされたもの) を Microsoft SBS ネットワークに展開するには。IIS にデプロイしようとしましたが、早い段階で問題が発生したため、WAMP に切り替えました。

私は Python と Django を初めて使用し、実稼働サーバーに Web アプリをデプロイしたことはありません (私は一般的に数学と統計のプログラミングを使用した R プログラマーです)。

方法に関係なく、この目的を達成するのに役立つアドバイスをいただければ幸いです。

4

2 に答える 2

0

httpd.conf に WSGIPythonPath ディレクティブを配置すると、サーバーが起動しなくなりましたが、問題は実際には宣言されていないパスに関連していました。

追加:

sys.path.append("c:/wamp/www/myapp")

wsgi.py ファイルに追加するとうまくいきました。

私を正しい軌道に乗せてくれた Daniel Roseman に感謝します。

于 2013-04-09T15:00:58.427 に答える