2012-02-22 16 views
0

最近、Django開発サーバーを削除して、html5ビデオタグの問題のためApacheに移動しました。DjangoとApache modwsgiでファイルをアップロードできません

メディアフォルダにビデオをアップロードしようとすると、[Errno 13] Permission deniedエラーが発生しました。

私は既にメディアフォルダをchmodで777に再帰的に設定し、chgrpでWWWデータグループに許可を与えました。 ls -lha media/

total 12K 
drwxrwxrwx 3 esteban www-data 4,0K 2012-02-22 06:44 . 
drwxr-xr-x 10 esteban esteban 4,0K 2012-02-22 07:35 .. 
drwxrwxrwx 3 esteban www-data 4,0K 2012-02-13 10:12 generated 

を実行するときに、ここで出力された私はまた、httpd.confファイルに次のディレクティブを書いた:

<Directory /home/esteban/python_projects/video_transform/media> 
Options +Indexes 
Order allow,deny 
Allow from all 
</Directory> 

これはhttp://localhost/mediaに閲覧したときに、私は、フォルダの内容を一覧表示することができませんが、とは、成功まだアップロードされていません。

任意のアイデア?

EDIT:例外がこのラインにスローされます。

destination = open('media/' + filename, 'wb+') 
+0

ええ、テストのために、相対パスではなく絶対パスを使用してみましたか? – Paulo

+0

@Pauloちょうどそれがそれでした。私は自分のコードで絶対パスを書き込むという大きなファンではありません。とにかくそれは方法です –

答えて

2

は、絶対パスを使用してください。理由として

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

:でマニュアルを参照してください。

+0

絶対に正しい。 DjangoアプリケーションがApacheにデプロイされているときは、絶対パスを使ってPythonコードからファイルシステム内の何かにアクセスする必要があります。どうもありがとうございました –

0

私はあなたのApacheの設定でOrderディレクティブを切り替えテストします。現在のケースでは、拒否ディレクティブは明示的には定義されていませんが、Allowディレクティブの後に来て、すべてのトラフィックを効果的にブロックします。などの周りのOrderディレクティブを切り替えると、問題を修正する必要があります。コメントで示唆したよう

<Directory /home/esteban/python_projects/video_transform/media> 
Options +Indexes 
Order deny,allow 
Allow from all 
</Directory> 
+0

メディアフォルダ内の何かにアクセスしようとすると、注文を切り替えると403エラーが発生します。あなたの答えはありがとう –

関連する問題