홈페이지 서버의 절대경로와 상대경로 이해, PHP.

29 일 전 5,894

절대경로는 파일 시스템의 루트 디렉토리부터 파일까지의 전체 경로를 지정합니다. 현재 스크립트의 위치와 무관합니다.
반면에 상대경로는 현재 스크립트의 디렉토리를 기준으로 파일까지의 경로를 지정합니다. 이는 스크립트의 현재 위치에 따라 달라집니다.

절대경로

서버 내 최상위 디렉터리인 루트 (/, ROOT) 디렉터리부터 표기하는 경로.
예컨대 '/var/log/mail/' 혹은 윈도우즈에서 'C:\Users\Username\Documents'.

상대경로

현재 위치한 디렉터리를 기준으로 표기하는 경로. 현재 경로 표기는 '.', 상위 디렉터리는 '..'로 표기.
만약 '/var/log/mail/' 디렉토리와 '/var/home/' 디렉토리가 있다면 현재 '/mail/' 위치에서 '/home/'의 상대적 위치는 '../../home/'가 됩니다. 또한 '/log/' 위치에서 '/mail/'의 상대적 위치는 './mail/' 입니다.

PHP 예제코드

PHP 내장함수를 활용해 현재 코드가 입력되어 있는 파일의 절대경로와 상대경로를 다양한 방법으로 확인해 볼 수 있습니다.

// 현재 스크립트의 절대 경로
$currentPath = realpath(__DIR__);

// 상위 디렉토리의 절대 경로
$parentPath = realpath($currentPath . '/..');

// 다른 디렉토리의 절대 경로
$otherPath = realpath($currentPath . '/path/to/other/directory');

// 현재 스크립트와 다른 파일 간의 상대 경로
$relativePath = 'path/to/another/file.txt';
$relativeToCurrent = realpath($currentPath . '/' . $relativePath);

// 상위 디렉토리와 다른 파일 간의 상대 경로
$relativeToParent = realpath($parentPath . '/' . $relativePath);

// 출력
echo "Current Path: " . $currentPath . "\n";
echo "Parent Path: " . $parentPath . "\n";
echo "Other Path: " . $otherPath . "\n";
echo "Relative to Current: " . $relativeToCurrent . "\n";
echo "Relative to Parent: " . $relativeToParent . "\n";

'include'와 'require'에서의 절대경로와 상대경로

PHP에서 include와 require는 서버가 파일을 실행하기 전에 하나의 PHP 파일의 내용을 다른 PHP 파일에 삽입하는 데 사용됩니다.

// 절대경로
include '/var/www/html/includes/header.php';
require '/var/www/html/includes/footer.php';

// 상대경로
include 'includes/header.php'; // 현재 디렉토리를 기준으로 함
require '../common/footer.php'; // 현재 디렉토리의 상위 디렉토리를 기준으로 함

예제에서 '/var/www/html/includes/header.php'와 '/var/www/html/includes/footer.php'는 절대경로입니다. 루트 디렉토리(/)에서 시작하여 파일까지의 전체 경로를 지정합니다.

'includes/header.php'는 상대경로입니다. 현재 스크립트와 동일한 디렉토리에 있는 'includes' 디렉토리 내의 'header.php' 파일을 찾습니다. '../common/footer.php'는 디렉토리 구조에서 한 단계 위(..)로 이동한 후 'common' 디렉토리 내의 'footer.php' 파일을 찾습니다.

절대경로와 상대경로 비교

구분 절대경로 상대경로
이식성 서버의 디렉토리 구조에 특정되어 있어 이식성이 낮음. 스크립트의 위치에 상대적이므로 이식성이 높아 코드베이스를 다른 서버나 환경으로 이동하기가 더 쉬움.
유지보수 디렉토리 구조가 변경되면 경로를 매번 수정해야 하므로 유지보수가 어려움. 일관된 디렉토리 구조에서는 유지보수가 쉬움. 스크립트의 위치가 변경되면 상대경로가 자동으로 조정됨.
사용 맥락 파일의 정확한 위치가 일정하고 확실할 때 유용함. 예를 들어 설정 파일이나 외부 라이브러리를 포함할 때. 일관된 디렉토리 구조를 가진 프로젝트 내에서 파일을 포함할 때 유용함.

'__DIR__'를 사용한 절대경로

include __DIR__ . '/includes/header.php';
require __DIR__ . '/includes/footer.php';

__DIR__는 현재 파일의 디렉토리를 제공하는 PHP의 매직 상수입니다. 이 접근법은 프로젝트 내에서 상대경로의 이식성과 절대경로의 안정성을 결합합니다.

절대경로와 상대경로 중에서 선택하는 것은 프로젝트의 특정 요구 사항에 따라 다릅니다. 동일한 프로젝트 내에서 내부 포함을 위해 상대경로가 일반적으로 이식성과 유지보수의 용이성 때문에 선호됩니다. 중요한 설정 파일이나 외부 라이브러리의 경우 절대경로가 더 확실할 수 있습니다.

PHP 참고 페이지

PHP: Hypertext Preprocessor
https://www.php.net

유용한 PHP 솔루션
https://www.ppcle.com/blog/php-scripts/

PHP GD 라이브러리, JPG PNG 손실 압축 비율
https://www.ppcle.com/blog/php-gd-library/


한글 맞춤법과 문법 검사기 모음

부산대학교 한국어 맞춤법/문법 검사기를 비롯하여 네이버, 다음, 인크..

홈페이지 이미지 사이즈, 해상도 그리고 비율

웹 이미지를 제작할 때 고려해야 할 중요한 요소는 이미지의 사이즈, ..

로렘 입숨과 한글 로렘 입숨, 웹 디자인 추천 도구

로렘 입숨, Lorem Ipsum은 일종의 더미 텍스트(dummy t..

IP 주소 및 도메인 정보 조회, WHOIS 검색.

원하는 도메인을 사용할 수 있는지, 웹사이트를 누가 소유하고 있는지,..

웹사이트 디자인을 완성하는 웹폰트와 무료 폰트

홈페이지나 쇼핑몰 제작 시 꼭 필요한 무료 폰트, 웹폰트를 소개합니..

웹디자인 참고 사이트와 홈페이지 제작업체 순위

굿디자인웹, 디비컷, 카페24 디자인센터, 비핸스 Behance, 월..