2012-10-15 35 views
0

我有一個YII webapp項目,我已經使用svn checkout repo。當我嘗試我的NGINX服務器上運行這個web應用程序,它(PROJECT1)給我一個錯誤 -在SVN結賬後配置YII webapp

Application runtime path "~/workspace/project1/protected/runtime" is not valid. Please make sure it is a directory writable by the Web server process. 

但是,當我創建其他一些誼項目(項目2)像 -

yiic webapp ~/workspace/project2 
#and then the MVC procedure 
./protected/yiic shell 
>>model User users 
>>crud User 

我可以在瀏覽器中運行我的webapp。

是否因爲項目1未配置?我必須手動對我的working copy進行配置?

+0

它沒有幫助。我甚至不能運行'project1/index.php' – Hussain

+1

忽略我之前的註釋,唯一需要的是允許nginx用戶寫入* runtime *文件夾,這是我對重命名的錯誤,對不起。 –

+1

是的。謝謝。無法從'確保它是可寫的目錄'。認爲這是yii的東西,而不是unix的東西。把東西放在答案中。 – Hussain

回答

3

對於nginx用戶,您必須授予對運行時文件夾的寫入權限。

Yii中使用該文件夾運行時存儲臨時文件,從the guide

的WebRoot /保護/運行:這個目錄包含應用程序的運行時產生的私有臨時文件。該目錄必須可由Web服務器進程寫入。

所以,警予做此檢查,在CApplication's setRuntimePath()

if(($runtimePath=realpath($path))===false || !is_dir($runtimePath) || !is_writable($runtimePath)) 
+0

是的。有效。爲什麼這個dir寫得到保護而不是其他的。我們是否應該刪除引用'.htaccess'的註釋 – Hussain

+2

實際上所有文件夾都受到保護,但yii使用此文件夾在運行時存儲臨時文件,這就是爲什麼需要寫訪問權限,請參閱更新的答案。是的,你可以刪除這些消息 –

2

您還可以使用yiic webapp命令設置權限,在你簽出的項目,假設你在相同的相對路徑有yii/framework在你的開發項目中。

svn checkout http://domain.tld/myproject myproject 
cd myproject 
protected/yiic webapp . 

只要確保你不會覆蓋現有文件。

+0

好。爲你+1。但我需要與我的yii webapp相同的項目 - _project1_。我只需要改變'runtime /'的權限。 – Hussain

+1

......和'assets /'...和'data /'(如果你有一個SQLite數據庫);) – schmunk