EC2上缺少CakePHP控制器


CakePHP missing controller on EC2

我有一个Cake 2.3.8应用程序,它在本地主机上运行良好,我将它上传到了Ubuntu 12.04 EC2实例,但在索引/主页文件中,我收到了一个"缺少控制器"错误。

CSS、页眉和页脚在主页/索引页上加载良好,但似乎找不到控制器。我的应用程序的每一个其他页面/控制器都无法加载,我得到了一个404错误。

我试过了,但我的问题仍然存在。

我还应该查找哪些会导致它找不到控制器甚至无法加载任何其他页面的内容?

更新

我将内容移动到/var/www,以便通过my-ec2-instance.com访问。当我转到my-ec2-instance.com/index.php时,会显示页面(即PagesController/home.ctp)。但是,其他任何内容都会出现404错误。Modrewrite也已启用

当我引用index.php时,我也可以访问我的操作,尽管无论出于什么原因,它都以移动格式显示(我有一个响应模板)。例如:www.my-ec2-instance.com/index.php/users/login有效,尽管它是移动格式的

www.my-ec2-instance.com/index.php  //works
www.my-ec2-instance.com/index.php/users/login  //works, but mobile format
www.my-ec2-instance.com/users/login  //404 error

请通过putty连接您的实例,然后按

sudo nano /etc/httpd/conf/httpd.conf

检查下面给出的行并移除#标签

LoadModule rewrite_module modules/mod_rewrite.so

之后你可以更换:

AllowOverride None

带有

AllowOverride All

注意:AllowOverride None -> AllowOverwrite All

Crtl+X,然后按1Y/kbd>然后按输入

之后你可以在腻子中执行命令

sudo service httpd restart

然后检查您的.htaccess文件(请确保.htaccess应该是正确的)是否有结块HP .htaccess

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteRule ^$ app/webroot/ [L]
    RewriteRule (.*) app/webroot/$1 [L]
</IfModule>

听起来像是.htaccess文件的问题,它可以正确地重写短URL&处理控制器路由。