2016-05-13 3 views
1

これは本当に奇妙な状況です。 私は最初からPythonを使ってWebフレームワークを作成しようとしています。 そして、以下のコードを使ってファイルの現在の作業ディレクトリ(技術的には現在の.pyファイルのフルパス)を取得しようとしています。私はそれを印刷し、コードの上に入力して、サーバーを再起動した場合uwsgi現在の作業ディレクトリは、ページをリフレッシュした後のpythonで異なって表示されます

os.getcwd() 

問題が... です。 初めて、次のように常に印刷されます。

/var/www/html/mydocroot 

次に、ページを更新すると、以下のように 'mydocroot'ディレクトリが自動的に消えます。

/var/www/html 

そして、上記のようにページをリフレッシュした後に同じ出力を作成します。 私はその問題を理解するためにほぼ一日を費やしました。 アイデアや経験はありますか?

とも私も、

os.path.dirname(os.path.abspath(__file__)) 

、このいずれかを試してみました。私はuwsgiサーバーを再起動したときにたとえば、

/var/www/html/mydocroot/Core/Settings 

は結果である

/var/www/html/Core/Settings 

私はページを更新すると、 'mydocroot' は、上記のように、それ自体で消えます。

server{ 
 
     server_name example.com; 
 
     rewrite ^(.*) http://www.example.com permanent; 
 
} 
 

 
server { 
 
    listen 80; 
 
    server_name example.com *.example.com; 
 

 
    location/{ 
 
     include   uwsgi_params; 
 
     uwsgi_pass  unix:/var/www/html/example/myapp.sock; 
 
    } 
 
}

上記の私のnginxのサーバーの設定です。以下はwsgiの設定です。

[uwsgi] 
 
module = wsgi:application 
 

 
master = true 
 
processes = 1 
 
touch-reload = /var/www/html/ggr/wsgi.py 
 
socket = myapp.sock 
 
chmod-socket = 664 
 
vacuum = true 
 
max-requests = 1 
 
die-on-term = true 
 
logger = file:/var/log/ggr.log 
 
catch-exceptions = true

+0

を行うことができますか? –

+0

私はubuntuのnginxサーバーで使用しています。私はPHP開発者として16年の経験があります。しかし、このケースでは、それはかなり奇妙です。結果はあなたが前に言及したすべての時間と同じでなければなりません。 –

+0

何wsgiサーバですか? –

答えて

1

ファイルは、 "現在の作業ディレクトリを" 持っていません。特定のプロセス用のグローバルな現在の作業ディレクトリは1つだけです。あなたが特定のファイルのディレクトリをしたい場合は、現在の作業ディレクトリが

os.chdir('/new/working/directory') 

を変更することができ、あなたが使用しているWebサーバとWSGIサーバこの

os.path.dirname(os.path.abspath(__file__)) 
+0

私もそのコードを試しましたが、同じコードを出力します。 –

+0

はい、ただし、**同じことを**毎回印刷する必要があります。後続の呼び出しでは変更しないでください。 –

+0

それはかなり奇妙ではないですか?私はそれが問題かもしれないと思ったcuzをテストするためにviltualenvをオフにしました。フォルダのアクセス権も変更されました。それでも運がない –

関連する問題