我有两个域,一个是主域,第二个是子域。我需要在他们两个之间共享一个 tmp 文件夹。在 core.php 中,我确实喜欢这个define('CACHE_DIR', TMP.'cache'.DS.$_SERVER['SERVER_NAME']);
,Cache::config('default', array('engine' => 'File', 'path' => ROOT.DS.'tmp'.DS));
但它不起作用。请如果有人知道这个问题,请帮助我?谢谢!
问问题
396 次
2 回答
1
一种解决方案是设置从子域 tmp 文件夹到主域 tmp 文件夹的符号链接。
http://www.tech-recipes.com/rx/172/create_a_symbolic_link_in_unix_solaris_linux/
然后子域应用程序可以像任何普通应用程序一样对待 tmp 文件夹。
可能有一种特殊的蛋糕方式可以做到这一点,但这也应该有效:)
于 2013-02-06T12:06:01.650 回答
1
TMP 常量将被定义在子域的应用程序目录中,因此您最终将保存文件
/subdomain-path/app/tmp/cache/domainname
TMP 常量在 bootstrap.php 中定义,但您可以通过在 index.php 中自己定义来覆盖它
如果您将 TMP 设置到正确的位置,所有临时、会话和缓存文件都将写入该位置。所以认为如果会话数据存储在共享目录中是一个问题
重要的
请务必为每个网站设置不同的缓存$prefix。否则为一个网站缓存的模型也会被另一个网站使用,这可能会导致使用错误数据库中的数据!!这个变量可以在你的 app/Config/core.php 中设置
重要2
我强烈建议您不要使用该$_SERVER['SERVER_NAME']
变量。如果您的网站使用 serverAliases(例如,两者都处理www.example.com和example.com),那么两个(子)域将使用单独的缓存目录。最好设置固定路径。
于 2013-02-07T22:51:39.223 回答