기타 환경 설정 지시자

아래는 모든 PHP 지시자 목록이 아닙니다. 지시자 목록은 적합한 위치에 존재합니다. 예를 들어, 세션 지시자에 대한 정보는 세션 챕터에 위치합니다.

Httpd 옵션

표 4-2. Httpd 옵션

이름기본값변경가능성
async_send"0"PHP_INI_ALL

언어 옵션

표 4-3. 언어와 기타 환경 설정 옵션

이름기본값변경가능성
short_open_tagOnPHP_INI_SYSTEM|PHP_INI_PERDIR
asp_tagsOffPHP_INI_SYSTEM|PHP_INI_PERDIR
precision"14"PHP_INI_ALL
y2k_complianceOffPHP_INI_ALL
allow_call_time_pass_referenceOnPHP_INI_SYSTEM|PHP_INI_PERDIR
expose_phpOnPHP_INI_SYSTEM

위 설정 지시어에 대한 간단한 설명입니다.

short_open_tag boolean

PHP의 시작 태그로 짧은 형태(<? ?>)를 사용하게 할 지를 결정합니다. PHP를 XML과 결함해서 사용할 때는, 라인에서 <?xml ?>를 사용하기 위해서 이 옵션을 끌 수 있습니다. 또는, PHP를 이용해서 출력해야 합니다. 예: <?php echo '<?xml version="1.0"'; ?>. 옵션을 끌 경우, 긴 형태의 PHP 시작 태그(<?php ?>)를 사용해야만 합니다.

참고: 이 지시자는 <? echo의 짧은 형태인 <?=에도 영향을 미칩니다. 이 짧은 형태를 사용하기 위해서는 short_open_tag를 on으로 해야 합니다.

asp_tags boolean

보통의 <?php ?> 태그에 추가로, ASP형태의 <% %>의 사용을 가능하게 합니다. 변수값 출력의 짧은 형태인 <%= $value %>도 사용 가능해집니다. 추가 정보는 HTML에서 빠져나가기를 참고하십시오.

참고: ASP-형태 태그의 지원은 3.0.4에서 추가하였습니다.

precision integer

부동소수에 표시되는 유효 숫자의 수입니다.

y2k_compliance boolean

2000년 호환을 강제합니다. (비호환 브라우저와 문제가 있을 수 있습니다)

allow_call_time_pass_reference boolean

함수를 호출할 때, 인자를 참조로 넘기는 것의 강제 여부를 결정합니다. 이 방법은 부정되었으며, PHP/Zend의 차후 버전에서는 지원하지 않을 것입니다. 권장하는 방법은 함수 정의시에 어떤 인자가 참조로 넘어갈지를 결정하는 것입니다. 차후 버전에서의 작동성을 보장받기 위해서 이 옵션을 끈 상태에서 스크립트가 제대로 작동하게 하는 것을 권장합니다. (이 기능을 사용할때마다 경고를 받게 되고, 인자는 참조 대신 값으로 넘어가게 될 것입니다)

참조: References Explained.

expose_php boolean

서버에 PHP가 설치 여부를 표출하게 하는 것을 결정합니다. (즉, 웹 서버 헤더에 사인을 추가합니다). 보안 관련에 영향은 없으나, 그 서버에서 PHP의 사용 여부를 확인할 수 있게 합니다.

리소스 제한

표 4-4. 리소스 제한

이름기본값변경가능성
memory_limit"8M"PHP_INI_ALL

위 설정 지시어에 대한 간단한 설명입니다.

memory_limit integer

스크립트가 사용할 수 있는 최대 메모리 양을 바이트로 설정합니다. 엉망인 스크립트가 서버의 많은 메모리를 차지하는 것을 방지할 수 있습니다. 이 지시자를 사용하기 위해서는, 컴파일시에 활성화하여야 합니다. 즉, 설정 라인에 다음을 포함되야 합니다: --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

위 설정 지시어에 대한 간단한 설명입니다.

track_vars boolean

활성화하면, 환경 변수, GET, POST, 쿠키, 서버 변수에 대한 전역 연관 배열 $_ENV, $_GET, $_POST, $_COOKIE, $_SERVER을 사용할 수 있습니다.

PHP 4.3.0부터 track_vars는 항상 on입니다.

arg_separator.output string

PHP가 생성하는 URL의 인자를 구분하는 구분자입니다.

arg_separator.input string

PHP가 URL에서 변수를 분리하는데 사용하는 구분자 목록입니다.

참고: 이 지시자의 모든 문자는 구분자로 인식합니다!

