【问题标题】:cakephp controller not found error on production servercakephp 控制器在生产服务器上找不到错误
【发布时间】:2013-08-31 11:55:52
【问题描述】:

我在文件夹 FC 下有一个 cakephp 项目,在 ubuntu 上,它的路径是 /var/www/FC/app/... 上传到 ec2 并进行所有配置更改后,基本路径,即。 index.php 正确打开,但 index.php 上的任何其他链接都给出错误:

错误:找不到 FCController。

错误:在文件app/Controller/FCController.php中创建下面的类FCController

class FCController extends AppController {

}

创建此文件时,它要求将方法位置放入类 FCcontroller 中,并且在将空方法放入类中时,显示变为蓝色,就像一个空白页面一样。 由于我还没有编写此代码,所以我不知道应该在哪里写数据……我该怎么办?

【问题讨论】:

  • 你能不能用你写的方法更新控制器代码......对于那个蓝屏查看views文件夹你会看到layout.ctp文件......这是主模板的文件文件。
  • FCcontroller中没有方法,实际上我的代码中没有FCcontroller。我只是做了一个空方法,因为错误显示我要检查会发生什么...我认为控制器的默认路径设置不正确,如何更改控制器的路径,它在配置中的哪里给出?
  • 您可以在 Config 文件夹中看到它...在该文件夹中您将看到 route.php 文件...
  • 好的,所以在 routes.php 中,这些是显示的两条路由:Router::connect('/', array('controller' => 'locations', 'action' => 'index ')); Router::connect('/pages/*', array('controller' => 'pages', 'action' => 'display'));所以位置是我的主要控制器,用于操作索引。第二个命令不正确吗?因为 pages 是 cake 给出的默认示例,所以我查了一下。使用第二个命令会发生什么?
  • 听起来只是需要在 webroot/index 中更改路径的问题

标签: php cakephp path controller


【解决方案1】:

您需要更改app\webroot\index.php 中的这三行:

// The full path to the directory which holds "app", WITHOUT a trailing DS.
define('ROOT', '/var/www/FC');

// The actual directory name for the "app".
define('APP_DIR', 'app');

// The absolute path to the "cake" directory, WITHOUT a trailing DS.
define('CAKE_CORE_INCLUDE_PATH', ROOT . DS . 'lib');

指向它们各自的位置。

(三个中的最后一个是默认注释的,所以你需要取消注释它。

【讨论】:

  • 嗨,戴夫,感谢您的回复!所以如果我的 cake 文件夹的路径是这样的: /var/www/FC/app/webroot 我在前两行写什么?我尝试给出路径但它没有用,你能根据我上面给出的路径给我具体的命令吗?非常感谢!
  • 用我认为你的路径编辑的答案。E
  • 嗨!我做了更改,但错误仍然存​​在:(这可能是 3 个 htaccess 文件的问题吗?我没有给出 rewrite base 命令等,我的 cakephp 位于 FC 文件夹中的 www 内,所以我需要将 base 重写为 FC?PS - 在基本 FC 文件夹中还有另一个 index.php,我还需要更改 cake_core 配置吗?它现在显示旧的默认配置.. PS2-可能是关于 allowoverride all 的东西吗?默认文件有 4 个允许覆盖前 2 个我设置为 all,后 2 个仍然设置为 none...
  • 您不必更改 .htaccess 文件,但您必须将“CAKE_CORE_INCLUDE_PATH”更改为 CakePHP 所在的位置。
  • 我在 FC 和 webroot 的 index.php 文件中都包含了 cake_core 路径。它一直给 FCController not found, create it error...你认为我需要强制拥有一个 FCController .php 文件?
【解决方案2】:

我解决了这个问题。这是因为在我的代码中,之前的用户创建了一个控制器文件 Locationscontroller.php 并指定了这样的 url:

<form id ="0" action="/FC/locations/confirm_final">

这是用于本地计算机中的 localhost,其中基本文件夹是 htdocs,我必须键入 localhost/FC/ 才能访问 index.php。 很自然,因为在 EC2 上,我将 FC 本身作为我的基本文件夹,它试图访问其中不存在的另一个 FC。 /XXX/locations/ 表示它搜索“XXX”控制器,然后在其中搜索位置。由于我的控制器是 Locations,所以一直报错。

我一改成这样:

<form id ="0" action="/locations/confirm_final">

它指向正确的控制器,即位置。 这都是因为我没有检查哪个控制器被哪个View调用! 我是个白痴,仅此而已:D

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-28
    • 1970-01-01
    • 2023-04-07
    相关资源
    最近更新 更多