아래는 모든 PHP 지시자 목록이 아닙니다. 지시자 목록은 적합한 위치에 존재합니다. 예를 들어, 세션 지시자에 대한 정보는 세션 챕터에 위치합니다.
표 4-3. 언어와 기타 환경 설정 옵션
이름 | 기본값 | 변경가능성 |
---|---|---|
short_open_tag | On | PHP_INI_SYSTEM|PHP_INI_PERDIR |
asp_tags | Off | PHP_INI_SYSTEM|PHP_INI_PERDIR |
precision | "14" | PHP_INI_ALL |
y2k_compliance | Off | PHP_INI_ALL |
allow_call_time_pass_reference | On | PHP_INI_SYSTEM|PHP_INI_PERDIR |
expose_php | On | PHP_INI_SYSTEM |
위 설정 지시어에 대한 간단한 설명입니다.
PHP의 시작 태그로 짧은 형태(<? ?>)를 사용하게 할 지를 결정합니다. PHP를 XML과 결함해서 사용할 때는, 라인에서 <?xml ?>를 사용하기 위해서 이 옵션을 끌 수 있습니다. 또는, PHP를 이용해서 출력해야 합니다. 예: <?php echo '<?xml version="1.0"'; ?>. 옵션을 끌 경우, 긴 형태의 PHP 시작 태그(<?php ?>)를 사용해야만 합니다.
참고: 이 지시자는 <? echo의 짧은 형태인 <?=에도 영향을 미칩니다. 이 짧은 형태를 사용하기 위해서는 short_open_tag를 on으로 해야 합니다.
보통의 <?php ?> 태그에 추가로, ASP형태의 <% %>의 사용을 가능하게 합니다. 변수값 출력의 짧은 형태인 <%= $value %>도 사용 가능해집니다. 추가 정보는 HTML에서 빠져나가기를 참고하십시오.
참고: ASP-형태 태그의 지원은 3.0.4에서 추가하였습니다.
부동소수에 표시되는 유효 숫자의 수입니다.
2000년 호환을 강제합니다. (비호환 브라우저와 문제가 있을 수 있습니다)
함수를 호출할 때, 인자를 참조로 넘기는 것의 강제 여부를 결정합니다. 이 방법은 부정되었으며, PHP/Zend의 차후 버전에서는 지원하지 않을 것입니다. 권장하는 방법은 함수 정의시에 어떤 인자가 참조로 넘어갈지를 결정하는 것입니다. 차후 버전에서의 작동성을 보장받기 위해서 이 옵션을 끈 상태에서 스크립트가 제대로 작동하게 하는 것을 권장합니다. (이 기능을 사용할때마다 경고를 받게 되고, 인자는 참조 대신 값으로 넘어가게 될 것입니다)
참조: References Explained.
서버에 PHP가 설치 여부를 표출하게 하는 것을 결정합니다. (즉, 웹 서버 헤더에 사인을 추가합니다). 보안 관련에 영향은 없으나, 그 서버에서 PHP의 사용 여부를 확인할 수 있게 합니다.
위 설정 지시어에 대한 간단한 설명입니다.
스크립트가 사용할 수 있는 최대 메모리 양을 바이트로 설정합니다. 엉망인 스크립트가 서버의 많은 메모리를 차지하는 것을 방지할 수 있습니다. 이 지시자를 사용하기 위해서는, 컴파일시에 활성화하여야 합니다. 즉, 설정 라인에 다음을 포함되야 합니다: --enable-memory-limit. 메모리 제한을 하지 않으려면 -1로 설정하십시오.
PHP 4.3.2부터, memory_limit를 활성화 했을때, PHP 함수 memory_get_usage()가 사용 가능합니다.
참고: max_execution_time.
표 4-5. 데이터 핸들링 환경 설정 옵션
이름 | 기본값 | 변경가능성 |
---|---|---|
track-vars | "On" | PHP_INI_?? |
arg_separator.output | "&" | PHP_INI_ALL |
arg_separator.input | "&" | PHP_INI_SYSTEM|PHP_INI_PERDIR |
variables_order | "EGPCS" | PHP_INI_ALL |
register_globals | "Off" | PHP_INI_PERDIR|PHP_INI_SYSTEM |
register_argc_argv | "On" | PHP_INI_PERDIR|PHP_INI_SYSTEM |
post_max_size | "8M" | PHP_INI_SYSTEM|PHP_INI_PERDIR |
gpc_order | "GPC" | PHP_INI_ALL |
auto_prepend_file | "" | PHP_INI_SYSTEM|PHP_INI_PERDIR |
auto_append_file | "" | PHP_INI_SYSTEM|PHP_INI_PERDIR |
default_mimetype | "text/html" | PHP_INI_ALL |
default_charset | "iso-8859-1" | PHP_INI_ALL |
always_populate_raw_post_data | "0" | PHP_INI_SYSTEM|PHP_INI_PERDIR |
allow_webdav_methods | "0" | PHP_INI_SYSTEM|PHP_INI_PERDIR |
위 설정 지시어에 대한 간단한 설명입니다.
활성화하면, 환경 변수, GET, POST, 쿠키, 서버 변수에 대한 전역 연관 배열 $_ENV, $_GET, $_POST, $_COOKIE, $_SERVER을 사용할 수 있습니다.
PHP 4.3.0부터 track_vars는 항상 on입니다.
PHP가 생성하는 URL의 인자를 구분하는 구분자입니다.
PHP가 URL에서 변수를 분리하는데 사용하는 구분자 목록입니다.
참고: 이 지시자의 모든 문자는 구분자로 인식합니다!
EGPCS(환경변수, GET, POST, 쿠키, 서버) 변수의 파싱 순서를 결정합니다. 이 지시자의 기본값은 "EGPCS"입니다. 예를 들어, "GP"로 설정하면, PHP는 환경 변수, 쿠키, 서버 변수를 무시할 것이고, GET 변수는 같은 이름을 가지는 POST 변수에 의해 덮어씌워질 것입니다.
참고: register_globals.
EGPCS(환경, GET, POST, 쿠키, 서버) 변수를 전역 변수로 등록할지를 결정합니다. 예를 들어, register_globals = on 이라면 URL http://www.example.com/test.php?id=3 요청에 $id를 생성합니다. 또는, $_SERVER['DOCUMENT_ROOT']에서 $DOCUMENT_ROOT를 등록합니다. 스크립트의 전역 위치에 유저 데이터로 채워지는것을 원하지 않는다면, 이 옵션을 끄십시오. PHP 4.2.0부터는 이 지시자의 기본값은 off입니다. 자동전역: $_ENV, $_GET, $_POST, $_COOKIE, $_SERVER 등의 PHP 예약 정의 변수를 사용하는 것을 권장합니다. 보안 챕터의 register_globals 사용에 대한 관련 정보를 읽어보십시오.
register_globals는 실행시에 설정(ini_set())할 수 없는 점에 주의하십시오. 그러나, 호스트가 .htaccess를 허용한다면, 그것을 이용할 수 있습니다. 예제 .htaccess 엔트리: php_flag register_globals on
참고: register_globals는 variables_order 지시자의 영향을 받습니다.
(GET 정보를 포함하는) argv와 argc 변수 사용 여부를 결정합니다.
참고 : command line. 이 지시자는 PHP 4.0.0부터 사용 가능하며, 이전에는 항상 "on"이였습니다.
PHP에서 사용을 권하지 않는 $HTTP_*_VARS 형태의 예약 변수의 등록 여부를 결정합니다. On (기본값)일때, $HTTP_GET_VARS 등의 긴 형태의 PHP 예약 변수가 정의됩니다. 이 형태를 사용하지 않는다면, 성능 향상을 위해 off로 설정하는 것을 권장합니다. 대신, $_GET 등의 자동 전역 배열을 사용하십시오.
이 지시자는 PHP 5.0.0부터 사용 가능합니다.
POST 데이터가 허용하는 최대 사이즈를 설정합니다. 이 설정은 파일 업로드에도 관여합니다. 큰 파일을 업로드 하기 위해서는 이 값이 upload_max_filesize보다 커야만 합니다.
환경 설정 스크립트에서 메모리 제한을 활성화하였으면, memory_limit도 파일 업로드에 관여합니다. 일반적으로, memory_limit는 post_max_size보다 커야만 합니다.
GET/POST/COOKIE 변수 파싱 순서를 설정합니다. 이 지시자의 기본값은 "GPC"입니다. 예를 들어, "GP"로 설정하면 PHP는 쿠키는 무시하고, 같은 이름의 POST 방식 변수로 GET 방식 변수를 덮어씌울 것입니다.
참고: 이 옵션은 PHP 4에서는 사용할 수 없습니다. 대신, variables_order를 사용합니다.
메인 파일 앞에 자동적으로 붙는 파일의 이름을 정합니다. include() 함수 호출과 동등하게 작동하며, include_path를 사용합니다.
특수값 none은 auto-prepending을 비활성화 합니다.
메인 파일 뒤에 자동적으로 붙는 파일의 이름을 정합니다. include() 함수 호출과 동등하게 작동하며, include_path를 사용합니다.
특수값 none은 auto-appending을 비활성화 합니다.
참고: 스크립트가 exit()로 종료되면, auto-append는 작동하지 않습니다.
4.0b4부터, PHP는 기본값으로 항상 Content-type: 헤더로 문자 인코딩을 출력합니다. 문자셋의 전송을 하지 않기 위해서는, 간단히 이 설정을 비워두십시오.
항상 $HTTP_RAW_POST_DATA 변수를 선언합니다.
PHP 스크립트에서 WebDAV http 요청(즉, PROPFIND, PROPPATCH, MOVE, COPY 등등..)을 핸들링할 수 있게 합니다. 이 요청들로부터 포스트 데이터를 얻기 원한다면, always_populate_raw_post_data도 설정해야 합니다.
참고: magic_quotes_gpc, magic-quotes-runtime, magic_quotes_sybase.
표 4-6. 경로와 디렉토리 환경 설정 옵션
이름 | 기본값 | 변경가능성 |
---|---|---|
include_path | PHP_INCLUDE_PATH | PHP_INI_ALL |
doc_root | PHP_INCLUDE_PATH | PHP_INI_SYSTEM |
user_dir | NULL | PHP_INI_SYSTEM |
extension_dir | PHP_EXTENSION_DIR | PHP_INI_SYSTEM |
cgi.fix_pathinfo | "0" | PHP_INI_SYSTEM |
cgi.force_redirect | "1" | PHP_INI_SYSTEM |
cgi.redirect_status_env | "" | PHP_INI_SYSTEM |
fastcgi.impersonate | "0" | PHP_INI_SYSTEM |
cgi.rfc2616_headers | "0" | PHP_INI_SYSTEM |
위 설정 지시어에 대한 간단한 설명입니다.
require(), include(), fopen_with_path() 함수가 파일을 찾는 디렉토리 목록을 지정합니다. 형식은 시스템의 PATH 환경 변수와 같습니다: 디렉토리 목록은 유닉스에서는 콜론으로, 윈도우에서는 세미콜론으로 구분합니다.
상대 경로의 인크루드를 허용하기 위해서, 현재 경로를 의미하는 .을 경로에 사용하십시오.
서버에서 PHP의 "루트 디렉토리"입니다. 비어있지 않은 경우에만 사용합니다. PHP를 안전 모드로 설정하면, 이 디렉토리 밖에 있는 파일은 사용할 수 없습니다. IIS를 제외한 모든 웹 서버에서, PHP를 CGI로 사용하면서 FORCE_REDIRECT를 설정하지 않고 컴파일 했다면, doc_root를 꼭 설정해야 합니다. 아래의 cgi.force_redirect 설정을 대신 사용할 수도 있습니다.
PHP 파일을 사용하는 유저의 홈 디렉토리의 기본 이름입니다. 예를 들면, public_html이 있습니다.
PHP가 시작할 때 설정한 동적 로드 확장을 읽어옵니다.
CGI를 위한 실제 PATH_INFO/PATH_TRANSLATED 지원을 제공합니다. PHP의 이전 작동은 PATH_TRANSLATED를 SCRIPT_FILENAME으로 설정했고, and to not grok what PATH_INFO is. PATH_INFO에 관한 정보는, cgi 규격을 참고하십시오. 1로 설정하면 PHP CGI가 규격에 맞게 경로를 수정합니다. 0으로 설정하면 PHP는 이전과 같이 작동합니다. 기본값은 0입니다. PATH_TRANSLATED 대신 SCRIPT_FILENAME을 사용하도록 스크립트를 수정할 필요가 있습니다.
cgi.force_redirect는 대부분의 웹 서버에서 PHP를 CGI로 사용할 때 보안을 제공하기 위해 필요합니다. 미정의 상태라면, PHP는 기본값으로 on으로 인식합니다. 자신의 책임하에 끌 수 있습니다.
참고: 윈도우 유저: IIS에서는 이것을 꺼도 안전하며, 사실상 꺼야합니다. OmniHTTPD나 Xitami로 작업한다면, 반드시 꺼야 합니다.
cgi.force_redirect가 켜져있고, 아파치나 넷스케이프(iPlanet) 웹 서버를 사용하지 않는다면, 계속해서 실행하기 위한 OK를 알리기 위한 환경 변수 이름을 설정해야 할 수도 있습니다.
참고: 이 변수를 설정하는건 보안 문제가 될 수도 있습니다. 어떤 일을 하는지 우선적으로 알아보십시오.
IIS(WINNT 기반 OS)에서 FastCGI는 클라이언트 호출에 대한 가상 보안 토큰을 지원합니다. 이 지시자는 IIS에게 요청에 대한 보안 문장을 정의하도록 허용합니다. 아파치의 mod_fastcgi에서는 현재(2002/03/17) 이 기능을 지원하지 않습니다. IIS에서 실행할때는 1로 설정하십시오. 기본값은 0입니다.
PHP가 HTTP 응답 코드를 보낼 때 어떤 형식의 헤더를 사용할지를 결정합니다. 0으로 설정하면, PHP는 아파치 및 기타 웹 서버에서 지원하는 Status: 헤더를 이용합니다. 이 옵션을 1로 설정하면, PHP는 RFC 2616 호환 헤더를 전송합니다. 어떤 일을 하는지 알 수 없는 한 0으로 설정해두십시오.
표 4-7. 파일 업로드 환경 설정 옵션
이름 | 기본값 | 변경가능성 |
---|---|---|
file_uploads | "1" | PHP_INI_SYSTEM |
upload_tmp_dir | NULL | PHP_INI_SYSTEM |
upload_max_filesize | "2M" | PHP_INI_SYSTEM|PHP_INI_PERDIR |
위 설정 지시어에 대한 간단한 설명입니다.
HTTP 파일 업로드 허용 여부를 결정합니다. upload_max_filesize, upload_tmp_dir, post_max_size 지시자를 참고하십시오.
파일 업로드 중의 저장을 위한 임시 디렉토리 설정입니다. PHP가 실행되는 유저가 쓰기 권한을 가져야 합니다. 지정하지 않으면 시스템 기본값을 사용합니다.
업로드 파일의 최대 크기를 지정합니다.