1

我的客户要求我为他们制作的蛋糕 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>

应用程序.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) [功能。 SplFileInfo-openFile]:无法打开流:没有这样的文件或目录 [CORE/Cake/Cache/Engine/FileEngine.php,第 295 行]

你可以在这里看到它:http ://www.petersen-stainless.co.uk/quotesystem

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

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

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

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

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

如果有人可以帮助阐明这一点并帮助我理解,我将不胜感激。

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

- 上市

--- 万维网

----- 报价系统

-------- 库

- - - - 应用程序

--------- 配置

--------- 网络根

4

2 回答 2

2

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

于 2014-04-25T21:22:16.520 回答
0

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

RewriteBase /quotesystem/

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

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

于 2012-05-03T13:52:50.960 回答