PHP 매뉴얼
이전 | 4. 장. 실행 환경 설정 | 다음

# 기타 환경 설정 지시자

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

## Httpd 옵션

표 4-2. Httpd 옵션

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

## 언어 옵션

표 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

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

`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_globals는 variables_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_limit는 `post_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_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

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

`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_dir | NULL | PHP_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

  디버거 활성화 여부.

이전 | 처음으로 | 다음
환경 설정을 변경하는 방법 | 위로 | 언어 레퍼런스