2017-08-16 17 views
0

ファイルをアップロードしてそのファイルを変更できるDjangoサイトを展開しようとしています。これは、devのサーバー上で100%動作しますが、Apacheでデプロイした後は問題が発生しています。サーバーエラー(500)は、私のviews.pyの指定された行で発生します。私は間違って何をしていますか?私の問題はおそらくsave()メソッドを理解していないかもしれませんが、私を助けた情報やドキュメントは見つかりませんでした。Django - ファイルをアップロード/保存するときのApache Server Error(500)

views.py

def upload(request): 
    if request.method == "POST": 
     formU = FileUploadForm(request.POST, request.FILES) 
     if formU.is_valid(): 
      f = request.FILES['myFile'] 
      fs = FileSystemStorage() 
      set_file_name(str(f)) 
      fs.save(str(f), f) # where error occurs 

すべてがdevのサーバーの下で正常に動作しますので、私はそれがメディアファイルの事だろうと想定けど(と思う)すべてがよさそうです。

settings.py

MEDIA_ROOT = os.path.join(BASE_DIR, "media/") 
MEDIA_URL = '/media/' 

proj.conf

Alias /media /home/4rsenal/f_proj/media 
<Directory /home/4rsenal/f_proj/media> 
    Require all granted 
</Directory> 
+0

devサーバで動作していた場合は、おそらくPythonエラーではありません。 proj.confにあなたの仮想ホストの設定が間違っていると思います。それとも、あなたのフォルダの権利を開くことを忘れていますか? – GrandGTO

+1

'DEBUG = True'を指定すると、このようなときにデバッグ情報が表示されます。 'DEBUG = False'を指定すると、その情報が電子メールで送られます。電子メールを正しく設定していない場合は、すばやくやっかいな方法で、プロダクションで 'DEBUG = True'を設定して、何が起きているのかチェックしてください。しかし最終的には、 'EMAIL_ * '設定をセットすることで、メールを正しく設定する必要があります。これらの設定を欺くのはhttps://djangodeployment.com/2017/01/18/why-does-django-not-email-me-the-500-internal-server-error/を参照してください。 –

+0

それだけです。 @GrandGTOそれは、私がDEBUG = Trueを設定して見たメディアフォルダのパーミッションのことでした(あなたが本番でそれを行うことができるかどうかはわかりませんでした)。あなたのどちらかが下の回答を投稿したい場合、私はそれを正しいものとして受け入れるでしょう。 – 4rsenal

答えて

0

それは、devのサーバー上で動作していた場合、それはおそらく、Pythonのエラーではありません。 proj.confにあなたの仮想ホストの設定が間違っていると思います。それとも、あなたのフォルダの権利を開くことを忘れていますか?

+0

Apacheユーザーのアクセス権の詳細については、http://modwsgi.readthedocs.io/ja/develop/user-guides/application-issues.html#access-rights-of-apache-userのドキュメントを参照してください。 –

関連する問題