질문 Q #10214
CLI 질문입니다.
projin 2012-12-18 08:58:53
클론을 통해 주기적으로 php를 호출하기위해 
CLI 로 적용중 오류가 생겨 문의드립니다.

브라우저 상에서는 동작에 이상이 없는데 

코멘드 라인에서만 프로그램을 실행하면 
$a=$this->parser->parse('aa.php',$data,true);

이부분에서 
An Error Was Encountered
Unable to load the requested file : aa.php

이런식에 오류가 납니다.

명령은 php index.php project mail
이렇게 했습니다.

콘트롤러의 project폴더안에 mail.php를 실행한것입니다.

뭐가 문제인지 모르겠습니다.

답변 5
#1 변종원(웅파) 2012-12-18 09:39:05
에러에 답이 있는데요? 파일 경로 확인해보세요
#2 projin 2012-12-18 11:20:41
빠른 답변 감사합니다.

그런데  물론 에러를 직역하면 분명 경로에 문제인것은 맞습니다.
그러나 이프로그램을 브라우저 상에서 실행을 하면 전혀 문제가 없습니다.
parse 또는 View를 하는 과정에서
commend line 에서만 경로를 찾을수가 없다면
혹 commend line에서는 view쪽의 경로를 루트부터 적어줘야 할까요
예를 들어 위의 부분 이라면
$a=$this->parser->parse('/home/homepage/www/view/aa.php',$data,true);
이런식으로 적어야 할까요?

물론 이런식으로 적어봤는데도 안됩니다.

묻고싶은것은 혹 parse나 view를 해서 view문서를 불러오고자 할때 commend line 에서는 
좀 다른방법으로 불러와야하는지에 대해 알고 싶습니다.

죄송합니다.
사설이 길었습니다.

감사합니다.

#3 변종원(웅파) 2012-12-18 11:45:05
매뉴얼을 잘 보셔야 합니다. ^^

http://codeigniter-kr.org/user_guide_2.1.0/libraries/parser.html

웹에서 $a=$this->parser->parse('aa.php',$data,true); 이 부분이 이상없이 실행되는게 함정이네요.

매뉴얼상(또는 뷰 호출 방식상) $a=$this->parser->parse('aa',$data,true); 이게 맞습니다.

#4 projin 2012-12-18 13:54:42
원하는 답변은 아니었지만 
웅파님 말씀대로 메뉴얼을 참조하고 질문내용들을 보고 
답을 찾아냈습니다.

문제는  constants.php에 있었습니다.
지금 마냐님의 공개보드를 이용을 해서 홈페이지를 만들고 있습니다.
그런데 여기에  SKIN_PATH 상수가 $_SERVER['DOCUMENT_ROOT'] 로 되어 있네요
 아래의 질문 내용에 웅파님께서 답변하신 내용을 보면 

   $_SERVER는 서버변수입니다. 클라이언트가 서버에 접속했을때 얻을 수 있는 정보죠.

   콘솔에서 돌리면 당연히 값이 없습니다. ^^

이 내용을 확인 할수 있었습니다.

마냐님의 공개보드에서는 VIEW폴더가 루트에 skin폴더로 되어 있고
상수로 그 위치를 정의 하고 있는데 여기에 
$_SERVER 함수가 경로를 지정하고 있네요..ㅠㅠ
결국 commend line에서는 이값이 null이 되니 찾을수 없었던 것이었습니다.

아뭇튼 웅파님의 빠른 답변으로 문제를 쉽게 해결할 수 있었습니다.
감사합니다.

#5 변종원(웅파) 2012-12-18 15:26:48
아. 그냥 ci가 아니었군요. ^^