user_dir will not work in windows.
스크립트나 실행 파일과 같은 활동적인 콘텐츠를 웹서버 디렉토리에 놓는 것은 때때로 비보안적인 행동으로 생각됩니다. 몇몇 환경 설정의 실수로 스크립트가 실행되지 않고 보통의 HTML 문서로 보여진다면, 지적 재산이나 패스워드와 같은 보안 정보를 노출시키는 결과를 가져올 수 있습니다. 그러므로 많은 시스템 관리자는 파일이 항상 해석이 되고 어떤 방법으로도 표시되어지지 않도록, PHP CGI를 통해서만 접근할 수 있는 스크립트를 위한 또 다른 디렉토리 구조를 만드는 것을 선호합니다.
또한, 앞의 섹션에서 설명한 방법으로 요청을 리다이렉트하지 않게 만드는게 불가능하다면, doc_root를 웹 문서 루트와 다른 장소로 설정할 필요가 있습니다.
PHP 스크립트 문서 루트를 설정
파일에서 지시어 doc_root나,
환경 변수 PHP_DOCUMENT_ROOT로 설정할 수 있습니다. 이를
설정하면, PHP의 CGI 버전은 항상 열 파일 이름 및 요청의 경로 정보를
doc_root
와 결합하여, 이 디렉토리 밖에서는 어떠한
스크립트도 실행하지 못하게 합니다. (아래의
user_dir
를 제외하고)
Another option usable here is user_dir. When user_dir is unset,
only thing controlling the opened file name is
doc_root
. Opening an URL like http://my.host/~user/doc.php does not
result in opening a file under users home directory, but a file
called ~user/doc.php under
doc_root (yes, a directory name starting with a tilde
[~]).
If user_dir is set to for example public_php, a request like http://my.host/~user/doc.php will open a file called doc.php under the directory named public_php under the home directory of the user. If the home of the user is /home/user, the file executed is /home/user/public_php/doc.php.
user_dir
expansion happens regardless of
the doc_root
setting, so you can control
the document root and user directory access
separately.