EC2上的CakePHP缺少控制器
我有一个Cake 2.3.8应用程序,在localhost上运行良好,我将其上传到一个Ubuntu12.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可以工作,尽管它是移动格式的EC2上的CakePHP缺少控制器,php,cakephp,amazon-web-services,amazon-ec2,Php,Cakephp,Amazon Web Services,Amazon Ec2,我有一个Cake 2.3.8应用程序,在localhost上运行良好,我将其上传到一个Ubuntu12.04 EC2实例,但在索引/主文件上,我得到了一个“缺少控制器”错误 CSS、页眉和页脚在主页/索引页上加载良好,但它似乎找不到控制器。我的应用程序的每一个页面/控制器都无法加载,我会收到一个404错误 我试过了,但我的问题仍然存在 我还应该寻找什么会导致它找不到控制器,甚至无法加载任何其他页面 更新 我将内容移动到/var/www,以便通过my-ec2-instance.com访问。当我转到
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
听起来你的
.htaccess
文件有问题,它可以正确地重写短URL和处理控制器路由。听起来你的.htaccess
文件有问题,它可以正确地重写短URL和处理控制器路由。请通过putty连接实例,然后按
sudo nano /etc/httpd/conf/httpd.conf
检查下面给出的行并移除#标记
之后,您可以替换:
AllowOverride None
与
注意:允许无任何超越->
允许全部超越
从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>
重新启动发动机
重写规则^$app/webroot/[L]
重写规则(*)app/webroot/$1[L]
请通过putty连接实例,然后按
sudo nano /etc/httpd/conf/httpd.conf
检查下面给出的行并移除#标记
之后,您可以替换:
AllowOverride None
与
注意:允许无任何超越->
允许全部超越
从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>
重新启动发动机
重写规则^$app/webroot/[L]
重写规则(*)app/webroot/$1[L]
具体是哪个.htaccess?我仔细查看了一下,发现有多个(/.htaccess、/app/.htaccess、/app/webroot/.htaccess)。我的正则表达式技能缺乏,所以我不太确定我到底要找什么。谢谢你的建议!主根目录.htaccess
。具体是哪个.htaccess?我仔细查看了一下,发现有多个(/.htaccess、/app/.htaccess、/app/webroot/.htaccess)。我的正则表达式技能缺乏,所以我不太确定我到底要找什么。谢谢你的建议!主根目录.htaccess
。您能在这里添加准确的错误消息吗?@GuillemoMansilla它说“缺少控制器错误:无法找到Project1Controller。”。这是在索引页上,这将是PagesController。您使用的url是什么?@GuillemoMansilla我正在访问,就像在localhost上一样。my-ec2-url.com/Project1@GuillemoMansilla我的应用程序位于/var/www/Project1 not/var/www。当我访问时,它只显示apache“it Works”消息。你能在这里添加准确的错误消息吗?@guillemmansilla它说“缺少控制器错误:找不到Project1Controller。”。这是在索引页上,这将是PagesController。您使用的url是什么?@GuillemoMansilla我正在访问,就像在localhost上一样。my-ec2-url.com/Project1@GuillemoMansilla我的应用程序位于/var/www/Project1而不是/var/www。当我访问时,它只显示apache“it Works”消息。