PHP를 다음과 같이 호출 할 때 $ _SERVER [ 'DOCUMENT_ROOT']가 반환하는 변수가 있는지 궁금합니다. ./somescript
그렇지 않은 경우 사람들이이 사건을 어떻게 극복합니까? 나는 웹 브라우저와 터미널에서 같은 스크립트 (템플릿 컴파일러)를 호출 할 수 있기를 바라고있다.
감사합니다. Matt Mueller
PHP를 다음과 같이 호출 할 때 $ _SERVER [ 'DOCUMENT_ROOT']가 반환하는 변수가 있는지 궁금합니다. ./somescript
그렇지 않은 경우 사람들이이 사건을 어떻게 극복합니까? 나는 웹 브라우저와 터미널에서 같은 스크립트 (템플릿 컴파일러)를 호출 할 수 있기를 바라고있다.
감사합니다. Matt Mueller
나는이에 대한 getcwd()
명령을하지 않는 것이 좋습니다 에서). 작업 디렉토리는 PHP 구성에서 정의 할 수 있으며 아파치와 CLI 사이에서 다를 수 있으며, 일부 PHP 프레임 워크는 시작시 변경됩니다.
dirname(__FILE__)
을 사용하면 아파치 또는 cli 컨텍스트 (창과 유닉스에서 작동 함)에서 항상 작동하며, 프로젝트 파일 내부를 이동해야하는 경우 상대 경로 만 사용할 수 있습니다.
dirname (__ FILE__)은 DOCUMENT_ROOT와 동의어가 아닙니다. 그림 –
은 작성하지 않았지만 프런트 컨트롤러 스크립트에서 실행하는 것으로 가정하고 문서 루트를 가져와 프로젝트의 다른 위치에서 실행하면 서버 경로에 의존하지 않고 문서 루트로 내려 가기 위해 상대 경로로 구문 분석 할 수 있습니다 – Benoit
입니다. 그런 다음 DOCUMENT_ROOT에서 스크립트를 실행하기 만하면됩니다. 이런 식으로 뭔가 : 당신은 어디 cwd
가 (당신이 이미중인 디렉토리를 알고 의미하는 당신이 chdir
전에했습니다 않는 가리키는 확신 할 수 없기 때문에
cd /var/www/
php ./scripts/top.php
흠. 나는이 일을 전에 시도했는데, 그 일이 항상 동일하지 않았기 때문에 그것이 효과가 없었던 것으로 확신한다. 그것은 이것이 나의 유일한 선택일지도 모른다 것처럼 보인다. 감사! – Matt
스크립트를 실행하기 전에 필요한 dir에'cd'를했는지 확인해야합니다. –
질문은 필요한 디렉터리를 결정하는 방법입니다 –
* DOCUMENT \ _ROOT *는 웹 서버가 설정하는 환경 변수입니다. – Gumbo
예. 그것이 설정되지 않은 이유입니다. – Matt