Jak ustawić tryb programisty w Magento 2

44

Próbuję zainstalować Magento 2, ale pojawia się następujący błąd:

Wystąpił błąd podczas uruchamiania aplikacji. Nie można zapisać komunikatu o błędzie do dziennika. Użyj trybu programisty, aby zobaczyć komunikat.

Próbowałem dodając SetEnv MAGE_MODE developerdo .htaccessjak zalecane przez Alan Storm http://magento-quickies.alanstorm.com/post/58757471044/magento-2-developer-mode ale bez powodzenia.

Paul Donnelly
źródło
Czy używasz Apache lub Nginx? Jak dokładnie ustawiłeś zmienną środowiskową?
user487772,
@Tim Używam Apache. Ustawiłem go, dodając go na górę .htaccess
Paul Donnelly
Dodanie co? Dodaj wszystkie te informacje do swojego pytania.
user487772,
Musisz mieć mod_envwłączone dla Apache i AllowOverride Onw konfiguracji vhost, aby .htaccessbyć analizowany.
zyskuje

Odpowiedzi:

75

możesz włączyć to z cli

bin/magento deploy:mode:set developer

Oshan Rube
źródło
30

Innym sposobem jest włączenie trybu programisty

  • Idź app/etc/i otwórzenv.php
  • i zmień aktualny tryb aplikacji przez MAGE_MODE' => 'default' doMAGE_MODE' => 'developer'

Następnie opróżnij pamięć podręczną

Amit Bera
źródło
18

Jak zauważyliście ty i inni:

SetEnv MAGE_MODE "developer"

w pliku .htaccess powinien włączyć tryb programisty, zakładając, że AllowOverride All ma odpowiednią <Directory>dyrektywę.

Jednak związany z pierwotnym problemem może być problem z uprawnieniami, w którym użytkownik procesu Apache nie ma uprawnień do zapisu w odpowiednich katalogach.

Aby przeprowadzić szybki test, możesz wykonać następujące czynności w swoim katalogu Magento 2:

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

Następnie, jeśli pojawi się kreator instalacji, możesz spróbować upewnić się, że masz odpowiednie uprawnienia do procesu Apache w tych katalogach.

Bryant Luk
źródło
1
Mimo że nadal można przesłonić tryb przy użyciu zmiennych środowiskowych, należy teraz zastosować preferowaną metodę bin/magento. Zobacz devdocs.magento.com/guides/v2.0/config-guide/bootstrap/… i devdocs.magento.com/guides/v2.0/config-guide/cli/…
Fabian Schmengler
8

Czy używasz mod_fastcgi + php-fpm? Natknąłem się na ten problem, jak w tym środowisku. Zmienna środowiskowa otrzymywała prefiks „REDIRECT_”.

Powiązane pytanie dotyczące wymiany stosu tutaj: Apache SetEnv poprzedza REDIRECT_. Co daje?

Udało mi się to rozwiązać, ustawiając zmienną środowiskową w pliku konfiguracyjnym puli php-fpm:

env[MAGE_MODE] = developer
beeplogic
źródło
8

Aby zmienić tryb Magento 2.0, musisz uruchomić to polecenie php bin/magento deploy:mode:set developerw CMD lub oknie SSH w folderze głównym magento 2.0. Więcej informacji można znaleźć tutaj i tutaj .

Vasilii Burlacu
źródło
5

Przejdź do folderu głównego magento z wiersza polecenia i wykonaj polecenie poniżej polecenia:

php bin/magento deploy:mode:set developer

Sheshgiri Anvekar
źródło
4

Jeśli używasz wbudowanego serwera WWW w PHP 5.4, musisz ustawić ENV podczas uruchamiania serwera:

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

Aby uzyskać więcej informacji na temat korzystania z wbudowanego serwera WWW PHP 5.4, w tym konfiguracji Magento 2, zobacz ten screencast:

