0

この質問は、他の人がこの問題の解決策をより簡単に見つけられるように、タイトルが変更/タグが変更されています。


プロジェクトをDjango開発サーバーからApache/mod-wsgi環境に移行しようとしています。昨日あなたが私に尋ねていたら、私は移行が非常にスムーズに進んでいると言っただろう。私のサイトは稼働していて、アクセス可能で、高速です。しかし、サイトの一部はファイルのアップロードに依存しており、これにより、私は最も奇妙で最も厄介な問題を経験しています。問題の特定のページは、swfuploadを使用して、ファイルと関連するメタデータをURLにPOSTします。このURLは、ファイルをキャッチしてサーバー側の処理を開始します。これは開発サーバーでは完全に機能しますが、ApacheでこのURLにPOSTすると、Djangoリクエストオブジェクトが空になります。GET 、POST、またはFILESデータはありません

Wiresharkでスヌーピングすることにより、クライアント側の問題を排除しました。根本的な原因を特定できる限り、アクセスしようとしている一時ファイルディレクトリに関連している可能性がある、ある種のApache構成の問題が原因です。私はApache構成に比較的慣れていないので、何時間もこれに頭を悩ませてきました。

私のApache構成:

<VirtualHost *:80>
ServerAdmin user@sitename.com
ServerName  sitename.com
ServerAlias www.sitename.com
LogLevel warn
WSGIDaemonProcess sitename processes=2 maximum-requests=500 threads=1
WSGIProcessGroup sitename
WSGIScriptAlias / /home/user/src/sitename/apache/django.wsgi
Alias /static /home/user/src/sitename/static
Alias /media /usr/share/python-support/python-django/django/contrib/admin/media
</VirtualHost>

私の直感では、これはDjango settings.py()で指定したファイルアップロードディレクトリのアクセス許可と関係がある可能性があります'/home/sk/src/sitename/uploads/'が、Apacheエラーログは、ログレベルが上がっていても、そのようなものを示唆していませんデバッグまで。

これをデバッグする方法についての提案はありますか?

4

2 に答える 2

3

通常、apacheはユーザー「www-data」として実行されます。読み取り/書き込みアクセス権がない場合、問題が発生する可能性があります。ただし、セットアップでapacheを使用して「/ home / sk / src / sitename/uploads」にアクセスしていないようです。この構成ファイルからの私の理解は、/staticまたは/mediaにヒットしない限り、apacheはそれをWGSIに渡すので、apacheのものではなく、それらのアクセス許可とログを確認することをお勧めします。

于 2009-06-03T04:54:55.453 に答える
2

もう1つの可能性は、mod_wsgiの「古い」リリースのバグです(私はそれを見つけて修正することに夢中になりました)。このバグレポートの詳細。次のヒント(-Hスイッチを使用してCLIでも機能します)のおかげで(カールアップロードの場合)修正しました。

于 2009-06-03T07:18:33.877 に答える