다른 위치에서 모듈을 찾도록 Drupal을 구성 할 수 있습니까?


13

사이트 / 모든 / 모듈에 모듈을 넣었습니다. 다른 위치에서도 더 많은 모듈을 찾도록 Drupal을 구성하는 방법이 있습니까?


편집

나는 가상 호스트를 자주 사용하지만 설명 된 방식으로 사용하지는 않습니다. 내가 익숙한 형식은 다음과 같으며 전체 작업 프로젝트를 www가 아닌 ​​다른 곳에 배치하는 데 도움이됩니다.

<VirtualHost *:80>
    ServerName testdrupal.com
    DocumentRoot "C:/proj/testdrupal"
    ServerAlias testdrupal.com

   <Directory "C:/proj/testdrupal/">
       Options Indexes MultiViews FollowSymLinks
       AllowOverride All
       Order allow,deny
       Allow from all
   </Directory>
</VirtualHost>

나는 당신이 묘사하는 것이 뭔가 다른 것 같아요? 평소와 같이 drupal 폴더를 www 안에 두려고하지만 사이트 / 모든 / 모듈 만 다른 위치로 옮기려고하지만 여전히이 경우 VHost 항목의 모양을 알 수 없습니다. C : / proj / testdrupal로 옮기고 싶다고합시다. 나는 당신을 완전히 오해하지 않았기를 바랍니다.

답변:


14

답변하기 전에 Drupal이 모듈을 찾는 방법에 대해 약간의 배경 지식이 있으면 도움이됩니다. Drupal은 Drupal 루트의 제안 목록을 사용하여 모듈을 찾을 위치를 찾습니다. 우선 순위에 따라 :

  1. sites/$SITENAME/modules
  2. sites/all/modules
  3. profiles/$INSTALLPROFILE/modules
  4. modules

Drupal이 (1) 에서 모듈을 찾지 못하면 (2)를 확인합니다 . 없는 경우 (3) 등을 확인합니다 .

들어 (1) 당신은 그냥 기본, 단일 사이트 드루팔의 설치 사용하는 경우, $SITENAME입니다 default. 그렇지 않으면:

  • Drupal 6 $SITENAME에서 사이트의 호스트 이름입니다. 귀하의 사이트가에있는 example.com경우 $SITENAME입니다 example.com.
  • Drupal 7에서는 $SITENAME에 정의되어 sites/sites.php있습니다. 를 보면이 example.sites.php를 정의하는 방법을 볼 수 있습니다. 또한 나열된 모든 모듈은 모든 사이트가 아니라 특정 사이트에만 사용할 수 있다는 점에 유의해야합니다.

에서 (2) , 모든 모듈은 드루팔 설치에있는 모든 사이트에 사용할 수있을 것입니다 발견했다. 코어 설치를 업그레이드 할 때도 그대로 유지됩니다. 물론 이것은 모듈을 놓을 것을 권장하는 장소이며, 읽은 모든 문서는 모듈을 여기에 넣으라고 지시했을 것입니다.

(3) 은 특정 모듈이 필요한 설치 프로파일에 사용됩니다 . 설치 프로파일은 기본적으로 Drupal 사이트의 사용자 정의 초기 상태를 정의하는 방법입니다. 예를 들어 Drupal에는 가장 많이 사용되는 기능이 포함 된 Standard와 Drupal 사이트가 작동하는 데 필요한 최소값 만 포함하는 Minimal의 두 가지 설치 프로필이 내장되어 있습니다.

(4) 는 Drupal 코어에서 사용됩니다. 기술적으로 여기에 모듈을 추가 할 수 있지만 모든 사이트에서 사용할 수있는 모듈 은 아닙니다. 진심으로. modules폴더 드루팔 코어가 업데이트 될 때 터치, 그리고 기능에 귀하의 사이트에 필요한 모듈이 고집하는 경우 선 아래로 문제가 발생합니다.


이제 배경이 없어 졌으므로 파일 시스템 트릭을 사용하여 Drupal이 보이는 곳 외부에 모듈을 보관할 수 있습니다.

예를 들어 Drupal 설치 외부의 다른 디렉토리 로 심볼릭 링크 를 설정할 수 있습니다 sites/all/modules.

  • 유닉스 / 리눅스 / BSD 기반 시스템에서 : ln -s /path/to/modules/folder /path/to/drupal/sites/all/modules
  • Windows Vista / Server 2008/7 이상에서 : mklink C:\path\to\drupal\sites\all\modules C:\path\to\custom\modules\folder

내가 아는 한 mklink 가없는 이전 버전의 Windows에서는 할 수있는 일이 많지 않습니다 .


고마워요, 이것은 실제로 그것을 설명하지만 여전히 작동시키는 데 문제가 있습니다. 내 게시물의 편집 섹션을 볼 수 있습니까? 여기에 맞는 것 이상입니다. 감사.
sameold

@sameold 심볼릭 링크에 대한 부분을 수정하고 설명했습니다. Windows에서 심볼릭 링크는 다소 스케치 적이지만 제공 한 명령이 제대로 작동한다고 생각합니다.

3

Drupal 7에서 Drupal이 모듈을 찾는 디렉토리는 다음과 같습니다.

  • 모듈
  • 프로필 / $ 프로필 / 모듈
  • $ config / 모듈

$ profile은 drupal_get_profile () 에서 반환 된 값입니다 . $ config는 conf_path () 에서 반환 된 값 입니다.
시스템 객체 파일 (모듈, 테마 등)을 검색하는 함수는 drupal_system_listing () 입니다.

Drupal 6에서 동일한 디렉토리를 찾습니다. 유일한 차이점은 $ profile이 전역 변수라는 것입니다. 글로벌 변수가 설정되지 않은 경우, 함수는 기본값이 "default"인 "install_profile"지속적 변수의 값을 가져옵니다.


2

사이트 / 모두 / 모듈에 배치 한 다음 모든 사이트 (다중 사이트 구성이있는 경우), 기본 사이트의 사이트 / 기본 / 모듈 또는 sites / site.com / modules에서 사용할 수 있습니다. 당신은 그것을 가지고 있습니다. 후자의 디렉토리의 경우 이는 해당 특정 사이트에서만 사용할 수 있음을 의미합니다.

또한 원하는 폴더 아래에 원하는대로 구성 할 수 있습니다. 즉, 하위 폴더를 만들 수 있습니다. 일반적인 작업은 contrib 폴더를 만든 다음 해당 사이트의 자체 작성 모듈을 사용자 정의 폴더에 유지하면서 다운로드 한 모듈을 다운로드하여 배치하는 것입니다.


1

무슨 뜻인지 잘 모르겠지만 타사 모듈과 사내 모듈을 분리하는 다소 일반적인 규칙을 사용합니다.

'집에서 만든'사용자 정의 모듈은 다음과 같습니다.

사이트 / 모든 / 모듈 / 사용자 정의

타사 모듈은 다음과 같습니다.

사이트 / 모든 / 모듈 / 공급 업체

서브 디렉토리가 필요에 맞지 않으면 / obscure / path / to / module 디렉토리를 drupal의 모듈 디렉토리에 쉽게 심볼릭 링크 할 수 있다고 생각합니다.

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