13

mod_wsgi でフラスコを実行しています。私のフラスコアプリは、/var/www/appユーザーからファイルを受け取り、/var/www/app/tmpディレクトリに保存します。しかし、chmod と chown をすべて実行しても (パーミッションの問題だと思いました)、その tmp ディレクトリに到達できませんでした。

いくつかのデバッグの後、フラスコアプリの現在の作業ディレクトリが/. で作業ディレクトリを変更できますがos.chdir('/var/www/')、セキュリティ上の理由から避けたいと思います。

これが私のApache構成です:

<VirtualHost *:80>
    ServerName mysite.com
    ServerAlias site.com
    ServerAdmin admin@localhost

    WSGIDaemonProcess app user=www-data group=www-data processes=1
    WSGIScriptAlias / /var/www/app.wsgi

    Alias /static /var/www/app/static

    <Directory /var/www/app>
        WSGIProcessGroup app
        WSGIApplicationGroup %{GLOBAL}
        WSGIScriptReloading On
        Order deny,allow
        Allow from all
    </Directory>

    <Location "/static">
        SetHandler None
    </Location>

</VirtualHost>

/アプリの作業ディレクトリを からに変更するにはどうすればよい/var/wwwですか?

4

1 に答える 1

15

WSGIDaemonProcessのドキュメントhome=...には、次のスタンザを使用できると書かれています。

ホーム=ディレクトリ

プロセス グループ内のデーモン プロセスの初期の現在の作業ディレクトリとして使用するディレクトリの絶対パスを定義します。このオプションが定義されていない場合、mod_wsgi 1.X では、Apache 親プロセスの現在の作業ディレクトリがプロセス グループ内のデーモン プロセスによって継承されます。通常、Apache 親プロセスの現在の作業ディレクトリはルート ディレクトリになります。mod_wsgi 2.0+ では、初期の現在の作業ディレクトリは、デーモン プロセスを実行するユーザーのホーム ディレクトリに設定されます。

しかし、私は興味があります-os.chdirあなたの意見では、使用がこれ以上セキュリティリスクになるのはなぜですか?

于 2013-02-11T08:50:24.220 に答える