“파일 시스템에 다음 모듈이 없습니다”오류를 해결하는 방법은 무엇입니까?


9

Drupal 8 사이트에서 다음 오류가 발생합니다.

파일 시스템에서 다음 모듈이 누락되었습니다

마치 사용자 정의 모듈이 제거되지 않은 채 설치 및 삭제 된 것처럼 보입니다.

이 오류를 어떻게 해결할 수 있습니까?


사이트에서 구성 관리를 사용하고 있습니까?
Adrian Cid Almaguer

네, 저는 이것을 사용하고 있습니다
Kevin

문제가 있습니까? 마지막에 문제를 어떻게 해결하는지 알고 싶습니다. 이는 어떤 프로젝트에도 나에게 도달 할 수 있습니다.
Adrian Cid Almaguer

Drupal 8.7.3에서 "파일 시스템에서 다음 모듈이 누락되었습니다 : php in drupal_get_filename ()"이 표시되지만 PHP 모듈을 설치하려고하면 이미 코어에 존재하는 오류가 발생합니다. 오류로 인해 아무것도 제거하지 못했습니다. 어제 나는 8.7.3으로, 오늘은 8.5.3으로 업그레이드했고 오류를 흔들 수 없습니다. 캐시는 매번 지워졌으며 내가 아는 모든 모듈이 복원되었습니다. Drush에 대한 참고 사항이 있지만 8.7.3에 설치하는 방법은 무엇입니까?
WilliamK

답변:


11

Drupal Console을 사용하는 경우이를 해결하는 빠른 방법은 동일한 시스템 이름으로 모듈을 생성 한 다음 제거하는 것입니다.

$ drupal generate:module

그런 다음 적절한 프롬프트에서 시스템 이름을 입력하고 다른 모든 것에 대한 기본값을 승인하십시오.

$ drush pm-uninstall

그런 다음 파일 시스템에서 새로 생성 된 모듈을 삭제하고 하루를 계속할 수 있습니다.

(NB에서 생성 된 모듈을 유지해야 할 수도 있습니다. 그렇지 않으면 오류가 반환됩니다.이 경우 동일한 이름의 contrib 모듈을 설치해야하는 경우 contrib 모듈을 추가 한 후 생성 된 모듈을 제거하고 캐시를 지우십시오. )


2
위의 SQL 쿼리가 작동하지 않으면 가장 간단한 옵션이었습니다.
Chris Charlton

모듈을 찾을 수 없다는 오류를 해결하는 데 도움이되었습니다.
Akshay Sawant

누군가 Drupal Console 설치에 도움이 필요하면 이 페이지가 도움 되었다는 것을 알았습니다 . 마음에 베어, 당신은 설치하려는 것 드루팔 콘솔 실행기를 전 세계적으로, 그리고 드루팔 콘솔은 로컬 (드루팔의 프로젝트 루트에 설치).
파멸

10

제거 루틴을 트리거 할 필요가없는 중요하지 않은 사용자 정의 모듈을 삭제했다고 가정하면 다음 Drush 명령을 사용할 수 있습니다.

  • 드루팔 7

    drush sql-query "DELETE from system where type = 'module' AND name = 'MYMODULE';"
  • 드루팔 8

    drush sql-query "DELETE FROM key_value WHERE collection='system.schema' AND name='MYMODULE';"

자세한 정보 및 대안은 "파일 시스템에서 다음 모듈이 누락되었습니다 ..."경고 메시지를 수정하는 방법을 참조하십시오 .


1
나는 몇 번 시도했지만 D8의 경우 적어도 d8.7에서는 작동하지 않습니다. 더미 모듈을 생성 한 다음 uinstalling으로 아래 솔루션을 권장합니다.
Marko Blazekovic

3

이제 구성 관리 모듈을 사용하면 모듈 구성이 core.extension.yml 파일에 저장됩니다.

파일을 편집하고 파일 시스템에서 누락 된 모듈을 찾은 다음 행을 삭제하고 구성 ( drush cim)을 가져 오십시오 .

이것이 작동하지 않지만 모듈을 찾았다면, 모듈을 다시 작성하고 (폴더와 유효한 .info.yml 파일 만) drush cim명령을 다시 실행하십시오 . 모듈이 제거됩니다.


4
이것은 작동하지만 올바른 방법은 모듈을 복원하고 제거하는 것입니다. 해당 모듈이 스키마, 구성 등을 제공하는 경우 시스템에 그대로 유지되며 그렇지 않으면 수동으로 정리해야합니다.
Berdir

1
@Berdir 사용자 정의 모듈을 찾을 수 없다면 다른 일을 할 수 있습니까?
Adrian Cid Almaguer

실제로는 위의 제안대로 core.extension 파일에서 drush cedit 또는 import / export를 사용하여 수동으로 수행해야합니다.
Berdir

0

내가 고치는 방법은 drush와 composer를 사용하는 것이었다. 요구 사항이있는 모듈을 가져 와서 drush로 설치 및 제거 한 다음 composer로 제거하십시오.

composer require drupal/missing_module
drush en missing_module
drush pmu missing_module
composer remove drupal/missing_module

! drush en아마 단계 는 필요하지 않습니다

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.