2016-01-10 63 views
3

我正在部署Django站點,我正在使用virtualenv來保持我的Python安裝整潔。我試圖找出虛擬環境應該位於生產服務器環境中的位置。看起來這應該是超級簡單的,但它給了我一個怪物頭痛。任何幫助將不勝感激!virtualenv在生產中的位置

我的計劃是使用virtualenvwrapper來創建我的虛擬環境。默認情況下,這將virtualenv存儲在~/.virtualenvs中,在本例中爲/home/james/virtualenvs/。當我在本地機器上運行用戶james下的所有內容時,這是很好的開發。但是,我不相信用戶james將運行生產服務器上的virtualenv中的代碼;相反,我相信這將是www-data。是www-data應該達到james訪問virtualenv,或者有沒有辦法將virtualenv安裝到www-data?似乎應該有一種在生產環境中配置virtualenvs的標準方式,但我似乎無法找到任何東西。

非常感謝您的幫助!

+0

我會將virtualenv安裝到項目根目錄中的「venv」目錄中,而不是安裝到用戶的主目錄中。然後,prod和dev中的設置可以相同。 –

+1

這完全取決於個人的偏好。我個人的偏好是在'/ usr/local/virtualenv /'中創建virtualenv - 這樣,它是一個標準位置,而不管項目實際駐留在服務器上的哪個位置。 – karthikr

回答

4

基本上你可以把虛擬環境放在適合你的任何地方,並且可以由運行python進程的用戶讀取。出於安全考慮,您應該考慮將ve創建爲另一個用戶,以便該進程無法對其進行寫入訪問。

0

我總是結構這樣的事情:

virtualenvs:

/user/var/www/project/virtualenvs/myapp_env1 
/user/var/www/project/virtualenvs/myapp_env2 
/user/var/www/project/virtualenvs/myapp_env3 
.... 

應用:

/user/var/www/project/applications/myapp1 
/user/var/www/project/applications/myapp2 
/user/var/www/project/applications/myapp3 
... 

其實我知道,這些事情不應該是在/ var/WWW /但我從未關注它..

和每個應用程序都有自己的用戶,命名爲程序的名字。

0

我以你的方式設置我的virtualenv。 你應該做的是將james添加到組www-data它應該沒問題。

sudo adduser james www-data 
相關問題