PHP에서 다른 PHP파일을 참조시키기 위해 가져올때 다음과 같이 많이 사용하시죠?

 

require_once './modules/module/module.블라.php';

 

이렇게 불러오는 파일들은 웹에서는 잘 불러옵니다.

 

하지만 문제가 발생하지요..

 

SSH에서 터미널로 php함수를 이용해서 실행하는 경우,

Rhymix와 동일하개 crontab -e 에서 php함수를 실행시킨 경우.. 이경우는 문제가 발생됩니다.

 

해당 실행 지점에 따라 경로가 달라집니다...

 

그래서 정상적으로 메서드를 재대로 못가져와 PHP가 뻗는 문제를 발견했엇습니다.

 

이럴경우 어떻게 해야하냐면..

 

require_once _XE_PATH_ . '/modules/module/module.블라.php';

 

이렇게 호출해주세요...

 

이게 정석이예요 ㅠㅠ

 

이렇게 하면 터미널에서 PHP명령어로 실행해도 정상적으로 구동이 되고, 웹에서 실행하셔도 문제가 없이 돌아가게 됩니다!

 

그 동안 아무렇게나 불러오신 분들 계시다면 꼭 앞으로는 이렇게 호출하도록 연습해보세요! ㅎㅎ

 

라이믹스는 RX_BASEDIR 입니다. _XE_PATH_ 에도 동일한 값을 대입하도록 되어있어서 어느것을 사용해도 무관합니다 :) 

람보

profile
람보입니다.
  • profile

    더 심각한 문제는 저걸 왜 require_once 하냐는 거죠... getController, getModel, getView 등의 함수를 사용하면 해당 클래스가 포함된 파일을 자동으로 인클루드하고 인스턴스 생성까지 해주는데...

     

    XE에서 자동으로 불러와 주지 않는 경우에는 인클루드가 필요할 수도 있겠지만, 일반적인 모듈이나 스킨 등에 include, require 등이 있다면 일단 그것부터 의심해 봐야 합니다.

  • profile profile
    소셜XE에서 라이브러리때문에 ㅋㅋㅋ require_once 으로 라이브러리 파일가져온 상황이예요.
  • profile
    어쩐지 SSH에서 하면 자꾸 오류가 나던데.. 이거 때문이였군요.. ㅠㅠ
    감사합니다!