설치 프로파일 중 settings.php를 사용자 정의하는 방법


9

현재 회사 내부 프로젝트에 대한 설치 프로필을 만들고 있습니다.

설치 과정에서에 init()정의 된 하나의 전역 변수 settings.php(모듈의 현재 기본 동작) 를 사용하려고하기 때문에 사용자 정의 모듈 중 하나가에 충돌 합니다.

를 사용하여 system_form_install_settings_form_alter()사용자 입력에 하나의 입력 텍스트 필드를 추가하여 설정 양식을 변경하고 제출시 값이 추가 settings.php되지만 settings.php프로파일 설치가 시작되기 전에 다시 작성됩니다.

settings.php설치 과정에서 정리를 방지 할 수있는 방법이 있습니까?


1
어쩌면 충돌하는 모듈을 패치하고 해당 프로젝트의 이슈 큐에 변경 사항을 제출하는 것이 더 쉬울 것입니다. 변경 사항이 적용되기 전에 설치 프로필의 makefile에서 패치에 대한 참조를 추가 할 수 있습니다.
greg_1_anderson

안녕, 답변 주셔서 감사합니다. 그것은 사용자 정의 내부 모듈 (contrib가 아닌)이지만, 패치하고 문제를 해결했습니다.
Paulo Gomes

settings.php 파일을 재정의하는 settings.local.php 파일을 사용하면 도움이 될 수 있습니까?
beth

이 링크는 저에게 큰 도움이되었습니다 previousnext.com.au/blog/…
Vic Vic

답변:


3

사용하기가 더 쉬울 수 있습니다 settings.common.php

팀 프로젝트 중에 종종 settings.phpdb 자격 증명 등 이있는 로컬 및 settings.common.php설치 및 배포 환경에 공통된 설정이 있습니다.

settings.common.phpinclude / require 라인을 사용하여 추가 할 수 있습니다settings.php

require 'settings.common.php'; // same directory, e.g sites/default/settings.common.php

설치 중에 필요에 따라 쓰십시오.


3

내 대답은 Apache를 사용하는 서버에 달려 있지만 다른 웹 서버 에서도이 작업을 수행 할 수 있다고 가정합니다.

가상 호스트 구성에서 환경에 대한 모든 변수를 설정할 수 있습니다.

SetEnv DBUSER datbase_user
SetEnv DBPASS database_pass
SetEnv DBNAME database_name
SetEnv DBHOST localhost

그리고 settings.php 파일에서 :

$databases = array (
   'default' => 
   array (
     'default' => 
     array (
       'database' => $_SERVER["DBNAME"],
       'username' => $_SERVER["DBUSER"],
       'password' => $_SERVER["DBPASS"],
       'host' => $_SERVER["DBHOST"],
       'port' => '',
       'driver' => 'mysql',
       'prefix' => '',
    ),
   ),
 );

이 방법으로 다른 변수도 설정할 수 있습니다.

$ _SERVER 배열이 잘못 될 염려가있는 경우 settings.php의 맨 아래에서 중요한 변수를 모두 해제 할 수 있습니다.

unset($_SERVER["DBUSER"]);
unset($_SERVER["DBPASS"]);
unset($_SERVER["DBNAME"]);
unset($_SERVER["DBHOST"]);

사무실 환경에서 사이트를 스테이징 환경과 프로덕션 환경으로 옮기는 방법입니다.

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