Skip to Content
Go Back
안형우

안녕하세요. 14년차 풀스택 웹개발자 안형우입니다. 이 블로그에서는 WordPress, PHP, CSS, 사용성, 리눅스 서버 등 풀스택 웹개발에서 마주하는 다양한 문제 상황과 해결책, 필요한 개념들을 다룹니다. 👉 소개


작업물

📌 CSS가 어려운 이유 — 프로젝트 중심 실전 CSS 강의 소개 2023-04-13
📌 워드프레스, 답답한 빌더와 플러그인 대신 시원하게 커스터마징하기(강의) 2023-01-15
📌 아무도 말하지 않는 PHP의 좋은 점 2018-10-13
📌 유지보수하기 쉬운 CSS 전략(슬라이드) 2016-12-20
📌 워드프레스 테마에서 템플릿 파일 매칭 순서 2013-05-12
📌 [번역] CSS 코드 냄새 2013-01-01

$_SERVER[‘DOCUMENT_ROOT’]와 dirname(__FILE__)

$_SERVER['DOCUMENT_ROOT']는 현재 파일의 절대 경로를 리턴해 주는 함수죠.
그런데 이놈이 종종 문제를 일으킵니다. 제대로된 경로를 돌려주지 않는 경우가 있는 거죠.

들어 보니 PHP 고수들은 $_SERVER['DOCUMENT_ROOT']를 사용하지 않는다고 하더라고요.(그냥 카더라입니다.)
$_SERVER['DOCUMENT_ROOT'] 변수 대신에 다음 변수를 사용해 보시면 될 것 같습니다.
이 변수(?)는 현재 디렉토리를 리턴해 줍니다.

dirname(__FILE__)

그러면 제대로 출력이 되는 것을 확인하실 수 있을 겁니다.
$_SERVER['DOCUMENT_ROOT']가 왜 제대로 작동하지 않는 경우가 있는 것인지 알고 있으신 분 있다면 댓글 달아 주세요. 저도 이놈 때문에 고생좀 했거든요.

이 팁은 $_SERVER['DOCUMENT_ROOT'] problem 이라는 글에 Chris..S라는 사람이 달아놓은 댓글을 참고했습니다.

영어 잘 못해서 대충 알아먹은 거지만요.

그럼이만 ^^

추가 : 직접 입력이 가장 깔끔한 듯?

추가로 좀 더 생각을 해봤습니다. 제 생각에 가장 깔끔한 것은 직접 입력하는 것이라고 결론내렸습니다.

설치형 블로그 텍스트큐브의 경우 config 파일에 직접 주소들을 입력하도록 하죠. fckeditor도 주소를 입력하도록 합니다.

어떤 경우라도 에러는 발생할 수 있는 것 같고, 유연성을 최대로 하기 위해서는 직접 입력받은 것을 사용하는 게 최선인 듯합니다.

config.class.php를 하나 만들어 두고 거기에 절대경로 루트, 상대경로 루트, 루트 주소를 가리키는 URI를 넣도록 하면 나머지는 쉽게 해결될 것이라고 생각합니다.

단, 이미 만들어진 것을 고쳐야 하는 경우는 골치아플 수 있겠죠. 그럴 때는 위의 팁을 사용할 수 있다고 봅니다.

안녕하세요. 14년차 풀스택 웹개발자 안형우입니다. 이 블로그에서는 WordPress, PHP, CSS, 사용성, 리눅스 서버 등 풀스택 웹개발에서 마주하는 다양한 문제 상황과 해결책, 필요한 개념들을 다룹니다. 👉 소개


작업물

댓글 (2개)

  • $_SERVER[‘DOCUMENT_ROOT’] 는 도메인을 사용하는 경우엔 괜찮지만 계정을 사용하는 경우 정상적인 경로를 알려주지 못합니다.
    htt://aaa.co.kr 의 경우와 http://aaa.co.kr/~aaa 의 경우 같은 경로를 알려주어 계정으로 접근하는 경우 경로가 틀려집니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다