4

私はPython開発の初心者です。

いくつかのファイルとディレクトリを作成する小さな Python Web アプリを作成します。コマンドラインで実行すると、すべて問題ありません。しかし、uWSGI の下では、すべての新しいファイルは -rw-rw-rw- モードになり、ディレクトリはそれぞれ -rw-rw-r-- と drwxrwxr-x ではなく drwxrwxrwx になります。

uWSGI 構成は Ubuntu のデフォルトであり、特別なことは何もありません。uWSGI アプリの ini ファイルは次のようになります。

[uwsgi]
plugins=python

nginx の設定は次のようになります。

server {

        listen 8080;

        access_log /path/to/logs/access.log;
        error_log /path/to/logs/error.log;

        location / {
                uwsgi_pass unix:/var/run/uwsgi/app/myapp/socket;
                include uwsgi_params;
                uwsgi_param UWSGI_PYHOME /path/to/myapp/.env/;
                uwsgi_param UWSGI_CHDIR /path/to/myapp/;
                uwsgi_param UWSGI_SCRIPT myapp;
        }

}

問題は不十分な uWSGI 構成にあると思いますが、どうすればよいかわかりません。

4

1 に答える 1

4

これは、uWSGI のデフォルトの umask 000 が原因で、すべてのビットがそのまま残されます。これは、ファイルのデフォルトが 666、ディレクトリのデフォルトが 777 であることを意味します。

これはumask、uWSGI 構成ファイルのオプションを削除する必要があるビットに設定することで可能になります。たとえば、644/755 を取得するには、グループ/その他の書き込みフラグをクリアする 022 の umask を使用します (777-022 = 755、666-022 = 644)。

于 2014-05-25T23:08:43.400 に答える