我的客户要求我为他们制作的蛋糕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
答案 0 :(得分:2)
根据我的经验,当Cake尝试读取/写入没有访问权限的缓存时,会出现SplFileInfo警告。确保您的应用程序有权读取/写入cache / tmp文件夹(取决于您的Cake版本)。
答案 1 :(得分:0)
这可能是一个.htaccess问题。 RewriteBase
和webroot
.htaccess的app
应该相同。所以两个文件中的行应该是:
RewriteBase /quotesystem/
我个人从不接触Cake根目录中的.htaccess,因为似乎没有必要改变那里的任何内容。
此外,/tmp/cache
及其子目录也应该是可写的。