2013-11-03 7 views
1

웹 응용 프로그램을 개발하고 소스 코드를 공개 Github 저장소에 푸시합니다. 문제는 PHP 코드에 다른 사람이 볼 수 없어야하는 데이터베이스 자격 증명이 있다는 것입니다.자격 증명을 노출하지 않고 오픈 소스를 개발하는 좋은 방법은 무엇입니까?

이제 이것을 처리 할 수있는 좋은 방법을 찾고 있습니다. .gitignore을 사용하여 Git 저장소에서 구성 파일을 제외 할 수 있지만 다른 구성에서는 자체 구성을 만들지 않습니다. 반면에, 나는 모든 커밋에 대한 실제 자격 증명을 수동으로 바꾸고 싶지 않습니다.

오픈 소스 소프트웨어의 소스 코드에서이 중요한 정보를 처리하는 좋은 방법은 무엇입니까?

답변

5

이러한 경우 일반적으로 수행하는 작업은 기본 속성 집합을 버전 관리하고 원본과 커밋 한 두 가지 계층 구성을 허용하지만 개발자는 발견 된 경우 사용할 외부 파일을 제공 할 수 있습니다. 설정별로 기본 값입니다. 이는 자격증 명을 외부화하는 데 유용 할뿐만 아니라 스레드 수, 연결 풀 크기 등과 같은 기본 사항을 사용자가 원하는 경우 무시할 수 있습니다. 중요한 것은 항상 전체 구조를 볼 수 있다는 것입니다. 스스로 자신이 사용하는 실제 자격 증명을 사용하여 자신 만의 외부 재정의 파일을 만들 수 있습니다. 그러나 기본적으로는 체크 가짜는

내가 예를 들어 자바를 들어, 대략 다음과 같을 것입니다, 당신은 PHP를 사용하고 알고. 나는 매우 될이 기술을 발견

Properties defaultProps = loadDefaults(); 
Properties overrideProps = loadOverridesIfFound(); 
for(String name : overrideProps.keySet()) { 
    defaultProperties.put(name,overrideProps.get(name)); 
} 

을 많은 프로젝트에 효과적입니다.

+0

감사합니다. 꽤 잘됩니다. – danijar

1

간단히 .gitignore 실제 구성 파일을 사용하고 접미사 (configDefault.php)과 함께 빈 복사본을 추가 할 수 있습니다. 또한 사용자가 응용 프로그램을 실행하기 전에 구성을 실제로 넘나 드는 방법을 제공합니다.

+0

config.php는 실제로 gitignored되어 있으므로 추적되는 유일한 내용은 실제 코드가 읽지 않는 configDefault.php입니다. – Learath2

관련 문제