|
|
기타 환경 설정 지시자
아래는 모든 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_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 방식 변수를
덮어씌울 것입니다.
- 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 |
위 설정 지시어에 대한
간단한 설명입니다.
SQL 일반
표 4-8. SQL 일반 환경설정 옵션 | 이름 | 기본값 | 변경가능성 |
|---|
| sql.safe_mode | "0" | PHP_INI_SYSTEM |
위 설정 지시어에 대한
간단한 설명입니다.
디버거 환경 설정 지시자| 경고 |
PHP 3만 기본 디버거를 가지고 있습니다. 추가 정보는 부록 E를 참고하십시오.
|
- debugger.host
string
디버거가 사용하는 호스트의 DNS 이름이나 IP.
- debugger.port
string
디버거가 사용하는 포트 번호.
- debugger.enabled
boolean
디버거 활성화 여부.
|