2010-05-28 5 views
0

document_root 내에 여러 하위 도메인이 있습니다. 해당 하위 도메인 폴더 내의 여러 폴더/클래스 내 include_once 경로로 나를 도와 줄 뭔가가 필요하지만 $ _SERVER [DOCUMENT_ROOT]가 너무 멀리 떨어져 있습니다. 그리고 이것을 사용하여 나중에 웹 사이트 폴더를 전송하면 모든 include_once 경로가 중단 될 수 있습니다.

호프 내 질문에 분명하다 ... 어떤 권고?

기본적으로 내가하려고하는 것은 다른 파일에있는 다른 폴더에있는 액세스 클래스입니다. 일부 파일에서 작동하면 include 문을 작성하는 방식 때문에 다른 파일에서 손상 될 수 있습니다.

e. class test {include_once '../Data/employee.php';} 클래스 테스트를 포함하는 파일이 작동합니다. 하지만 다른 디렉토리의 다른 파일에 클래스 테스트가 포함되어 있다고 가정 해보십시오. 깨질거야. 다른 파일은 단지 하나가 아닌 3 개의 폴더가 될 수 있기 때문에.

+0

$ _SERVER [ 'DOCUMENT_ROOT']을 (를) 사용 하시겠습니까? –

+0

woops, 나는 서버를 의미했다. :) 오타를 발견해 주셔서 고마워요. 그러나 그 말은 ... 당신은 해결책이 있습니까? – Kukoy

+0

$ _SERVER [ 'DOCUMENT_ROOT']은 모든 시스템에 문서 루트를 포함합니다. 그래서, 그것을 사용하여 아무런 문제가 참조하십시오. –

답변

1
+0

나는 서버를 움직이는 클라이언트에 대해 걱정하고 있습니다. 서버를 옮기면 솔루션을 사용하여 새 apache 서버를 다시 구성해야합니다. 아파치 설정이없는 방법이 있습니까? – Kukoy

+0

디렉토리 자체에서 .htaccess 파일에이 파일을 저장할 수 있습니다. – vartec

+0

나는 이것을 정확하게하지는 않았지만, 실제 문서 루트에 폴더를 재배치하면 내가 원했던 것이기 때문에 그것이 옳은 것이라고 생각한다. 그래서 근본적으로 아파치에게 다른 문서 루트를 사용하라고 말하면 이론적으로이 대답이 효과가 있습니다. – Kukoy

1

이 문제 해결할 수 : 당신은 사용합니다 (<virtualhost> 내부) 하위 도메인 당 include path을 설정할 수 있습니다

$relpath = ""; 
$tempvarrelpathdir = explode("/",dirname($SERVER['PHPSELF'])); 
for($i=count($tempvarrelpathdir); $i>0; $i--) if($tempvar_relpathdir[$i] != '') $relpath .= "../"; 

그것은 상대 경로가 디렉토리 뿌리 얻을 것이다 ...

+1

이 답변에 대한 투표의 이유는 아직 없습니다 ... – Zuul

관련 문제