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