2012-08-24 4 views
0

예를 들어 하위 디렉토리에 사이트가 있습니다. root/sites/testsite/ 그리고 PHP 변수 $_SERVER['DOCUMENT_ROOT']root/sites/testsite/이 아니라 root이되고 싶습니다. 어떻게 공유 호스팅을 염두에두고 있습니까? 사전httpd.conf에 PHP 문서 루트를 설정하는 방법

답변

1

$_SERVER['DOCUMENT_ROOT']에서

덕분에 자동으로 아파치 VirtualHost 구성 항목에 구성된 DocumentRoot로 설정됩니다. 도메인의 / URL로 지정된 디렉토리가됩니다.

구성 파일에 하드 코딩 된 것과 같이 기본 디렉토리를 계산하기 위해 다른 변수를 사용하도록 코드를 변경해야합니다. .htaccess 파일의 Apache SetEnv 지시어를 사용하여 변수를 전달할 수도 있습니다 (예 : SetEnv BaseDir root/sites/testsite/이면 $_SERVER['BaseDir']"root/sites/testsite/" 문자열로 설정됩니다.

또는 스크립트의 시작 부분에서 새 값을 지정하여 값을 스푸핑 할 수 있습니다 (예 :이 변수를 사용하는 타사 코드를 사용하는 경우).

+1

[편집 : 이것은 삭제 된 것으로 생각되는 댓글에 대한 답변입니다] .htaccess 파일은 .htaccess라는 한 줄의 파일로 디렉토리에 있습니다. PHP가 실행중인 곳. 호스트가 그렇게하도록 설정되었다고 가정하면 (대부분의 공유 호스트가 있습니다), Apache는 해당 파일을 읽고 SetEnv를 처리합니다. – IMSoP

+0

고마워, 내가 가야 겠어! .htaccess 파일을 높은 디렉토리에 저장하면 그 아래의 모든 PHP 파일에 적용됩니까? – James

+0

예. .htaccess 파일에 대한 공식 Apache 문서는 다음과 같습니다. http://httpd.apache.org/docs/2.2/howto/htaccess.html – IMSoP

관련 문제