Wie stelle ich den Entwicklermodus in Magento 2 ein?

44

Ich versuche, Magento 2 zu installieren, erhalte jedoch die folgende Fehlermeldung:

Fehler beim Ausführen der Anwendung. Fehlermeldung konnte nicht in das Protokoll geschrieben werden. Verwenden Sie den Entwicklermodus, um die Nachricht anzuzeigen.

Ich habe versucht SetEnv MAGE_MODE developer, .htaccessden von Alan Storm empfohlenen http://magento-quickies.alanstorm.com/post/58757471044/magento-2-developer-mode hinzuzufügen , aber kein Glück.

Paul Donnelly
quelle
Verwenden Sie Apache oder Nginx? Wie genau haben Sie die Umgebungsvariable eingestellt?
user487772
@ Tim Ich benutze Apache. Ich habe es festgelegt, indem ich es am oberen Rand des .htaccess hinzufügte
Paul Donnelly
Was hinzufügen? Bitte fügen Sie all diese Informationen in Ihre Frage ein.
user487772
Sie müssen mod_envfür Apache und AllowOverride Onin Ihrer vhost-Konfiguration aktiviert sein .htaccess, damit Sie analysiert werden können.
benmarks

Antworten:

75

Sie können es über das CLI aktivieren

bin/magento deploy:mode:set developer

Oshan Rube
quelle
30

Alternativ können wir den Entwicklermodus aktivieren

  • Gehe app/etc/und öffneenv.php
  • und ändern Sie den aktuellen Anwendungsmodus mit MAGE_MODE' => 'default' aufMAGE_MODE' => 'developer'

Dann leeren Sie bitte den Cache

Amit Bera
quelle
18

Wie Sie und andere bemerkt haben:

SetEnv MAGE_MODE "developer"

in Ihrer .htaccess-Datei sollte der Entwicklermodus aktiviert sein, vorausgesetzt, AllowOverride All befindet sich in der richtigen <Directory>Direktive.

Im Zusammenhang mit Ihrem ursprünglichen Problem kann dies jedoch an einem Berechtigungsproblem liegen, bei dem der Apache-Prozessbenutzer keine Schreibberechtigungen für die richtigen Verzeichnisse hat.

Für einen schnellen Test können Sie in Ihrem Magento 2-Verzeichnis Folgendes tun:

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

Wenn der Installationsassistent angezeigt wird, können Sie versuchen, sicherzustellen, dass Sie über die richtigen Berechtigungen für Ihren Apache-Prozess in diesen Verzeichnissen verfügen.

Bryant Luk
quelle
1
Während es immer noch möglich ist, den Modus mithilfe von Umgebungsvariablen zu überschreiben, wird jetzt die bevorzugte Methode verwendet bin/magento. Siehe devdocs.magento.com/guides/v2.0/config-guide/bootstrap/… und devdocs.magento.com/guides/v2.0/config-guide/cli/…
Fabian Schmengler,
8

Verwenden Sie mod_fastcgi + php-fpm? Ich bin auf dieses Problem wie in dieser Umgebung gestoßen. Der Umgebungsvariablen wurde "REDIRECT_" vorangestellt.

Verwandte Frage zum Stapelaustausch hier: Apache SetEnv stellt REDIRECT_ voran. Was gibt?

Ich konnte dieses Problem lösen, indem ich einfach die Umgebungsvariable in der Konfigurationsdatei des PHP-FPM-Pools festlegte:

env[MAGE_MODE] = developer
beeplogic
quelle
8

Um den Magento 2.0-Modus zu ändern, müssen Sie diesen Befehl php bin/magento deploy:mode:set developerin CMD oder Ihrem SSH-Fenster im Magento 2.0-Stammverzeichnis ausführen. Weitere Informationen finden Sie hier und hier .

Vasilii Burlacu
quelle
5

Gehen Sie von der Eingabeaufforderung zu Ihrem Magento-Stammordner und führen Sie den folgenden Befehl aus:

php bin/magento deploy:mode:set developer

Sheshgiri Anvekar
quelle
4

Wenn Sie den in PHP 5.4 integrierten Webserver verwenden, müssen Sie die ENV beim Starten des Servers einstellen:

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

