0

私は初心者ですが、アプリケーションを使用して美しく動作させましたpython manage.py runserverが、それを Apache + mod_wsgi に持ち込むと、このエラーが発生し続けます。デバッグ メッセージはあまり役に立ちません。デバッグ イメージ全体のスクリーンショットを次に示します: http://img694.imageshack.us/img694/6723/screenshotfb.png

これが私の http.conf ファイルのダンプです。

WWSGIDaemonProcess cloud-tester python-path=/home/ubuntu/.virtualenvs/pinax-env/lib/python2.6/site-packages
WSGIProcessGroup cloud-tester

WSGIScriptAlias /cloudrunner /home/ubuntu/projects/cloudfly/deploy/pinax.wsgi
<Directory /home/ubuntu/projects/cloudfly/deploy>
    Order deny,allow
    Allow from all
</Directory>

pinax.wsgi の内容は Pinax に付属するものです。私は何も変えませんでした。

サンプルの「basic_project」を作成しましたが、うまくいきました。これはしません。

前もって感謝します!私が何をすべきかについて何かアドバイスはありますか?

4

2 に答える 2

4

Apache/mod_wsgi の下では、コードは Apache ユーザーとして実行され、通常、ユーザーとして持っているディレクトリへの書き込みアクセス権はありません。読んだ:

http://code.google.com/p/modwsgi/wiki/ApplicationIssues#Access_Rights_Of_Apache_User

これを回避する最も簡単な方法は、手動でコードを実行するのと同じユーザーとしてデーモン プロセスを実行することです。この目的のために、'user/group' オプションを WSGIDaemonProcess に使用します。読んだ:

http://code.google.com/p/modwsgi/wiki/ConfigurationDirectives#WSGIDaemonProcess

さらに別の問題として、コードで相対パス名を使用している可能性があります。現在の作業ディレクトリは何でもよいため、これは Apache では機能しません。本当に常に絶対パス名を使用するか、少なくともそれが実行されているコードファイルの __file__ の os.path.dirname() に相対的に計算する必要があります。

本当に対処したくない場合の回避策は、WSGIDaemonProcess の「home」オプションを使用して、デーモン プロセスの現在の作業ディレクトリを、サーバーを手動で実行しているディレクトリと同じディレクトリに設定することです。上記で参照されている WSGIDaemonProcess の同じドキュメントを参照してください。

于 2010-02-17T05:01:54.480 に答える
0

「python manage.py runserver」を使用するときにルートとしてログインしているため、そのディレクターへの書き込みが許可されていますが、Apacheがwsgiスクリプトを起動すると、ディレクトリへの書き込みが許可されていないユーザー名になりますあなたのpythonスクリプトを入れてください。

あなたがubuntuサーバーを使用していると仮定すると、同じ問題がありました。を使用して修正しました

chown www-data:www-data -R メディア

すべての py スクリプトを /var/pyproj/ に保存します。メディア フォルダは /var/pyproj//pysrc(私の pinax インストール ディレクタ)/site_media/ にあります。

wsgi スクリプト、nginx conf、および vhost.conf を /var/pyproj//server に保存します。

仲間のジャンゴユーザーの幸運を祈ります。これが役立つことを願っています。

于 2011-01-26T16:47:41.503 に答える