蛋糕php子文件夹安装,临时文件夹错误来自htaccess或文件权限?

时间:2012-05-03 13:48:24

标签: .htaccess cakephp cakephp-2.0 file-permissions subdirectory

我的客户要求我为他们制作的蛋糕php应用程序进入现有服务器上的子目录。 所有这些都完美地适用于我的测试远程和本地安装。

最初我遇到了htaccess的问题,不得不将RewriteBase / quotesystem /添加到我的htaccess文件中,以便查看该网站。所以我改变了我的htaccess如下:

蛋糕根.htaccess:

<IfModule mod_rewrite.c>
   RewriteEngine on
   RewriteBase /quotesystem/
   RewriteRule    ^$ app/webroot/    [L]
   RewriteRule    (.*) app/webroot/$1 [L]
</IfModule>

app .htaccess:

<IfModule mod_rewrite.c>
    RewriteEngine on
RewriteBase /quotesystem/app/
    RewriteRule    ^$    webroot/    [L]
    RewriteRule    (.*) webroot/$1    [L]
</IfModule>

和webroot .htaccess:

<IfModule mod_rewrite.c>
    RewriteEngine On
RewriteBase /quotesystem/app/webroot/
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ index.php?/$1 [QSA,L]
</IfModule>

现在我可以访问我的网站,但是我收到了很多关于临时目录的警告:

警告(2):SplFileInfo :: openFile(/web/sites/_p/_e/_t/petersen-stainless.co.uk/public/www/quotesystem/app/tmp/cache/persistent/cake_core_cake_en-gb) [function.SplFileInfo-openFile]:无法打开流:没有这样的文件或目录[CORE / Cake / Cache / Engine / FileEngine.php,第295行]

您可以在此处查看:http://www.petersen-stainless.co.uk/quotesystem

现在,我已经将临时目录CHMOD到777,所以每个人都应该拥有权限,但我仍然会遇到这些错误。

我删除了这些文件夹中的所有文件,以便清除临时目录。

当我使用我的ftp客户端 - 传输 - 查看文件权限时,所有者显示为(?),如果我尝试更改它,我会收到错误消息: 无法更改“tmp”的所有者。服务器说:'SITE CHOWN'不理解

我不会在我工作的任何其他网站上得到这个。

我不明白知道发生了什么,这是权限问题还是.htaccess问题或两者兼而有之?或者是服务器配置问题?

如果有人能帮助解释这一点并帮助我理解,我会非常感激。

更新 我在服务器上的目录结构如下:

- 公开

--- www

----- quotesystem

------- lib

------- app

--------- config

--------- webroot

2 个答案:

答案 0 :(得分:2)

根据我的经验,当Cake尝试读取/写入没有访问权限的缓存时,会出现SplFileInfo警告。确保您的应用程序有权读取/写入cache / tmp文件夹(取决于您的Cake版本)。

答案 1 :(得分:0)

这可能是一个.htaccess问题。 RewriteBasewebroot .htaccess的app应该相同。所以两个文件中的行应该是:

RewriteBase /quotesystem/

我个人从不接触Cake根目录中的.htaccess,因为似乎没有必要改变那里的任何内容。

此外,/tmp/cache及其子目录也应该是可写的。