Weitere Informationen zur Verwendung des in PHP 5.4 integrierten Webservers, einschließlich der Einrichtung von Magento 2, finden Sie in diesem Screencast:

http://quick.as/kkbahnlx

Philwinkle
quelle
4

Bitte versuchen Sie es, indem Sie die folgende Zeile in die Datei index.php am Anfang einfügen.

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

Hoffe, Sie werden die Fehlermeldung sehen.

satish-a
quelle
4
Ich würde dringend davon index.php
abraten
1
Ich bin der Meinung, dass dies in beiden Fällen nicht möglich sein sollte. Wenn Sie es also auf lokal ändern, wird es nicht wirklich zu viel Schaden anrichten.
Maciej Paprocki
4

Hallo ich habe deine frage gelesen und bitte um lösung.

Sie können den Entwicklermodus über den CLI-Befehl und auch manuell festlegen

So stellen Sie es manuell ein:

öffne dein magento 2 root verzeichnis, öffne die datei "/app/etc/env.php"und suche "'MAGE_MODE' =>". Sie können den Magento-Modus hier manuell ändern.

CLI-Befehl für den Produktionsmodus:

magento deploy:mode:set production

CLI-Befehl für den Entwicklermodus:

magento deploy:mode:set developer

Für weitere Informationen besuchen Sie bitte die folgende URL. http://php-scripts-form.blogspot.nl/2017/09/magento-2-how-to-set-production-mode.html

puneek00
quelle
Wie kann ich sehen , den Modus , bevor es zu ändern?
Razvan Zamfir
@RazvanZamfir können Sie verwenden deploy:mode:show, um den aktuellen Modus anzuzeigen .
Eric Seastrand
3

Wenn Sie NginX als Webserver verwenden, hat dies keine Auswirkungen auf den Zugriff. Durch Ändern der NginX Server-Direktiven wird der Entwicklermodus aktiviert.

zum Beispiel: /etc/nginx/sites-available/m2_test.conf(Vorausgesetzt, Nginx ist richtig konfiguriert)

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

Dieses Set $ MAGE_MODE aktiviert den Entwicklermodus.

other / configuration / file.conf sollte auf den Pfad der Konfigurationsdatei verweisen , von der eine Kopie erstellt werden soll[MAGENTO_DOC_ROOT]/nginx.conf.sample

Wie andere schon erwähnt haben, php bin/magento deploy:mode:set developerwird es auch möglich sein

Dilhan Maduranga
quelle
Muss ich den Entwicklermodus sowohl in Nginx Conf als auch in der Magento-Konsole einstellen? Was passiert, wenn man Entwickler und eine Produktion ist?
LucScu
3

Wenn Sie vom Produktions- in den Entwicklermodus wechseln, sollten Sie generierte Klassen und Object Manager-Entitäten wie Proxys löschen, um unerwartete Fehler zu vermeiden. Danach können Sie den Modus wechseln. Führen Sie die folgenden Schritte aus:

  1. Wenn Sie vom Produktionsmodus in den Entwicklermodus wechseln, löschen Sie den Inhalt der Verzeichnisse var / generation und var / di:

    rm -rf <your Magento install dir>/var/di/* <your Magento install dir>/var/generation/* 
  2. Stellen Sie den Modus ein:

    magento deploy:mode:set developer

Die folgende Meldung wird angezeigt

   Switched to developer mode.
Manish
quelle
0

Stellen Sie sicher, dass Sie die Erlaubnis geben

sudo chmod 777 . -R

nachdem

php bin/magento deploy:mode:set developer

Andernfalls wird die Erlaubnis verweigert

wan
quelle
0

Nach DEVDOCS ist hier die Lösung für Sie.

Wenn Sie vom Produktionsmodus in den Entwicklermodus wechseln, müssen Sie alle generierten Klassen und Objekte löschen.

Führen Sie diese Codezeile in der CLI aus, um den Inhalt der Verzeichnisse Generated Code und Generated Meta Data zu löschen.

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

So stellen Sie den Modus

$bin / magento deploy : mode : set developer

Nach dem Ausführen dieses Befehls wird eine Meldung zum Aktivieren des Entwicklermodus angezeigt

Henry Roger
quelle