2012-09-26 38 views
2

我想在我的項目文件夾,而不是在/ tmp目錄創建uWsgi插座/在其他文件夾中創建uWSGI套接字?

這裏是我的uWSGI配置

[uwsgi] 
socket = /tmp/uwsgi.sock #I want this in any other folder 
#say in /home/me/Desktop/myDjangoApp/ 
chmod-socket = 666 
processes = 1 
master = true 
vhost = true 
no-site = true 

但每當我重啓uWSGI我的文件夾中創建的插座,[失敗]。 我無法在其他文件夾中創建uwsgi.sock?

+0

它沒有說...什麼? – sapht

+0

不幸的是,什麼也沒說。 –

+0

那麼啓動失敗沒有任何錯誤信息?或請求失敗?這是整個配置?你有沒有嘗試在命令行上啓動相同的選項? – sapht

回答

1

那麼,我找到了一個替代解決方案。我創建的套接字在本地主機

這裏是我的uwsgi文件

[uwsgi] 
uid = www-data 
gid = www-data 
master = 1 
workers = 2 
plugins = python 
socket = 127.0.0.1:3100 
enable-threads = true 
processes = 2 
pythonpath = <> 
wsgi-file = <> 
chdir = <> 
1

Unix套接字必須服從於文件權限的方案。

在第二個配置中,您正在設置uid = www-data和gid = www-data。 的套接字文件必須是www數據和nginx的寫必須能夠讀/寫/tmp/uwsgi.sock

在另一方面,如果你發現很難使用主機:端口(TCP套接字)將工作你也似乎可以這樣做。

+1

是的,舒適的TCP套接字 –

+0

這是正確的答案,用戶www數據沒有權限在/ home中創建文件/我/桌面/ myDjangoApp /。不要使用chmod-socket 666. 600也可以,因爲nginx也是以www數據的形式運行的。 'sudo install -o www-data -g www-data -m 755 -d/var/run/uwsgi'然後使用該路徑放入你的套接字。 –

4

我用下面的uwsgi配置(減少到相關部分):

[uwsgi] 
uid = moin 
gid = www-data 
socket = /var/run/moin/uwsgi.sock 
hook-as-root = exec:mkdir -vp /var/run/moin/; chown -v moin:www-data /var/run/moin/ 

注意運行/維基/目錄與用戶權限的服務器中斷之前的權限它創建在/ var鉤/。無論你想要什麼目錄,moin都是我的wiki引擎的名字。

在較新的發行版中,/ var/run指向tmpfs位置,以便重新啓動後任何手動創建的目錄都會被刪除。與添加/修改另一個初始化腳本相比,此文件中的鉤子定義使您的配置保持緊湊。

相關問題