cakepp控制器在生产服务器上未发现错误


cakephp controller not found error on production server

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

错误:找不到FCController。

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

class FCController extends AppController {
}

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

您需要更改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');

以指向它们各自的位置。

(三个中的最后一个默认情况下是注释的,所以您需要取消注释。

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

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

这是针对本地机器中的localhost,其中基本文件夹是htdocs,我必须键入localhost/FC/才能访问index.php。所以很自然,因为在EC2上,我把FC本身作为我的基本文件夹,它试图访问其中不存在的另一个FC。/XX/locations/意味着它搜索"XXX"控制器,然后在其中搜索位置。由于我的控制器是locations,它一直给出错误。

当我把它改成这个:

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

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