http://quick.as/kkbahnlx

philwinkle
źródło
4

Spróbuj dodać następujący wiersz w pliku index.php w pliku początkowym.

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

Mam nadzieję, że zobaczysz komunikat o błędzie.

satish-a
źródło
4
Odradzam edytowanie podstawowych plików, takich jakindex.php
7ochem
1
Uważam, że tak czy inaczej powinno to być poza repozytorium, więc kiedy zmienisz to na lokalne, naprawdę nie zrobi to zbyt wiele złego.
Maciej Paprocki
4

Cześć. Przeczytałem twoje pytanie i proszę zobaczyć rozwiązanie.

Możesz ustawić tryb programisty komendą CLI, a także ręcznie

Aby ustawić ręcznie:

otwórz katalog główny magento 2, otwórz plik "/app/etc/env.php"i wyszukaj "'MAGE_MODE' =>". w tym miejscu możesz ręcznie zmienić tryb Magento.

Polecenie CLI dla trybu produkcyjnego:

magento deploy:mode:set production

Polecenie CLI dla trybu programisty:

magento deploy:mode:set developer

Aby uzyskać więcej informacji, odwiedź poniższy adres URL. http://php-scripts-form.blogspot.nl/2017/09/magento-2-how-to-set-production-mode.html

puneek00
źródło
Jak mogę zobaczyć tryb przed jego zmianą?
Razvan Zamfir
@RazvanZamfir możesz użyć, deploy:mode:showaby zobaczyć bieżący tryb.
Eric Seastrand,
3

Jeśli używasz NginX jako serwera WWW ... .htaccess nie wpłynie na to. Zmiana dyrektyw serwera NginX spowoduje włączenie trybu programisty.

na przykład: /etc/nginx/sites-available/m2_test.conf(Zakładając, że nginx jest poprawnie skonfigurowany)

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

Ten zestaw $ MAGE_MODE włączy tryb programisty.

other / configurations / file.conf powinien link do ścieżki pliku konfiguracji, która powinna być kopią pliku[MAGENTO_DOC_ROOT]/nginx.conf.sample

Jak wspomnieli inni, php bin/magento deploy:mode:set developerrównież to umożliwi

Dilhan Maduranga
źródło
czy muszę ustawić tryb programisty zarówno w konsoli Nginx, jak i konsoli Magento? Co się stanie, jeśli ktoś jest programistą i jedną produkcją?
LucScu,
3

Po przejściu z trybu produkcyjnego na tryb programisty należy wyczyścić wygenerowane klasy i encje Menedżera obiektów, takie jak serwery proxy, aby zapobiec nieoczekiwanym błędom. Po wykonaniu tej czynności możesz zmienić tryby. Wykonaj następujące kroki:

  1. Jeśli zmieniasz tryb produkcji na tryb programisty, usuń zawartość katalogów var / generation i var / di:

    rm -rf <your Magento install dir>/var/di/* <your Magento install dir>/var/generation/* 
  2. Ustaw tryb:

    magento deploy:mode:set developer

Wyświetli się następujący komunikat

   Switched to developer mode.
Manish
źródło
0

upewnij się, że wyraziłeś zgodę

sudo chmod 777 . -R

po tym

php bin/magento deploy:mode:set developer

w przeciwnym razie odmowa zgody

blady
źródło
0

Zgodnie z DEVDOCS tutaj jest rozwiązanie dla Ciebie.

Jeśli zmieniasz tryb produkcji na tryb programisty, musisz wyczyścić wszystkie wygenerowane klasy i obiekty.

Uruchom ten wiersz kodu w interfejsie CLI, aby usunąć zawartość wygenerowanego kodu i wygenerowanych katalogów metadanych.

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

Aby ustawić tryb

$bin / magento deploy : mode : set developer

Po uruchomieniu tego polecenia wyświetli się komunikat o włączeniu trybu programisty

Henry Roger
źródło