Magento 2开发人员模式工作生产模式没有

时间:2018-01-31 19:18:18

标签: php

不久前我别无选择,只能与Magento一起为客户工作,做了一些功课,最后制作了一个自定义主题包,并学习了一些其他的东西都很顺利。我在Windows Xampp上安装了我的本地Web服务器上的Magento,但是在PHP等上也使用了nix盒。

作为开发人员模式的标准,一切都很完美,没有任何问题,但只要我尝试切换到生产模式(从CLI正确),然后它报告操作成功,现在处于生产模式...除了它不是,如果我通过“bin / magento deploy:mode:show”查询模式,它会报告开发者模式,如果我尝试加载网站的前端或后端,我会得到:

  

致命错误:未捕获错误:在D:\ xampp \ htdocs \ vendor \ magento \ module-backend \ Model \ View \ Result \ Page.php中调用boolean上的成员函数setActive():27堆栈跟踪:# 0 D:\ xampp \ htdocs \ vendor \ magento \ module-backend \ Controller \ Adminhtml \ Dashboard \ Index.php(35):Magento \ Backend \ Model \ View \ Result \ Page-> setActiveMenu('Magento_Backend ... ')#1 D:\ xampp \ htdocs \ vendor \ magento \ framework \ App \ Action \ Action.php(107):Magento \ Backend \ Controller \ Adminhtml \ Dashboard \ Index-> execute()#2 D:\ xampp \ htdocs \ vendor \ magento \ module-backend \ App \ AbstractAction.php(229):Magento \ Framework \ App \ Action \ Action-> dispatch(Object(Magento \ Framework \ App \ Request \ Http))#3 D:\ xampp \ htdocs \ vendor \ magento \ framework \ App \ FrontController.php(55):Magento \ Backend \ App \ AbstractAction-> dispatch(Object(Magento \ Framework \ App \ Request \ Http))#4 D :\ xampp \ htdocs \ vendor \ magento \ framework \ App \ Http.php(135):Magento \ Framework \ App \ FrontController-> dispatch(Object(Magento \ Framework \ App \ Request \ Http))#5 D: \ XAMPP \ htdocs中符\ v endor \ magento \ framework \ App \ Bootstrap.php(256):第27行的D:\ xampp \ htdocs \ vendor \ magento \ module-backend \ Model \ View \ Result \ Page.php中的Magento

到目前为止,我还不敢尝试在现场进行操作。

我尝试过的其他事情包括:

  • 设置制作但跳过重新编译,清除缓存和手动部署内容 - 不起作用

  • “php / bin / magento deploy:mode:set production -s

      

    已保存配置“dev / debug / debug_logging = 0”。   启用生产模式。“

..但它没有

我错过了什么? :(每个谷歌搜索产生相同的内存限制答案,但这不适用于此处,my.ini / php.ini已经配置为从我需要的其他项目更高的内存限制。

感谢您提供任何帮助,一如既往地感谢您:)

2 个答案:

答案 0 :(得分:0)

由于这让我上了墙,我决定看看是否可能是我的客户网站的某些模块或安装我不知道影响这个过程。

今天我在升级之前安装了与客户端相同的Magento 2.1.9。让作曲家升级到2.2.2并完成只安装我开发的主题包。现在回到2.2.2我尝试从开发人员切换到生产模式的相同过程,得到完全相同的结果,没有正常工作的前端/后端只是PHP错误,就像我在上面的原始问题中所做的那样。

我非常恼火,我开始质疑为什么作曲家会告诉我它成功切换到制作,如果它没有(误报)那么也许我一直尝试的其他操作说失败实际上是工作(假阴性) )。

我是对的......

我的“修复”:

1)切换到生产模式(php bin / magento deploy:mode:set production)

2)清理并刷新缓存:    php bin / magento cache:干净    php bin / magento cache:flush

3)再次运行composer install(是的,我知道这没有意义)    从magento root run:composer install

它会报告一个错误的否定,即没有什么可以安装或更新但是......

现在一切都神奇地起作用,查询magento:

php bin / magento deploy:mode:show

您应该在2.2.2

上处于生产模式

如果任何人知道更好的方式请分享,我发现这种情况非常迟钝但是有效。

答案 1 :(得分:0)

删除generated/metadata/global.php文件。它将解决此问题。

参考:https://github.com/magento/magento2/issues/13504#issuecomment-380766507