【问题标题】:Change root without change application with CakePHP?使用 CakePHP 更改根目录而不更改应用程序?
【发布时间】:2014-03-07 19:12:57
【问题描述】:

这个问题和this other one类似,但是我用的是完整的URL,不是mod_rewrite,见cakephp WITHOUT mod_rewrite或者这个“sibling question”。

我有一个运行良好的 CakePHP 文件夹,位于 /var/www/mycake (localhost/mycake)。现在我需要更改为 /var/www/test/mycake (localhost/test/mycake)...如何通过最少的 PHP 代码更改来进行此更改?


我添加了一个控制器作为推荐的蛋糕消息:

  • TestMyCakeController.php ... 什么都没有
  • TestController.php 正常 (!),但出现其他错误

【问题讨论】:

  • 您想在您的蛋糕核心中添加第二个应用程序吗?如果不是,为什么不将整个蛋糕结构应用程序和核心放到新目录中?
  • 我在/var/www/test/mycake/appapp...它只有一个应用程序,只有一个CakePHP 结构...但不是主机根目录,我需要全部放在/var/www/test/.. . 所以,不明白你的评论。
  • 为什么不把应用移到那个目录呢? ROOT 基于顶部 index.php 文件所在的目录。这就是 dirname(__FILE__) 的作用。我刚刚使用 CakePHP 2.4.6 发行版进行了测试,它似乎可以工作。
  • @DavidH.Bennett,是的...也许是一回事... 1) 你误会了,我需要cakephp WITHOUT mod_rewrite2) 也许是一个好建议 (!):重新安装 CakePHP 并使其适应我的应用程序的旧 CakePHP-v2.3.0 (!)。嗯...这个周末我会这样做。

标签: cakephp-2.0


【解决方案1】:

Cake 在根 index.php 文件中定义了它的 ROOT 目录。如果你往里面看,你会看到以下几行:

define('ROOT', dirname(__FILE__));
define('WEBROOT_DIR', 'mycake');
define('WWW_ROOT', ROOT . '/' . 'test' . '/'. WEBROOT_DIR . '/');

【讨论】:

  • 谢谢(!)不起作用:“警告:需要(app/mycake/index.php):无法打开流:没有这样的文件或目录...” .不存在app/mycake/index.php,只有app/index.php
  • 对不起,Warning: require(app/mycake/index.php): failed to open stream: No such file or directory in /var/www/test/mycake/index.php on line 49 Fatal error: require(): Failed opening required 'app/mycake/index.php' (include_path='.:/usr/share/php:/usr/share/pear') in /var/www/test/mycake/index.php on line 49
【解决方案2】:

您可以轻松地将 CakePHP 应用程序移动到 Web 根目录下的另一个目录。顶级 index.php 包含以下行:

define('ROOT', dirname(__FILE__));

这会将根目录设置为主索引的当前位置。

【讨论】:

猜你喜欢
  • 2011-05-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多