La version de configuration de Magento2 pour le module n'est pas spécifiée

24

J'ai installé une copie locale de Magento 2. Je rencontre un problème avec le module personnalisé.

J'ai suivi la structure de fichiers / dossiers suivante

app/code/Ps/HelloWorld/etc/module.xml:

<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../lib/internal/Magento/Framework/Module/etc/module.xsd">
    <module name="Ps_HelloWorld" schema_version="0.0.1" setup_version="0.0.1" />
</config>

Dans ce fichier, j'ai les éléments suivants: j'ai actualisé le cache du magasin, puis j'ai obtenu:

La version de configuration du module 'Ps_HelloWorld' n'est pas spécifiée.

Yogesh Karodiya
la source
retirez le schema_versionpuis essayez
Manashvi Birla
ça
Essayez de vider le cache sur la ligne de commande à l'aide bin/magento cache:flushde votre dossier public
Smartie
En outre, schema_version est supprimé dans les versions ultérieures de la bêta de ce que j'ai entendu
Smartie
cette erreur est également levée si un module est référencé dans config.php mais n'est pas installé
roman204

Réponses:

15

Essayer

php -f bin/magento module:enable --clear-static-content Module_Name
php -f bin/magento setup:upgrade

En supposant que vous exécutez la branche principale actuelle et non la branche de développement

Renon Stewart
la source
pouvez-vous s'il vous plaît expliquer en détail pourquoi nous devons exécuter la php -f bin/magento setup:upgradecommande
Yogesh Karodiya
Ssh dans votre serveur puis cd dans le dossier racine de magento
Renon Stewart
RS est là un lien officiel magento2 spécifiant toutes ces commandes.
huzefam
2
vous pouvez obtenir la liste de toutes les commandes en exécutant php -f bin/magento, soit il fournira également quel est le but de chaque commande
amit_game
33

Dans mon cas, c'était l'autorisation de fichier / dossier de ce module.

Apache n'a pas pu lire le fichier de configuration.

Appliquez l'autorisation suivante à votre répertoire de module.

chmod 775 <module path> -R
Nahid
la source
1
Oui dans mon cas c'était le problème .. merci;)
Adnan
Après une énorme recherche, j'avais vu cette réponse et essayé comme un dernier essai. Oh mon dieu, mon problème est résolu. Merci beaucoup @Nahid Bro :)
Ask Bytes
Cela a également résolu mon problème
Hassan Al-Jeshi
11

Source de référence: https://magentoexplorer.com/magento-2-setup-version-for-module-is-not-specified-how-to-fix (dans mon cas, j'ai eu cette erreur lors de la création d'un nouveau module Magento 2 )

Vous pouvez rencontrer cette erreur en raison d'une autorisation de fichier / dossier de module incorrecte, vous pouvez modifier l'autorisation pour le dossier de module comme suit

chmod 775 <module path> -R

Il existe une autre possibilité que vous ayez oublié d'ajouter registration.php et composer.json dans le module. Essayez d'ajouter le fichier suivant

/app/code/Namespace/Module/registration.php

<?php
\Magento\Framework\Component\ComponentRegistrar::register(
    \Magento\Framework\Component\ComponentRegistrar::MODULE,
    'Namespace_Module',
    __DIR__
);

et /app/code/Namespace/Module/composer.json

{
    "name": "namespace/module",
    "description": "namespace",
    "require": {
      "php": "~5.5.0|~5.6.0|~7.0.0",
      "magento/framework": "100.0.*",
      "magento/module-ui": "100.0.*",
      "magento/module-config": "100.0.*",
      "magento/module-contact": "100.0.*"    
    },
    "type": "magento2-module",
    "version": "100.0.0",
    "license": [
        "OSL-3.0",
        "AFL-3.0"
    ],
    "extra": {
        "map": [
            [
                "*",
                "Namespace/Module"
            ]
        ]
    },
    "autoload": {
        "files": [ "registration.php" ],
        "psr-4": {
            "namespace\\module\\": ""
        }
    }
}

Enfin, exécutez ces commandes

php -f bin/magento module:enable --clear-static-content Module_Name
magento setup:upgrade

J'espère que cela t'aides!

Brian
la source
4

Un scénario supplémentaire où cela s'est produit pour moi était dû à une extraction du référentiel de mon projet et au retrait du module du système de fichiers. Bien que cela soit intentionnel, il restait à l'époque une configuration persistante dans le fichier de configuration de Magento.

La suppression de la référence au module a app/etc/config.phprésolu mon problème.

TL; DR

J'ai d'abord essayé de désactiver le module à l'aide de la commande de la CLI module:disable VendorName_ModuleNameet la réponse de la CLI a été Unknown module(s): 'VendorName_ModuleName'. Je suppose que c'est parce qu'il était déjà absent du système de fichiers. Comme il n'était plus question d'utiliser le module, sa suppression manuelle app/etc/config.phpà ce stade semble de toute façon appropriée.

Darren Felton
la source
2
Le tl; dr est plus long que le paragraphe initial ...
Stevie G
1
@StevieG Je souris toujours chaque fois que je reviens à ce hahahaha ... Quand j'ai écrit cela pour la première fois, je ne savais pas ce que TL; DR voulait dire, je crois. Que la partie "tl; dr" est une information supplémentaire qui doit être ignorée si vous le souhaitez ou quelque chose du genre.
Darren Felton
1

Ouvrez votre base de données et trouvez la table setup_module.

Votre module Ps_HelloWorlddoit figurer dans ce tableau.

S'il n'est pas trouvé, essayez d'entrer manuellement.

Anees
la source
0

Problème: le fichier a app/etc/config.phpété copié à partir d'une autre instance de magento (en raison d'une mauvaise manipulation de fichier). Pour cette raison, j'ai eu les mêmes symptômes que ceux décrits dans cette question.

La solution était de supprimer tous les noms de modules qui n'étaient pas dans l'instance de Magento où le problème s'est produit, et cela a bien fonctionné.

Notez qu'une meilleure solution aurait probablement été de le faire bin/magento module:status, puis bin/magento module:disablepour tout le module en difficulté.

Cédric
la source