我正在使用Yii框架作为网络应用。我将运行时文件夹移出受保护的文件夹,并将其放在与index.php文件相同的级别。现在在主配置文件main.php中我添加了:
'runtimePath'=>dirname(__FILE__).DIRECTORY_SEPARATOR.'..'.DIRECTORY_SEPARATOR.'runtime',
正好在正确设置的basePath下面:
'basePath'=>dirname(__FILE__).DIRECTORY_SEPARATOR.'..',
我确保运行时文件夹是可写的。我正在使用Godaddy和Windows IIS7服务器。这是我得到的错误:应用程序运行时路径“D:\ Hosting \ 9434915 \ html \ yii \ picbridge \ protected \ config .. \ runtime”无效。请确保它是Web服务器进程可写的目录。
我知道它指向错误的文件夹但是如何让它指向正确的文件夹?我对runtimePath使用了与basePath相同的文件路径约定。
答案 0 :(得分:2)
..
后你缺少斜线
请注意错误消息中的路径,它是文件夹config..
,然后是斜杠:
d:\主机\ 9434915 \ HTML \警予\ picbridge \保护\ CONFIG ..
\运行
应该是:
d:\主机\ 9434915 \ HTML \警予\ picbridge \保护\ CONFIG \..
\运行
这里有什么奇怪的,就是你DIRECTORY_SEPARATOR
之后dirname(__FILE__)
,而应该产生正确的路径。
提示: No need for DIRECTORY_SEPARATOR
,只需使用/
即可在任何窗口上正常运行,这对于解析文件系统中的路径非常有用。
提示2:感谢 Eirik Hoem 评论,您应该严格地将受保护的文件与公共文件分开。我个人使用folowwing布局:
/app/protected/
/app/www/
/framework/
答案 1 :(得分:1)
你不应该把它放在index.php级别,把它留在受保护的文件夹中。
并在受保护的文件夹中,将.htaccess
与deny from all
一起使用,以防止直接访问非传统mvc style php code
的{{1}}。
答案 2 :(得分:0)
我找到了解决我的问题的解决方案,我从Windows托管计划切换到了Linux。我切换后,我使用FileZilla设置文件夹权限,错误消失了。我认为问题与用户在Godaddy Windows共享主机方案中设置文件夹权限的能力有限有关。用户只能使用Godaddy的FTP文件管理器设置权限,他们无法像在Linux共享主机方案中那样使用FileZilla设置权限。