2013-12-17 7 views
0

방금 ​​사이트로드가 새 VPS로 이동했으며 include_path와 함께 이상한 문제 이 있습니다. 이전 서버에서는 제대로 작동했지만 새로운 서버에서는 작동하지 않습니다. include_path 동작이 예상대로 작동하지 않습니다.

나는 시도하고 간단한 예제를 사용하여 설명 할 것이다

...

/home/kin/www/lib/Zend에서

/home/kin/www/ipb/_membadmin/Zend 에가있는 폴더에있는 단순히 에코 test1.php라는 파일이있다. /home/kin/www/ipb/_membadmin에서

라는 파일이있다 test.php 그것에는 당신이하는 것처럼 한 줄 ....

require_once 'Zend/test1.php'; 

당신이 그것을 실행, 그런 다음 다른 뭔가 /home/kin/www/ipb/_membadmin/Zend의 이름을 변경하는 경우가 /home/kin/www/ipb/_membadmin/Zend

에서 test1.php에서 라인을 메아리, 기대가 (내 생각)한다 (그래서 문이 그것을 찾을 수 없습니다 '포함'), 다시 test.php을 실행 php include_path 에 /home/kin/public_html/lib (이 경우 phpinfo.php이 확인 됨)이 포함되어 있기 때문에 파일을 /home/kin/www/lib/Zend에 표시하십시오. ...하지만 그렇지 않습니다.

왜 안 되니? 다음 /home/kin/public_html/lib의 포함 경로가있을 경우 반드시

require_once 'Zend/test1.php'; 

/home/kin/www/lib/Zend를 가리켜 야합니다. 그것은 오래된 서버에서 않습니다!

나는 명백한 것을 놓치고 있어야하지만 나는 무엇을 모르는가!

의견이 있으십니까? 감사합니다.

+0

두 경우 모두'get_include_path()'의 내용을 알려주시겠습니까? – hanzo2001

+0

흥미 롭습니다. 새 서버에서 get_include_path()를 실행하면 – sclg

+1

흥미 롭습니다. 새로운 서버에서 get_include_path()를 실행하면 이 생깁니다 :/usr/lib/php :/usr/local/lib/php :/home/public_html/lib 그러나 같은 위치에서 phpinfo를 실행하면,/usr/local/lib/php :/home/kin/public_html/lib 이전 서버에서 get_include_path 및 phpinfo report/home/lib는 모두 인 include_path를보고합니다. kin/public_html/lib 그래서 새 서버에 '친족'이 빠져있는 이유는 무엇입니까 ?? – sclg

답변

0

진단을받은 후에 방금 환경 경로를 무시하는 것으로 보입니다.

코드에 set_include_path가 호출되는 줄이 있어야합니다. 체크하지 않은 Zend 특정 코드가 실행 중입니까? 그 누락 된 디렉토리는 분명히 도둑으로 범인을 그려줍니다. set_include_path()

+0

확인하겠습니다.하지만 이전 서버에서 복사 한 새 서버의 코드와 정확히 같습니다. – sclg

+0

흠. 모든 응용 프로그램 폴더에 대한 grep은 set_include_path()를 찾지 않습니다. ... – sclg

+0

이것은 실제로 이상합니다. 나는 구성 문제를 분석하는데 경험이별로 없습니다. 나는 내가 혼란 스럽다는 것을 인정해야한다. 유일한 다른 길은 PHP를 점검하는 것이다.ini와 일이 정확하게 설정되어 있는지 확인하기 위해,하지만 이미 그렇게했다고 생각합니다. 이것은'ini_set ('include_path', '/ usr/lib/pear');을 설정하는 유일한 방법입니다. 카드 대신에 – hanzo2001

관련 문제