서브디렉토리 _common.php관련 에러문제 입니다. 정보
서브디렉토리 _common.php관련 에러문제 입니다.본문
참고한 문서는 다음과 같습니다.
위 문서 외에 몇가지 검색을 해보고 문제가 해결이 되지 않아 글을 올립니다.
그누보드 설치경로는 홈의 최상단 문서, 그러니까 / 가 됩니다.
( 보편적으로 /home/사용자명/public_html/ )
먼저 제 홈페이지에 작업한 서브페이지의 내용입니다.
<?
include_once("$g4[path]/_common.php");
include_once("$g4[path]/lib/latest.lib.php");
include_once("$g4[path]/_common.php");
include_once("$g4[path]/lib/latest.lib.php");
$g4['title'] = "오리와 키티의 페이퍼북";
include_once("$g4[path]/_global_header.php");
?>
include_once("$g4[path]/_global_header.php");
?>
이 내용들이 각 서브디렉토리의 문서들에 모두 포함이 되어있습니다.
각 서브디렉토리에는 _common.php 파일이 없습니다.
_global_header.php는 global_header.php를 불러들이면서 이 안에는 필요한 라이브러리를
불러들이면서 head.sub.php를 불러들이도록 해두었습니다.
이상황에서 에러가 발생하지 않고 제대로 동작을 하고 있습니다.
홈페이지를 하나 더 만들어야 할 상황이 생겨서 새로운 사용자명으로 문서 최상단 디렉토리인
/home/사용자명/public_html/에 그누보드를 설치하였고
위에서 설명한 제 홈페이지와 동일한 포맷으로 작업을 하였습니다.
그런데 검색해보았을때 나오는 다음과 같은 에러내용이 출력이 됩니다.
Warning: main(/_common.php): failed to open stream: No such file or directory in /home/사용자명/public_html/community/comm_templete_01.php on line 2
Warning: main(): Failed opening '/_common.php' for inclusion (include_path='.:/usr/local/lib/php') in /home/사용자명/public_html/community/comm_templete_01.php on line 2
Warning: main(/lib/latest.lib.php): failed to open stream: No such file or directory in /home/사용자명/public_html/community/comm_templete_01.php on line 3
Warning: main(): Failed opening '/lib/latest.lib.php' for inclusion (include_path='.:/usr/local/lib/php') in /home/사용자명/public_html/community/comm_templete_01.php on line 3
Warning: main(/_global_header.php): failed to open stream: No such file or directory in /home/사용자명/public_html/community/comm_templete_01.php on line 6
Warning: main(): Failed opening '/_global_header.php' for inclusion (include_path='.:/usr/local/lib/php') in /home/사용자명/public_html/community/comm_templete_01.php on line 6
Warning: main(): Failed opening '/_common.php' for inclusion (include_path='.:/usr/local/lib/php') in /home/사용자명/public_html/community/comm_templete_01.php on line 2
Warning: main(/lib/latest.lib.php): failed to open stream: No such file or directory in /home/사용자명/public_html/community/comm_templete_01.php on line 3
Warning: main(): Failed opening '/lib/latest.lib.php' for inclusion (include_path='.:/usr/local/lib/php') in /home/사용자명/public_html/community/comm_templete_01.php on line 3
Warning: main(/_global_header.php): failed to open stream: No such file or directory in /home/사용자명/public_html/community/comm_templete_01.php on line 6
Warning: main(): Failed opening '/_global_header.php' for inclusion (include_path='.:/usr/local/lib/php') in /home/사용자명/public_html/community/comm_templete_01.php on line 6
위의 문제들이 _common.php 파일을 불러들이지 못하는 문제인것을 알기에
_common.php 파일을 해당서브디렉토리로 복사를 하고 경로를 .. 로 바꿔주면
당연히 문제가 해결이 됩니다.
그런데 제가 궁금한것은 왜 개인홈페이지는 따로 _common.php 파일을 서브디렉토리마다 생성하고 경로를 수정하지도 않았는데도 정상적으로 출력이 되는데
이번에 새로만드는 홈페이지에서는 에러가 발생하는것인지가 궁금합니다.
혹시나 common.php파일을 맨위에 참고한 문서대로 수정을 했었는지 궁금해서
개인홈페이지의 common.php파일을 바로 덮어써보기도 하고, 참고한 유창화님의 문서대로
수정을 해서 올리기도 해보았지만 동일하게 문제가 발생이 되더군요.
비교할 수 있는 파일은 모두 비교해보았습니다.
제 개인홈페이지의 common.php 파일등을 프린트도 해보고 덮어쓰기, 새로설치하기등등 그리고
어제부터 오늘까지 비교해보고 다시 검색해보고 하다가 도저히 이유를 못밝히겠습니다 ㅠ.ㅠ
FAQ에서도 권장하는 _common.php 파일을 서브디렉토리별로 생성하고
경로를 수정해주면 되긴 하지만 도대체 무슨이유인지가 궁금해서 못견디겠습니다. ㅠ.ㅠ
댓글 전체

