Mod_wsgiを使用してApache2(linux)で実行されているDjangoアプリがあり、デーモンモードで実行するとファイルのアップロードが失敗しますが、pythonインタープリターが埋め込まれていると機能します。これを引き起こしている可能性のあるものと、それを修正する方法について何か考えはありますか?
次のApache構成が機能しています。
<VirtualHost *:80>
ServerName mysite.com
DocumentRoot /var/www/
Alias /media/ /var/www/media/
<Directory /var/www/>
Options -Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
Include /etc/Apache2/yslow_optimizations.conf
</Directory>
WSGIScriptAlias / /var/djangoapp/Apache/Django.wsgi
<Directory /var/djangoapp/Apache/>
Order allow,deny
Allow from all
</Directory>
ErrorLog /var/log/Apache2/mysite.error.log
CustomLog /var/log/Apache2/mysite.access.log combined
</VirtualHost>
しかし、wsgiプロセスをデーモン化するために次のディレクティブを追加すると、ファイルのアップロードはすぐに失敗します。
WSGIDaemonProcess mygroup display-name=%{GROUP} inactivity-timeout=600
WSGIProcessGroup mygroup
Apacheエラーログには何も表示されていません。
DjangoフォームはFileFieldを使用しており、form.is_valid()を実行すると「このフィールドは必須です」というエラーが表示されます。ビューには@login_requiredデコレータがあります。これはすべて正常に機能しています。埋め込みモードで実行している場合。
デーモンとして実行すると、Apacheのリロードが必要な埋め込みの場合よりも、コードをより適切に(wsgiファイルに触れるだけで)更新できるため、可能であればそれをお勧めします。
更新:これはFireFoxではなくOperaで発生します。
推測では、最新のmod_wsgi 2.Xバージョンを実行しておらず、Operaブラウザを使用しています。
OperaおよびHTTP100の使用に関する既知の問題があります-mod_wsgiデーモンモードを使用している場合は続行します。この問題はmod_wsgi2.4で修正されました。
使用しているmod_wsgiのバージョンや使用しているブラウザはわかりませんが、これは推測にすぎません。