2012-01-10 3 views
0

정확히 어떻게해야하는지 잘 모르겠습니다. 그러나 일반적인 아이디어는 누군가에 우리의 원본에 접근 할 때이다 : - http://livescript.phpiscool.com 또는 어떤 이하 폴더파일 위치에 따라 다른 데이터베이스를 사용하는 방법

데이타베이스는 정상적인 "살아있는"데이타베이스이어야한다.

그러나 누군가를 입력하려고 할 때/이동합니다 - http://livescript.phpiscool.com/beta1 또는 - http://livescript.phpiscool.com/beta2

스크립트는 다른 데이터베이스 ("베타"데이터베이스)를 사용한다 ...

우리가, 데이타베이스 구성이 config.php를 그리고 그 다음과 같습니다

<?php 
$db_host = "localhost"; 
$db_username = "tureh_user"; 
$db_password = "crazypssrd"; 
$db_name = "database_test"; 
?> 
+0

빌드 프로세스에 대해 더 많이 알고 있어야합니다. – dqhendricks

답변

0

$ _SERVER [ 'REQUEST_URI'] 도메인 오 후 첫 슬래시에 이르기까지 모든 것을 포함 nwards 때문에 잘못된 줄 수 오히려 (==)보다 0 INT는 작업

if(strpos(strtolower($_SERVER['REQUEST_URI']),'/beta') === 0) 
{ 
    $db_host = "beta"; 
} 
else 
{ 
    $db_host = "localhost"; 
} 

에게 명시 적으로 비교 (===)을 수행한다 '/ 베타'로 위치 0에서 시작하여 그 수단을 점검 이 경기 대부분의 시간

0

을 찾기 위해 실패 할 경우 "FALSE"긍정적, 문제의 종류는 구성 배열에 의해 처리됩니다

$db['live'] = array(); // Your live configuration 
$db['beta'] = array(); // Your beta configuration 

$mode = process_url_to_get_mode(); 

그런 다음 연결을 인스턴스화 $db[$mode]를 사용합니다. 실제로 CodeIgniter does it의 코드입니다.

물론, 당신은 $mode을 얻기 위해 Scuzzy와 같은 기능에 의존 할 수 있습니다.

0

코드 기반을 베타 버전과 라이브 버전의 두 복사본으로 유지하는 것이 더 안전한 솔루션입니다. Subversion과 같은 소스 컨트롤을 사용하는 경우 "분기"라는 폴더와 유사한 개념 (Subversion의 위키 피 디아 문서 : http://en.wikipedia.org/wiki/Subversion)을 사용하는 경우 간단합니다. 베타 버전과 라이브 버전에 대한 두 개의 복사본이있는 이점은 다음과 같습니다.

  • 개발 중에 사이트를 실수로 사이트를 손상시키는 베타 버전으로 변경하면 라이브 사이트가 영향을받지 않습니다.
  • 사이트가 성장함에 따라 BETA 또는 개발 용 사본을 다른 컴퓨터 나 개발 용 로컬 컴퓨터로 옮길 수 있습니다.
  • 개발/라이브 에디션을 실행 중인지 확인하기 위해 코드를 지저분하게 검사하지 마십시오.

Apache 웹 서버를 사용하는 경우 Apache VHost를 사용하여이 두 개의 개별 사이트를 동시에 실행할 수 있습니다 (서버를 직접 제어한다고 가정 함). http://httpd.apache.org/docs/2.0/vhosts/examples.html

장기적으로 더 나은 해결책입니다.

관련 문제