$g4[path] 어디 정의되어 있죠?
$g4[path] = "그누보드 설치경로";
$g4[path] = "그누보드 설치경로";
당연히 _common.php에 선언이 되어있죠. -_-a
유창화님의 링크글 첫번째 중에서....................
유창화님이 말씀하신 ...............................................................
===================== 여기 부터 ===========
아래 올린 내용의 보강입니다. ( http://sir.co.kr/bbs/board.php?bo_table=g4_tiptech&wr_id=5083 )
아래내용은 같은 계정내의 그누보드와 같은 경로나 하위 경로와 연동 될경우에만
자동 변수 세팅이 되는 형태였습니다.
이번에 올리는 것은
같은 계정내의 DOCUMENT_ROOT 하위라면 어떠한 경로에서 연동되더라도 $g4['path'] 가
$g4_path 설정없이 자동으로 세팅되도록 처리 한 것입니다.
==================요기 까지 중에 해답이 있을 것 같습니다. =========
^^
유창화님이 말씀하신 ...............................................................
===================== 여기 부터 ===========
아래 올린 내용의 보강입니다. ( http://sir.co.kr/bbs/board.php?bo_table=g4_tiptech&wr_id=5083 )
아래내용은 같은 계정내의 그누보드와 같은 경로나 하위 경로와 연동 될경우에만
자동 변수 세팅이 되는 형태였습니다.
이번에 올리는 것은
같은 계정내의 DOCUMENT_ROOT 하위라면 어떠한 경로에서 연동되더라도 $g4['path'] 가
$g4_path 설정없이 자동으로 세팅되도록 처리 한 것입니다.
==================요기 까지 중에 해답이 있을 것 같습니다. =========
^^
jack 님 답변 감사합니다.
그런데 유창화님의 문서는 참고만 하였고 실제로 common.php는 수정하지 않았습니다.
단 한군데 수정을 하였는데 dbconfig.php의 이름을 보안때문에 바꾸고 그 경로에 해당하는 파일명으로만
바꿨습니다.
그래서 말인데요, 참고만 했을뿐 수정은 안했기때문에 .. 말씀하신 부분중에 해답을 찾으려 해도 못찾겠습니다. ㅜ.ㅡ
그런데 유창화님의 문서는 참고만 하였고 실제로 common.php는 수정하지 않았습니다.
단 한군데 수정을 하였는데 dbconfig.php의 이름을 보안때문에 바꾸고 그 경로에 해당하는 파일명으로만
바꿨습니다.
그래서 말인데요, 참고만 했을뿐 수정은 안했기때문에 .. 말씀하신 부분중에 해답을 찾으려 해도 못찾겠습니다. ㅜ.ㅡ

<?
include_once("$g4[path]/_common.php");
include_once("$g4[path]/lib/latest.lib.php");
$g4['title'] = "오리와 키티의 페이퍼북";
include_once("$g4[path]/_global_header.php");
?>
_common.php 안에 $g4[path] 가 정의되어 있다면
include_once("$g4[path]/_common.php"); 요건 잘못된거 아닌가요?
include_once("경로/_common.php"); 요것이 맞는거 같은데요.
include_once("$g4[path]/_common.php");
include_once("$g4[path]/lib/latest.lib.php");
$g4['title'] = "오리와 키티의 페이퍼북";
include_once("$g4[path]/_global_header.php");
?>
_common.php 안에 $g4[path] 가 정의되어 있다면
include_once("$g4[path]/_common.php"); 요건 잘못된거 아닌가요?
include_once("경로/_common.php"); 요것이 맞는거 같은데요.
그러니까 설명하신 부분은 제 개인홈페이지는 그렇게 되어있는데 문제없이 동작을 한다는것이구요
(서브디렉토리에 동일하게 선언되어있습니다. ^^ )
지금 만들고 있는 홈페이지역시 모든환경 ( 그누보드를 사용하기위한 common.php, head.sub.php, tail.sub.php등 )이 제 개인홈페이지와 완전히 동일한 상태입니다.
그런데 지금만들고 있는 홈페이지만 리자언니께서 권고하시는 방법인 서브페이지마다 _common.php를 생성하고 그 경로를 수정해주어야만 문제없이 동작을 한다는것이거든요.
제가 그누보드의 설정파일을 손대는것을 병적으로 싫어하기때문에 손댄 부분은 위에서 말한 dbconfig.php 파일이름을 수정하고 그것만 common.php안에 수정한것 외에는 없습니다.
맨처음 질문드릴때 말씀드린데로 제 홈페이지의 common.php파일과 새로 만들고 있는 홈페이지의 common.php을 프린트까지 해서 비교를 해봤는데 ㅠ.ㅠ
(못찾은 걸 수도 있겠지만요.)
(서브디렉토리에 동일하게 선언되어있습니다. ^^ )
지금 만들고 있는 홈페이지역시 모든환경 ( 그누보드를 사용하기위한 common.php, head.sub.php, tail.sub.php등 )이 제 개인홈페이지와 완전히 동일한 상태입니다.
그런데 지금만들고 있는 홈페이지만 리자언니께서 권고하시는 방법인 서브페이지마다 _common.php를 생성하고 그 경로를 수정해주어야만 문제없이 동작을 한다는것이거든요.
제가 그누보드의 설정파일을 손대는것을 병적으로 싫어하기때문에 손댄 부분은 위에서 말한 dbconfig.php 파일이름을 수정하고 그것만 common.php안에 수정한것 외에는 없습니다.
맨처음 질문드릴때 말씀드린데로 제 홈페이지의 common.php파일과 새로 만들고 있는 홈페이지의 common.php을 프린트까지 해서 비교를 해봤는데 ㅠ.ㅠ
(못찾은 걸 수도 있겠지만요.)
너무 어렵게 하시는것 같네요.. ㅠㅠ
새로 생성된 폴더안에 만들고자 하는 페이지만 넣코 이렇게 두가지 파일만 수정하면 되는뎅 ㅠㅠ
루트디렉토리 > 폴더생성시 ------> $g4_path_sub = ".." ; 로 변수 지정
루트디렉토리 > 폴더 > 폴더생성시 -------> $g4_path_sub = "../.." ; 로 변수 지정
------------------------------------------------ _common.php 이렇게 변경-----------------------------------------
if ($g4_path_sub) // 해당 폴더안에 있는 서브페이지에 변수값이 있을때
{
$g4_path = $g4_path_sub ; // common.php 의 상대 경로
include_once("$g4_path/common.php");
}
else
{
$g4_path = "."; // common.php 의 상대 경로
include_once("$g4_path/common.php");
}
----------------------------------------------------------------------------------------------------------------------
해당서브 페이지 예제)
루트디렉토리안에 test폴더를 생성 하고 index.php(가상의 서브페이지)를 임으로 넣음.
---------------------------------------------index.php 페이지 안에 이부분만 변경 ------------------------------------------------------
$g4_path_sub =".."; // 폴더를 하나 생성했음으로 ".." 폴더안에 폴더를 생성했을때는 "../.." 이렇게 적으면됨.
include_once("$g4_path_sub/_common.php"); // 지정된 변수 삽입
include_once("$g4[path]/lib/latest.lib.php");
--------------------------------------------------------------------------------------------------------------------------------------------
새로 생성된 폴더안에 만들고자 하는 페이지만 넣코 이렇게 두가지 파일만 수정하면 되는뎅 ㅠㅠ
루트디렉토리 > 폴더생성시 ------> $g4_path_sub = ".." ; 로 변수 지정
루트디렉토리 > 폴더 > 폴더생성시 -------> $g4_path_sub = "../.." ; 로 변수 지정
------------------------------------------------ _common.php 이렇게 변경-----------------------------------------
if ($g4_path_sub) // 해당 폴더안에 있는 서브페이지에 변수값이 있을때
{
$g4_path = $g4_path_sub ; // common.php 의 상대 경로
include_once("$g4_path/common.php");
}
else
{
$g4_path = "."; // common.php 의 상대 경로
include_once("$g4_path/common.php");
}
----------------------------------------------------------------------------------------------------------------------
해당서브 페이지 예제)
루트디렉토리안에 test폴더를 생성 하고 index.php(가상의 서브페이지)를 임으로 넣음.
---------------------------------------------index.php 페이지 안에 이부분만 변경 ------------------------------------------------------
$g4_path_sub =".."; // 폴더를 하나 생성했음으로 ".." 폴더안에 폴더를 생성했을때는 "../.." 이렇게 적으면됨.
include_once("$g4_path_sub/_common.php"); // 지정된 변수 삽입
include_once("$g4[path]/lib/latest.lib.php");
--------------------------------------------------------------------------------------------------------------------------------------------