Comment définir le mode développeur dans Magento 2

44

J'essaie d'installer Magento 2 mais j'obtiens l'erreur suivante:

Une erreur s'est produite lors de l'exécution de l'application. Impossible d'écrire un message d'erreur dans le journal. Veuillez utiliser le mode développeur pour voir le message.

J'ai essayé d'ajouter SetEnv MAGE_MODE developerà .htaccesscomme conseillé par Alan Storm http://magento-quickies.alanstorm.com/post/58757471044/magento-2-developer-mode mais pas de chance.

Paul Donnelly
la source
Utilisez-vous Apache ou Nginx? Comment avez-vous défini la variable environnementale?
user487772
@ Tim J'utilise Apache. Je l'ai mis en l'ajoutant en haut du .htaccess
Paul Donnelly
Ajout de quoi? S'il vous plaît ajouter toutes ces informations dans votre question.
user487772
Vous devez avoir mod_envactivé pour Apache et AllowOverride Ondans votre configuration vhost pour .htaccesspouvoir être analysé.
benmarks

Réponses:

75

vous pouvez l'activer de la cli

bin/magento deploy:mode:set developer

Oshan Rube
la source
30

Une autre façon, nous pouvons activer le mode développeur

  • Allez app/etc/et ouvrezenv.php
  • et changer le mode d'application actuel MAGE_MODE' => 'default' enMAGE_MODE' => 'developer'

Ensuite, veuillez vider la mémoire cache

Amit Bera
la source
18

Comme vous et d'autres l'ont noté:

SetEnv MAGE_MODE "developer"

dans votre fichier .htaccess doit activer le mode développeur en supposant que AllowOverride All se trouve dans la <Directory>directive appropriée .

En rapport avec votre problème initial, cela peut cependant être dû à un problème d'autorisations pour lequel l'utilisateur du processus Apache ne dispose pas d'autorisations d'écriture dans les bons répertoires.

Pour un test rapide, vous pouvez effectuer les opérations suivantes dans votre répertoire Magento 2:

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

Ensuite, si l'assistant d'installation apparaît, vous pouvez vous assurer que vous disposez des autorisations appropriées pour votre processus Apache sur ces répertoires.

Bryant Luk
la source
1
Bien qu'il soit encore possible de remplacer le mode à l'aide de variables d'environnement, la méthode préférée est maintenant d'utiliser bin/magento. Voir devdocs.magento.com/guides/v2.0/config-guide/bootstrap/… et devdocs.magento.com/guides/v2.0/config-guide/cli/…
Fabian Schmengler
8

Utilisez-vous mod_fastcgi + php-fpm? J'ai rencontré ce problème comme dans cet environnement. La variable d'environnement recevait le préfixe "REDIRECT_".

Question connexe sur l'échange de pile ici: Apache SetEnv ajoute REDIRECT_ au début. Ce qui donne?

J'ai pu résoudre ce problème en définissant simplement la variable d'environnement dans le fichier de configuration du pool php-fpm:

env[MAGE_MODE] = developer
beeplogic
la source
8

Afin de changer le mode magento 2.0, vous devez exécuter cette commande php bin/magento deploy:mode:set developerdans CMD ou vos fenêtres SSH dans le dossier racine de magento 2.0. Plus d'informations vous pouvez trouver ici et ici .

Vasilii Burlacu
la source
5

Accédez à votre dossier racine magento à partir de l'invite de commande et exécutez la commande ci-dessous:

php bin/magento deploy:mode:set developer

Sheshgiri Anvekar
la source
4

Si vous utilisez le serveur Web intégré à PHP 5.4, vous devez définir ENV lors du démarrage du serveur:

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

Pour plus d'informations sur l'utilisation du serveur Web intégré de PHP 5.4, y compris la configuration de Magento 2, voir cette capture d'écran:

http://quick.as/kkbahnlx

philwinkle
la source
4

Veuillez essayer en ajoutant la ligne suivante dans index.php au début du fichier.

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

J'espère que vous verrez le message d'erreur.

satish-a
la source
4
Je déconseillerais fortement d'éditer des fichiers de base comme leindex.php
7ochem
1
Je crois que cela devrait être hors du repo de toute façon, donc une fois que vous le changez au niveau local, vous ne ferez pas trop de dégâts.
Maciej Paprocki
4

Bonjour, j'ai lu votre question et s'il vous plaît voir la solution.

Vous pouvez définir le mode développeur par commande CLI et également manuellement

Pour le définir manuellement:

ouvrez votre répertoire racine magento 2, ouvrez le fichier "/app/etc/env.php"et recherchez "'MAGE_MODE' =>". vous pouvez changer le mode magento ici manuellement.

Commande CLI pour le mode production:

magento deploy:mode:set production

Commande CLI pour le mode développeur:

magento deploy:mode:set developer

pour plus d'informations s'il vous plaît visitez l'URL ci-dessous. http://php-scripts-form.blogspot.nl/2017/09/magento-2-how-to-set-production-mode.html

puneek00
la source
Comment puis-je voir le mode avant de le changer?
Razvan Zamfir
@RazvanZamfir, vous pouvez utiliser deploy:mode:showpour voir le mode actuel.
Eric Seastrand
3

Si vous utilisez NginX en tant que serveur Web ... .htaccess n'affectera pas. Changer les directives du serveur NginX activera le mode développeur.

par exemple: /etc/nginx/sites-available/m2_test.conf(en supposant que nginx est correctement configuré)

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

Cet ensemble $ MAGE_MODE activera le mode développeur.

other / configurations / file.conf doit être lié au chemin du fichier de configuration, qui doit être une copie de[MAGENTO_DOC_ROOT]/nginx.conf.sample

Comme d'autres l'ont mentionné, php bin/magento deploy:mode:set developercela permettra également

Dilhan Maduranga
la source
dois-je définir le mode développeur dans nginx conf et depuis la console magento? Qu'advient-il si on est développeur et une production?
LucScu
3

Lorsque vous passez du mode production au mode développeur, vous devez effacer les classes générées et les entités du gestionnaire d'objets telles que les mandataires pour éviter les erreurs inattendues. Après cela, vous pouvez changer de mode. Utilisez les étapes suivantes:

  1. Si vous passez du mode production au mode développeur, supprimez le contenu des répertoires var / generation et var / di:

    rm -rf <your Magento install dir>/var/di/* <your Magento install dir>/var/generation/* 
  2. Définissez le mode:

    magento deploy:mode:set developer

Le message suivant sera affiché

   Switched to developer mode.
Manish
la source
0

assurez-vous de donner la permission

sudo chmod 777 . -R

après ça

php bin/magento deploy:mode:set developer

sinon permission refusée

blême
la source
0

Selon DEVDOCS, voici la solution pour vous.

Si vous passez du mode de production au mode de développement, vous devez effacer toutes les classes et tous les objets générés.

Exécutez cette ligne de code dans la CLI pour supprimer le contenu des répertoires de code généré et de métadonnées générés.

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

Pour régler le mode

$bin / magento deploy : mode : set developer

Après avoir exécuté cette commande, un message concernant Enables Developer Mode apparaît.

Henry Roger
la source