モジュールのMagento2セットアップバージョンが指定されていません


24

Magento 2のローカルコピーをインストールしました。カスタムモジュールに問題があります。

私は次のファイル/フォルダ構造に従いました

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>

このファイル内には次のものがあります。ストアキャッシュを更新すると、次のようになりました。

モジュール「Ps_HelloWorld」のセットアップバージョンが指定されていません。


削除しschema_versionてから試してください
マナシュヴィビルラ

動作していません
ヨゲシュKarodiya

bin/magento cache:flushパブリックフォルダーから使用してコマンドラインでキャッシュをクリアしてみてください
Smartie

また、schema_versionは私が聞いたことからベータ版の後のバージョンで削除されています
-Smartie

このエラーは、モジュールがconfig.phpで参照されているがインストールされていない場合にもスローされます
-roman204

回答:


15

試してみる

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

devブランチではなく現在のmasterブランチを実行していると仮定します


php -f bin/magento setup:upgradeコマンドを実行する必要がある理由を詳しく説明してください
Yogesh Karodiya

Magentoのルートフォルダにcd、あなたのサーバーにSSH
レノンスチュワート

RSには、これらすべてのコマンドを指定するmagento2公式リンクがあります。
huzefam


2
あなたは走って、すべてのコマンドのリストを取得することができますphp -f bin/magentoいずれか、それはまた、それぞれ、すべてのコマンドの目的であるものを提供します
amit_game

33

私の場合、それはそのモジュールのファイル/フォルダ許可でした。

Apacheは設定ファイルを読み込めませんでした。

次の許可をモジュールディレクトリに適用します。

chmod 775 <module path> -R

1
はい、私の場合はこれが問題でした..ありがとう;)
Adnan

大規模な検索の後、私はこの答えを見て、最後の試みとして試しました。なんてこった、私の問題は解決する。@Nahid Broに感謝します:)
バイトを尋ねる

これで私の問題も解決しました
ハッサン・アルジェシ

11

参照元:https : //magentoexplorer.com/magento-2-setup-version-for-module-is-not-specified-how-to-fix (私の場合、新しいMagento 2モジュールを作成するとこのエラーが発生しました)

間違ったモジュールファイル/フォルダーのアクセス許可が原因でこのエラーが発生する可能性があります。

chmod 775 <module path> -R

モジュールにregistration.phpcomposer.jsonを追加するのを忘れた可能性もあります。次のファイルを追加してみてください

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

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

および/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\\": ""
        }
    }
}

最後にこれらのコマンドを実行します

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

お役に立てれば!


4

これが私のために出てきた追加のシナリオは、プロジェクトのリポジトリでプルを実行し、モジュールがファイルシステムから削除されたためです。これは意図的なものでしたが、Magentoの設定ファイルにはその時点で設定が残っていました。

モジュールへの参照を削除しapp/etc/config.phpて問題を解決しました。

TL; DR

最初にCLIのmodule:disable VendorName_ModuleNameコマンドを使用してモジュールを無効にしてみましたが、CLIからの応答はでしたUnknown module(s): 'VendorName_ModuleName'。これは、ファイルシステムに既に存在しないためだと思います。モジュールを二度と使用するつもりはなかったので、app/etc/config.phpとにかくこの時点で手動で削除するのが適切だと思われます。


2
TL; DRは、最初の段落よりも長いです...
スティービーG

1
@StevieGこのハハハハに戻るたびに私はまだ微笑んでいます...これを最初に書いたとき、TL; DRが何を信じているかを知りませんでした。「tl; dr」の部分は、必要に応じてスキップすることを意図した追加情報です。
ダレンフェルトン

1

データベースを開き、テーブルを見つけますsetup_module

モジュールPs_HelloWorldはこの表にあるはずです。

見つからない場合は、手動で入力してください。


0

問題:ファイルapp/etc/config.phpが別のmagentoインスタンスからコピーされました(ファイルの不正な操作のため)。そのため、この質問で説明したのと同じ症状がありました。

解決策は、問題が発生したMagentoのインスタンスになかったすべてのモジュール名を削除することで、うまくいきました。

より良い解決策はおそらくにありbin/magento module:statusbin/magento module:disable問題のあるすべてのモジュールに対してであることに注意してください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.