variables_order string

EGPCS(환경변수, GET, POST, 쿠키, 서버) 변수의 파싱 순서를 결정합니다. 이 지시자의 기본값은 "EGPCS"입니다. 예를 들어, "GP"로 설정하면, PHP는 환경 변수, 쿠키, 서버 변수를 무시할 것이고, GET 변수는 같은 이름을 가지는 POST 변수에 의해 덮어씌워질 것입니다.

참고: register_globals.

register_globals boolean

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_globalsvariables_order 지시자의 영향을 받습니다.

register_argc_argv boolean

(GET 정보를 포함하는) argv와 argc 변수 사용 여부를 결정합니다.

참고 : command line. 이 지시자는 PHP 4.0.0부터 사용 가능하며, 이전에는 항상 "on"이였습니다.

register_long_arrays boolean

PHP에서 사용을 권하지 않는 $HTTP_*_VARS 형태의 예약 변수의 등록 여부를 결정합니다. On (기본값)일때, $HTTP_GET_VARS 등의 긴 형태의 PHP 예약 변수가 정의됩니다. 이 형태를 사용하지 않는다면, 성능 향상을 위해 off로 설정하는 것을 권장합니다. 대신, $_GET 등의 자동 전역 배열을 사용하십시오.

이 지시자는 PHP 5.0.0부터 사용 가능합니다.

post_max_size integer

POST 데이터가 허용하는 최대 사이즈를 설정합니다. 이 설정은 파일 업로드에도 관여합니다. 큰 파일을 업로드 하기 위해서는 이 값이 upload_max_filesize보다 커야만 합니다.

환경 설정 스크립트에서 메모리 제한을 활성화하였으면, memory_limit도 파일 업로드에 관여합니다. 일반적으로, memory_limitpost_max_size보다 커야만 합니다.

gpc_order string

GET/POST/COOKIE 변수 파싱 순서를 설정합니다. 이 지시자의 기본값은 "GPC"입니다. 예를 들어, "GP"로 설정하면 PHP는 쿠키는 무시하고, 같은 이름의 POST 방식 변수로 GET 방식 변수를 덮어씌울 것입니다.

참고: 이 옵션은 PHP 4에서는 사용할 수 없습니다. 대신, variables_order를 사용합니다.

auto_prepend_file string

메인 파일 앞에 자동적으로 붙는 파일의 이름을 정합니다. include() 함수 호출과 동등하게 작동하며, include_path를 사용합니다.

특수값 none은 auto-prepending을 비활성화 합니다.

auto_append_file string

메인 파일 뒤에 자동적으로 붙는 파일의 이름을 정합니다. include() 함수 호출과 동등하게 작동하며, include_path를 사용합니다.

특수값 none은 auto-appending을 비활성화 합니다.

참고: 스크립트가 exit()로 종료되면, auto-append는 작동하지 않습니다.

default_mimetype string

default_charset string

4.0b4부터, PHP는 기본값으로 항상 Content-type: 헤더로 문자 인코딩을 출력합니다. 문자셋의 전송을 하지 않기 위해서는, 간단히 이 설정을 비워두십시오.

always_populate_raw_post_data boolean

항상 $HTTP_RAW_POST_DATA 변수를 선언합니다.

allow_webdav_methods boolean

PHP 스크립트에서 WebDAV http 요청(즉, PROPFIND, PROPPATCH, MOVE, COPY 등등..)을 핸들링할 수 있게 합니다. 이 요청들로부터 포스트 데이터를 얻기 원한다면, always_populate_raw_post_data도 설정해야 합니다.

참고: magic_quotes_gpc, magic-quotes-runtime, magic_quotes_sybase.

경로와 디렉토리

표 4-6. 경로와 디렉토리 환경 설정 옵션

이름기본값변경가능성
include_pathPHP_INCLUDE_PATHPHP_INI_ALL
doc_rootPHP_INCLUDE_PATHPHP_INI_SYSTEM
user_dirNULLPHP_INI_SYSTEM
extension_dirPHP_EXTENSION_DIRPHP_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

위 설정 지시어에 대한 간단한 설명입니다.

include_path string

require(), include(), fopen_with_path() 함수가 파일을 찾는 디렉토리 목록을 지정합니다. 형식은 시스템의 PATH 환경 변수와 같습니다: 디렉토리 목록은 유닉스에서는 콜론으로, 윈도우에서는 세미콜론으로 구분합니다.

예 4-3. 유닉스 include_path

include_path=".:/php/includes"

예 4-4. 윈도우 include_path

