【问题标题】:CakePHP missing controller on EC2CakePHP 在 EC2 上缺少控制器
【发布时间】:2013-12-16 06:42:25
【问题描述】:

我有一个在 localhost 上运行良好的 Cake 2.3.8 应用程序,我将它上传到一个 Ubuntu 12.04 EC2 实例,但在索引/主文件上我收到“缺少控制器”错误。

主页/索引页面上的 CSS、页眉和页脚加载正常,但似乎找不到控制器。我的应用程序的每个其他页面/控制器甚至都不会加载,我收到 404 错误。

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

我还应该寻找什么会导致它找不到控制器甚至不加载任何其他页面?

更新

我将我的内容移至 /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

【问题讨论】:

  • 你能在这里添加确切的错误信息吗?
  • @GuillemoMansilla 它说“缺少控制器错误:找不到 Project1Controller。”。这是在索引页面上,即 PagesController。
  • 你使用的网址是什么?
  • @GuillemoMansilla 我正在访问就像在本地主机上一样。 my-ec2-url.com/Project1
  • @GuillemoMansilla 我的应用程序位于 /var/www/Project1 而不是 /var/www。当我访问它时,它只显示 apache“It Works”消息。

标签: php cakephp amazon-web-services amazon-ec2


【解决方案1】:

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

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

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

LoadModule rewrite_module modules/mod_rewrite.so

之后你可以替换:

AllowOverride None

与

AllowOverride All

注意:AllowOverride None -> AllowOverride All。

从 Crtl+X 然后按 Y 然后按 Enter (您可以根据您的操作系统)

之后就可以在putty中执行命令了

sudo service httpd restart

然后检查您的.htaccess 文件(请确保您的.htaccess 应该正确)以获取cakePHP .htaccess

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

【讨论】:

    【解决方案2】:

    听起来您的 .htaccess 文件存在问题,该文件可以正确重写短 URL 和处理控制器路由。

    【讨论】:

    • 具体是哪个 .htaccess?我查看了一下,似乎有多个(/.htaccess、/app/.htaccess、/app/webroot/.htaccess)。我缺乏正则表达式技能,所以我不太确定我会寻找什么。不过感谢您的建议!
    • 主根.htaccess.
    猜你喜欢
    • 1970-01-01
    • 2014-02-06
    • 2018-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-06
    • 2013-12-12
    相关资源
    最近更新 更多