如何在Magento 2中设置开发人员模式


44

我正在尝试安装Magento 2,但出现以下错误:

应用程序运行期间发生错误。无法写入错误消息进行记录。请使用开发人员模式查看消息。

我已经尝试按照Alan Storm的建议添加SetEnv MAGE_MODE developerhttp://magento-quickies.alanstorm.com/post/58757471044/magento-2-developer-mode,但是没有运气。.htaccess


您使用的是apache还是nginx?您如何精确设置环境变量?
user487772 2014年

@Tim我正在使用Apache。我将它通过将其添加到的.htaccess的顶部
保罗·唐纳利

加什么?请将所有这些信息添加到您的问题中。
user487772 2014年

您必须在mod_envApache和AllowOverride Onvhost配置中启用Apache .htaccess才能进行解析。
benmarks

Answers:



30

换句话说,我们可以启用开发人员模式

  • 转到app/etc/并打开env.php
  • 和改变由电流应用模式MAGE_MODE' => 'default'MAGE_MODE' => 'developer'

然后,请刷新缓存


18

正如您和其他人所指出的:

SetEnv MAGE_MODE "developer"

假设AllowOverride All位于正确的<Directory>指令中,则.htaccess文件中的应当启用开发人员模式。

但是,与您的原始问题相关,这可能是由于权限问题导致的,其中Apache进程用户没有对正确目录的写权限。

为了进行快速测试,您可以在Magento 2目录中执行以下操作:

chmod -R a+wX var
chmod -R a+wX app/etc
chmod -R a+wX pub

然后,如果弹出安装向导,则可以尝试确保您对这些目录上的Apache进程具有正确的权限。


1
虽然仍然可以使用环境变量来覆盖模式,但现在首选使用bin/magento。请参阅devdocs.magento.com/guides/v2.0/config-guide/bootstrap/…devdocs.magento.com/guides/v2.0/config-guide/cli/…–
Fabian

8

您是否在使用mod_fastcgi + php-fpm?在那种环境下,我遇到了这个问题。环境变量的前缀为“ REDIRECT_”。

此处有关堆栈交换的相关问题:Apache SetEnv加上REDIRECT_。是什么赋予了?

我可以通过在php-fpm池配置文件中设置环境变量来解决此问题:

env[MAGE_MODE] = developer

8

为了更改magento 2.0模式,您必须php bin/magento deploy:mode:set developer在CMD或SSH窗口中运行此命令到magento 2.0根文件夹中。您可以在此处此处找到更多信息。



4

如果您使用PHP 5.4中的内置Web服务器,则在启动服务器时需要设置ENV:

MAGE_MODE=developer php -d variables_order=EGPCS -S 127.0.0.1:8080 router.php

有关如何使用PHP 5.4的内置网络服务器(包括Magento 2的设置)的更多信息,请参见以下截屏视频:

http://quick.as/kkbahnlx


4

请尝试在开始文件的index.php内添加以下行。

$_SERVER['MAGE_MODE'] = 'developer';

希望您会看到错误消息。


4
我强烈不鼓励编辑核心文件,例如index.php
7ochem

1
我认为这两种方式都不应该回购,因此,一旦在本地更改,就不会造成太大的损失。
Maciej Paprocki '16

4

您好,我已阅读您的问题,请参阅解决方案。

您可以通过CLI命令设置开发人员模式,也可以手动设置

手动设置:

打开您的magento 2根目录,打开文件"/app/etc/env.php"并搜索"'MAGE_MODE' =>"。您可以在此处手动更改magento模式。

生产模式的CLI命令:

magento deploy:mode:set production

开发人员模式的CLI命令:

magento deploy:mode:set developer

有关更多信息,请访问下面的URL。 http://php-scripts-form.blogspot.nl/2017/09/magento-2-how-to-set-production-mode.html


更改之前如何查看模式?
拉兹万·赞菲尔

您可以使用@RazvanZamfir deploy:mode:show查看当前模式。
埃里克·海斯特兰德

3

如果您将NginX用作Web服务器,则.htaccess不会受到影响。更改NginX服务器指令将启用开发人员模式。

例如:(/etc/nginx/sites-available/m2_test.conf假设正确配置了nginx)

server {
   listen 80;
   server_name m2.test.com;
   set $MAGE_ROOT path/to/magento2;
   set $MAGE_MODE developer;
   include other/configurations/file.conf;
}

此设置$ MAGE_MODE将打开开发人员模式。

other / configurations / file.conf应该链接到配置文件路径,该路径应该是[MAGENTO_DOC_ROOT]/nginx.conf.sample

正如其他人所提到的,php bin/magento deploy:mode:set developer也将使其成为可能


我是否要同时在Nginx conf和magento控制台中设置开发人员模式?如果一个人是开发人员而一个产品又会怎样?
LucScu

3

从生产模式更改为开发人员模式时,应清除生成的类和对象管理器实体(例如代理),以防止发生意外错误。之后,您可以更改模式。使用以下步骤:

  1. 如果要从生产模式更改为开发人员模式,请删除var / generation和var / di目录的内容:

    rm -rf <your Magento install dir>/var/di/* <your Magento install dir>/var/generation/* 
  2. 设置模式:

    magento deploy:mode:set developer

将显示以下消息

   Switched to developer mode.

0

确保给予许可

sudo chmod 777 . -R

之后

php bin/magento deploy:mode:set developer

否则,权限被拒绝


0

根据DEVDOCS,这里是您的解决方案。

如果从生产模式更改为开发人员模式,则必须清除所有生成的类和对象。

在CLI中运行此行代码以删除“生成的代码”和“生成的元数据目录”的内容。

$rm rf <magento_root>/ generated/metadata/* <magento_root>/generated/code/*

设置模式-

$bin / magento deploy : mode : set developer

运行此命令后,它将显示有关启用开发人员模式的消息

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.