2012-10-15 36 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