404在生产中部署时,Magento扩展中出现错误

时间:2014-01-31 15:43:23

标签: magento module http-status-code-404 admin

这个令人困惑的是我2天了。我在管理员中找到了404的解决方案,但这与此处发生的情况不同。我的本地复制和生产服务器中有完全相同版本的Magento:1.7.0.2。扩展在本地很好用。我使用Magento Connect打包并以相同的方式安装在生产中。所有文件都在那里。它显示在菜单和配置部分,但是当我单击菜单转到报告时,我得到了心爱的404.我出去了,刷新缓存数十亿次(包括手动删除文件)但没有任何改变。是envs中的URL:

(Dev)http://localhost/magentos/index.php/salestaxes/adminhtml_salestaxes/index/key/c4b8ecb58fa2062f696cacfd340/

(Prod)https://www.myserver.com/index.php/salestaxes/adminhtml_salestaxes/index/key/332e617e74a92a39a40cf5d3/

正如你所看到的完全一样。我不知道wahy然后我收到了错误。有人能指出我能做些什么来解决这个问题?我需要检查任何设置吗?是什么导致这种情况?

这是我在路由器_validateControllerClassName()方法中得到的var_dump:

string(115) "/home_path/public_html/app/code/community/Surpassweb/SalesTaxes/controllers/Adminhtml/SalestaxesController.php" 
string(100) "/home_path/public_html/app/code/community/Surpassweb/SalesTaxes/controllers/IndexController.php"

这是Alam 404模块的输出:

控制器名称

Controller Name: adminhtml_salestaxes
The controller name adminhtml_salestaxes matches the following controller file, but this file does not exist.
home_path/public_html/app/code/community/MyCompany/SalesTaxes/controllers/Adminhtml/SalestaxesController.php

该文件存在且具有755个权限。

这是may控制器的第一行:

class MyCompany_SalesTaxes_Adminhtml_SalesTaxesController extends Mage_Adminhtml_Controller_Action {

感谢您的时间。

2 个答案:

答案 0 :(得分:1)

你确定文件在那里吗?名字一样吗?具有相同的字符大小写?并且您没有使用多个前端Web服务器进行生产设置?

如果您放纵我 - 将控制器的路径从Better 404页面复制到计算机的剪贴板。然后输入

$ ls -l [PASTE]

进入终端窗口。如果文件不在那里我打赌。也试试

$ls -l app/code/community/Surpassweb/SalesTaxes/controllers/Adminhtml/

查看哪些文件。

查看您提供的信息,Magento正在寻找名为

的文件
app/code/community/MyCompany/SalesTaxes/controllers/Adminhtml/SalestaxesController.php

我不知道您的实际文件是什么名称,但查看类名

MyCompany_SalesTaxes_Adminhtml_SalesTaxesController

让我相信可能被错误地命名为SalesTaxesControlle.php。请注意,销售税中的T是大写的,而Magento正在寻找小写t

答案 1 :(得分:0)

由于某种原因,magento没有注册到您的应用的路线。

要么apache不知道让magento处理它,或者magento不知道如何处理它。

检查两种环境的htaccess文件和虚拟主机配置。

马上,我可以看到它们并不完全一样。一个是http,一个是https。 这些可能是两种不同的虚拟主机配置,可能略有不同。

接下来,我将确保您的模块的config xml包含在magento / app / etc / modules /文件夹中。确保模块已启用。在模块config xml文件中应该有一行。

如果您将其部署到local vs community文件夹,请检查magento / app / etc / local.xml并确保disable_local_modules设置为no。

祝你好运。现场故障排除总是很有趣。