테스트 사이트 - 개발 중인 베타 버전입니다

include_once 상대경로에 대한 질문입니다. 채택완료

이하성 8년 전 조회 3,838

/adm 폴더에 임의의 폴더인 temp 를 생성합니다.

그리고 /adm/temp 에 test.php 라는 파일을 생성합니다.

test.php 에서 아래와 같이 코드를 적용합니다.

$sub_menu = "910500";

include_once('../_common.php');

include_once('../admin.head.php');

include_once('../admin.tail.php');

?>

그런데 아래와 같은 에러가 뜹니다.

Warning: include_once(../common.php): failed to open stream: No such file or directory in /home/da170428/html/adm/_common.php on line 3

Warning: include_once(): Failed opening '../common.php' for inclusion (include_path='.:/opt/alt/php56/usr/share/pear:/opt/alt/php56/usr/share/php') in /home/da170428/html/adm/_common.php on line 3

Warning: include_once(G5_ADMIN_PATH/admin.lib.php): failed to open stream: No such file or directory in /home/da170428/html/adm/_common.php on line 4

Warning: include_once(): Failed opening 'G5_ADMIN_PATH/admin.lib.php' for inclusion (include_path='.:/opt/alt/php56/usr/share/pear:/opt/alt/php56/usr/share/php') in /home/da170428/html/adm/_common.php on line 4 

에러의 경로에 실제 해당 파일이 존재하는데도 왜 위와 같은 에러가 뜨나요?

가끔 include_once 함수에서 상대경로로 파일을 지정하면 위와 같은 에러가 종종 떠서 이번 기회에 한번 질문해 봅니다..

경로를 어떻게 지정해야 해결이 될까요..

/adm 폴더와 /adm/temp 폴더의 권한은 0755 입니다.

댓글을 작성하려면 로그인이 필요합니다.

답변 1개

채택된 답변
+20 포인트
잉끼s
8년 전

/adm/temp/_common.php 

 에서 /adm/_common.php 를 인크루드 하셨으면

/adm/_common.php  에서 ../_common.php 이렇게 상대경로로 인크루드일 경우 /adm 의  하위 디렉토리가 아닌 /adm/temp 의 하위 디렉토리를 선언하신게 되는겁니다.

$sub_menu = "910500";

include_once('../../common.php');

include_once(G5_ADMIN_PATH.'/admin.head.php');

include_once(G5_ADMIN_PATH.'/admin.tail.php');

?>

이렇게 선언하세요.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인