include_path=".;c:\php\includes"

상대 경로의 인크루드를 허용하기 위해서, 현재 경로를 의미하는 .을 경로에 사용하십시오.

doc_root string

서버에서 PHP의 "루트 디렉토리"입니다. 비어있지 않은 경우에만 사용합니다. PHP를 안전 모드로 설정하면, 이 디렉토리 밖에 있는 파일은 사용할 수 없습니다. IIS를 제외한 모든 웹 서버에서, PHP를 CGI로 사용하면서 FORCE_REDIRECT를 설정하지 않고 컴파일 했다면, doc_root를 꼭 설정해야 합니다. 아래의 cgi.force_redirect 설정을 대신 사용할 수도 있습니다.

user_dir string

PHP 파일을 사용하는 유저의 홈 디렉토리의 기본 이름입니다. 예를 들면, public_html이 있습니다.

extension_dir string

동적 로드 확장를 찾을 디렉토리를 설정합니다. 참고: enable_dl, dl().

extension string

PHP가 시작할 때 설정한 동적 로드 확장을 읽어옵니다.

cgi.fix_pathinfo boolean

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 boolean

cgi.force_redirect는 대부분의 웹 서버에서 PHP를 CGI로 사용할 때 보안을 제공하기 위해 필요합니다. 미정의 상태라면, PHP는 기본값으로 on으로 인식합니다. 자신의 책임하에 끌 수 있습니다.

참고: 윈도우 유저: IIS에서는 이것을 꺼도 안전하며, 사실상 꺼야합니다. OmniHTTPD나 Xitami로 작업한다면, 반드시 꺼야 합니다.

cgi.redirect_status_env string

cgi.force_redirect가 켜져있고, 아파치나 넷스케이프(iPlanet) 웹 서버를 사용하지 않는다면, 계속해서 실행하기 위한 OK를 알리기 위한 환경 변수 이름을 설정해야 할 수도 있습니다.

참고: 이 변수를 설정하는건 보안 문제가 될 수도 있습니다. 어떤 일을 하는지 우선적으로 알아보십시오.

fastcgi.impersonate string

IIS(WINNT 기반 OS)에서 FastCGI는 클라이언트 호출에 대한 가상 보안 토큰을 지원합니다. 이 지시자는 IIS에게 요청에 대한 보안 문장을 정의하도록 허용합니다. 아파치의 mod_fastcgi에서는 현재(2002/03/17) 이 기능을 지원하지 않습니다. IIS에서 실행할때는 1로 설정하십시오. 기본값은 0입니다.

cgi.rfc2616_headers int

PHP가 HTTP 응답 코드를 보낼 때 어떤 형식의 헤더를 사용할지를 결정합니다. 0으로 설정하면, PHP는 아파치 및 기타 웹 서버에서 지원하는 Status: 헤더를 이용합니다. 이 옵션을 1로 설정하면, PHP는 RFC 2616 호환 헤더를 전송합니다. 어떤 일을 하는지 알 수 없는 한 0으로 설정해두십시오.

파일 업로드

표 4-7. 파일 업로드 환경 설정 옵션

이름기본값변경가능성
file_uploads"1"PHP_INI_SYSTEM
upload_tmp_dirNULLPHP_INI_SYSTEM
upload_max_filesize"2M"PHP_INI_SYSTEM|PHP_INI_PERDIR

위 설정 지시어에 대한 간단한 설명입니다.

file_uploads boolean

HTTP 파일 업로드 허용 여부를 결정합니다. upload_max_filesize, upload_tmp_dir, post_max_size 지시자를 참고하십시오.

upload_tmp_dir string

파일 업로드 중의 저장을 위한 임시 디렉토리 설정입니다. PHP가 실행되는 유저가 쓰기 권한을 가져야 합니다. 지정하지 않으면 시스템 기본값을 사용합니다.

upload_max_filesize integer

업로드 파일의 최대 크기를 지정합니다.

SQL 일반

표 4-8. SQL 일반 환경설정 옵션

이름기본값변경가능성
sql.safe_mode"0"PHP_INI_SYSTEM

위 설정 지시어에 대한 간단한 설명입니다.

sql.safe_mode boolean

디버거 환경 설정 지시자

경고

PHP 3만 기본 디버거를 가지고 있습니다. 추가 정보는 부록 E를 참고하십시오.

debugger.host string

디버거가 사용하는 호스트의 DNS 이름이나 IP.

debugger.port string

디버거가 사용하는 포트 번호.

debugger.enabled boolean

디버거 활성화 여부.