0

djangoアプリケーションでファイルサイズを取得する関数を1つ書いています。

Apacheサーバーを介して実行しているDjangoアプリケーション。

ファイルは別の場所にあります。マウントされたパスを介してそのファイルを取得しています。

コードは次のとおりです。

import os
filePath = '/mnt/file.html'
size = flaot(os.stat(filePath))

runserver コマンドを使用して django サーバーを実行すると、正常に動作します。

Apache を介して djnago サーバーを実行すると、機能しません。

ファイルが同じ場所にある場合は、両方の方法で機能します (Apache を使用する場合と使用しない場合)。filePath = '/home' または '/root' または同じマシンの任意の場所

django-apacheを介してマウントされたパスからファイルサイズを取得する別の方法は何ですか?

助けてください。前もって感謝します。

4

2 に答える 2

0

これは、プロセスが使用するユーザーのディレクトリ/ファイルのアクセス許可および/または特権に関係しています。

Django サーバーを実行すると、ユーザー名で実行され、おそらくユーザーはファイルを保持する場所にアクセスできます。ただし、Apache の背後で実行する場合は、Apache または www-data ユーザーとして実行され、これらの場所へのアクセス権はありません。

解決策: ディレクトリのアクセス許可を変更するか、Apache ユーザーをこのディレクトリへのアクセスを許可されたユーザーのグループに追加するか、Apache ユーザーをこのディレクトリの所有者にするか、いずれか適切な方を選択してください。

于 2013-10-17T11:46:31.620 に答える