미니옵빠의 code stubs

php.ini 설정 파일 본문

Language/PHP

php.ini 설정 파일

미니옵빠 2011. 8. 28. 19:52
출처 시스템 based on Java | 먹고죽자
원문 http://blog.naver.com/worick/80002492782

The configuration file

설정 파일(configuration file)은 (PHP 3.0에서는 php3.ini 이고, PHP 4.0에서는 php.ini 이다.) PHP가 시작될 때 읽혀진다. 서버 모듈 형태의 PHP는 이 작업을 서버가 실행 될 때 한번만 하게 된다. CGI형태의 경우는 CGI 프로그램이 실행 될 때마다 매번 일어난다.

PHP를 아파치 모듈로 사용할 때는, PHP의 설정을 Apache configuration 파일과 .htaccess 파일에서 지정하여 설정할 수도 있다.

PHP 3.0에서는, PHP의 지시자(directive)들과 동일한 Apache httpd.conf 지시자가 있다. httpd.conf에서의 지시자 이름은 php3.ini의 지시자 이름 앞에 "php3_"를 붙인 것이다.

PHP 4.0에서는 다음과 같은 몇 개의 Apache 지시자를 사용하여 PHP 설정을 바꿀 수 있다.

php_value name value

지정된 변수에 원하는 값을 설정한다.

php_flag name on|off

Boolean 값을 가지는 설정 옵션의 값을 설정한다.

php_admin_value name value

지정된 변수에 원하는 값을 설정한다. "Admin" 으로 지정된 설정은 main Apache 설정파일에서만 설정이 가능하다. .htaccess 파일에서 그 내용을 변경하는 것은 불가능하다.

php_admin_flag name on|off

Boolean 값을 가지는 설정 옵션의 값을 설정한다.

현재 설정된 설정값은 phpinfo() 함수를 사용하여 확인해 볼 수 있다. 또한 개개의 설정 내용을 확인하기 위해서는 get_cfg_var() 함수를 사용하면 된다.

General Configuration Directives

allow_url_fopen boolean

This option enables the URL-aware fopen wrappers that enable accessing URL object like files. Default wrappers are provided for the access of remote files using the ftp or http protocol, some extensions like zlib may register additional wrappers.

참고: This option was introduced immediately after the release of version 4.0.3. For versions up to and including 4.0.3 you can only disable this feature at compile time by using the configuration switch --disable-url-fopen-wrapper .

asp_tags boolean

일반적인 택 대신에 ASP 스타일의 <% %> 택을 추가적으로 사용할 수 있도록 한다. 또한 변수값 출력문인 <%= $value %> 형태의 지원도 포함한다. 자세한 정보는 Escaping from HTML부분을 참조하자.

참고: ASP-style tags 지원은 3.0.4 버전에서 추가되었다.

auto_append_file string

실행될 PHP 파일 뒤에 자동으로 첨부될 파일의 이름을 적는다. 호출된 파일은 include() 함수를 통해서 포함되므로 include_path 지시자가 적용된다.

none 값을 주게 되면 auto-appending이 disable된다.

참고: 만약 스크립트가 exit()로 종료되게 되면 auto-append는 일어나지 않는다.

auto_prepend_file string

실행될 PHP 파일 앞에 자동으로 첨부될 파일의 이름을 적는다. 호출된 파일은 include() 함수를 통해서 포함되므로 include_path 지시자가 적용된다.

none 값을 주게 되면 auto-prepending이 disable된다.

cgi_ext string

display_errors boolean

이 결정자(determine)는 에러가 생겼을 때 에러출력을 HTML로 화면에 나타낼 것인가 아닌가를 결정한다

doc_root string

PHP의 "root directory"를 지정한다. 값이 있는 경우만 적용된다. PHP가 safe mode로 설정되어 있을 경우, 이 디렉토리 밖에 있는 파일은 사용할 수 없다.

engine boolean

이 지시자는 아파치 모듈 버전의 PHP에서만 유효하다. 이것은 사이트에서 디렉토리 단위나, Virtual 서버 단위를 기반으로 PHP 파싱 기능을 켜거나 끄도록 한다. httpd.conf 파일의 적당한 위치에 engine off라고 명시함으로써, PHP를 가능하거나 불가능하게 할 수 있다.

error_log string

스크립트 에러가 로그될 파일 이름을 정한다. 로그 파일로 시스템 로그를 사용하기 위해서 syslog라는 별도의 값이 이용된다. 유닉스에서는 syslog(3)이고, Windows NT에서는 Event log가 된다. Windows 95에서는 시스템 로그를 지원하지 않는다

error_reporting integer

에러 레포팅의 레벨을 설정한다. 이 파라메타 값은 비트 단위로 설정한다. 다음의 값들 중에 원하는 에러 레포팅 레벨의 값을 더해서 설정하면 된다.

표 3-1. Error Reporting Levels

bit value enabled reporting
1 normal errors
2 normal warnings
4 parser errors
8 non-critical style-related warnings
기본값은 7 이다(normal errors와 normal warnings, parser errors가 레포트 된다).
open_basedir string

PHP가 열어볼 수 있는 파일을 특정 디렉토리 이하로 제한한다.

예를 들어 어떤 스크립트가 fopen이나 gzopen으로 파일을 열려고 할 때 그 파일이 지정된 위치에 있는가 검사한다. 만약 파일이 지정된 디렉티리밖에 있다면, PHP는 이 열기 동작을 거부한다. 모든 symbolic link들은 원래의 이름으로 바뀌어 해석된다. 따라서 이 제한을 피하기 위해 symbolic link를 사용하는 것을 방지할 수 있다.

..이라는 값을 주면 스크립트 파일이 있는 디렉토리가 base-directory로 지정된다.

Windows에서는 세미콜론(;)으로, 다른 OS에서는 콜론(:)으로 구분한다. As an Apache module, open_basedir paths from parent directories are now automatically inherited.

참고: PHP 3.0.7 부터, 한 개 이상의 디렉토리를 지정할 수 있도록 되었다.

기본값은 모든 파일을 열 수 있는 것이다.

gpc_order string

GET / POST / COOKIE 변수들의 해석 순서를 정한다. 기본값은 "GPC"이다. 예를들어 "GP"라고 설정한다면, PHP는 cookie들은 완전히 무시하고, 같은 이름을 가지 POST 변수가 있는 GET 변수는 POST 변수의 값으로 덮어 쓰여지게 된다.

ignore_user_abort string

기본값은 On이다. 만약 이 값이 Off이면, 원격 클라이언트가 실행중 연결을 끊으면 스크립트의 수행이 중단된다. ignore_user_abort().

include_path string

require()include(), fopen_with_path() 함수들이 사용하는 파일을 찾을 위치(path)를 지정한다. string의 형식은 시스템 환경변수 PATH의 설정과 비슷하다. UNIX에서는 콜론으로 나뉘어진 디렉토리들의 리스트이고, Windows에서는 세미콜론을 사용한다.

예 3-1. UNIX include_path

include_path=.:/home/httpd/php-lib

예 3-2. Windows include_path

include_path=".;c:\www\phplib"
기본값은 .이다. (현재 디렉토리만)
isapi_ext string

log_errors boolean

스크립트 에러 메시지가 서버의 에러 로그에 로그되는 가를 정한다. 이 옵션은 서버에 따라 다르게 동작한다.

magic_quotes_gpc boolean

GPC (Get/Post/Cookie) 동작 중에 일어나는 magic_quotes 기능을 설정한다. magic_quotes가 설정되어 있으면 GPC에서 입력된 모든 ' (single-quote)와 " (double quote), \ (backslash), NUL 의 앞에 백슬래시(\)가 자동으로 붙게 된다. 또한, magic_quotes_sybase 같이 설정되어 있으면 '(single-quote)는 백슬래시(\)가 아닌 single-quote(')가 앞에 붙게 된다.

magic_quotes_runtime boolean

만약 magic_quotes_runtime이 설정되어 있다면, database와 text 파일에서 읽어 들이는 모든 데이터에 있는 ' (single-quote)와 " (double quote), \ (backslash), NUL 의 앞에 백슬래시(\)가 붙는다. 또한, magic_quotes_sybase 같이 설정되어 있으면 '(single-quote)는 백슬래시(\)가 아닌 single-quote(')가 앞에 붙게 된다.

magic_quotes_sybase boolean

만약 magic_quotes_gpcmagic_quotes_runtime이 설정되어 있고, magic_quotes_sybase도 같이 설정되어 있으면 '(single-quote)는 백슬래시(\)가 아닌 single-quote(')가 앞에 붙게 된다.

max_execution_time integer

PHP 구문해석기(parser)가 한 스크립트를 처리하는데 걸리는 최대 시간을 초단위로 설정한다. 이것은 문제가 있는 스크립트로부터 서버가 모두 점유당하는 것을 방지하는데 도움이 된다. 기본값은 30이다.

memory_limit integer

한 스크립트가 할당받을 수 있는 메모리의 최대 크기를 지정한다. 이것은 문제가 있는 스크립트로부터 서버 전체의 메모리가 잡혀 먹히는 것을 방지한다.

nsapi_ext string

register_globals boolean

EGPCS (Environment, GET, POST, Cookie, Server) 변수들을 전역 변수로 설정할 것인가를 정한다. 사용자의 데이타를 스크립트의 전역 변수 영역에 난잡하게 쌓아놓기를 원하지 않는다면 이 설정은 꺼놓는 것이 좋다. 이 설정은 track_vars 설정를 고려해서 사용하면 매우 유용하게 사용할 수 있다. track_vars설정을 켜 놓으면 사용자의 EGPCS 변수들은 모두 $HTTP_ENV_VARS, $HTTP_GET_VARS, $HTTP_POST_VARS, $HTTP_COOKIE_VARS, $HTTP_SERVER_VARS 배열을 통해 전역 영역(global scope)에서 접근가능하게 된다.

short_open_tag boolean

PHP의 Open 태그로 short form ()의 사용을 허가하거나 불허한다. 만약 여러분이 PHP와 XML을 함께 사용한다면 short form의 사용을 불가능하게 하여야 한다. 짧은 태그의 사용이 불가능하다면, PHP의 Open 태그로는 long form()만을 사용하여야 한다.

sql.safe_mode boolean

track_errors boolean

이 지시자가 설정되어 있으면 $php_errormsg이라는 전역 변수에 마지막으로 발생한 에러의 메시지가 들어있게 된다.

track_vars boolean

이 지시자가 설정되면, $HTTP_ENV_VARS, $HTTP_GET_VARS, $HTTP_POST_VARS, $HTTP_COOKIE_VARS, $HTTP_SERVER_VARS 의 전역 associative 배열에 모든 Environment, GET, POST, Cookie, Server 변수 들의 이름과 값을 저장한다.

PHP 4.0.3에서는, track_vars는 항상 On으로 설정된다.

upload_tmp_dir string

파일 업로드시 파일을 저장할 임시 디렉토리를 지정한다. PHP가 동작하게되는 User ID에 대해 쓰기 권한이 있어야 한다.

(역자주: . 이나 ./tmp 등도 가능하며, .의 경우 해당 스크립트가 존재하는 디렉토리를 의미한다. safe mode에서 file upload를 위해서는 ./tmp등을 사용하여야 한다.)

user_dir string

PHP 파일들이 위치한 홈 디렉토리의 base를 지정한다. (Ex. public_html).

warn_plus_overloading boolean

이것이 설정되면, 문자열에 더하기(+) 연산자가 사용될 때 PHP가 주의 메시지를 출력하게 만든다. 이 옵션은 스크립트의 더하기 연산자를 문자열 concatenator(.)로 다시 작성하는데 도움을 준다.

Mail Configuration Directives

SMTP string

PHP가 사용할 SMTP 서버의 DNS 이름이나 IP 번호. Windows환경에서 mail() 함수로 편지를 보내려면 이 옵션을 반드시 설정해 주어야 한다

sendmail_from string

Windows환경에서 PHP가 편지를 보낼 때 "From:"에 사용될 메일 어드레스.

sendmail_path string

sendmail 프로그램을 찾을 Path. 보통은 /usr/sbin/sendmail이나 /usr/lib/sendmail에 있다. configure 프로그램이 sendmail의 위치를 찾아 이것을 기본값으로 설정해 주지만, 그것이 잘되지 않았거나 오류가 있을 때, 여러분은 여기서 직접 지정해 줄 수 있다.

sendmail을 사용하지 않는 시스템의 경우 현재 제공되고 있는 다른 메일 시스템의 sendmail 호환 명령(sendmail wrapper/replacement)으로 설정해 주어야 한다. 예를들어 Qmail 사용자는 보통 /var/qmail/bin/sendmail로 설정해 주면 된다.

Safe Mode Configuration Directives

safe_mode boolean

PHP를 안전 모드(safe mode)로 작동되도록 한다. 자세한 내용은 Security chapter를 살펴보기 바란다.

safe_mode_exec_dir string

PHP가 안전 모드에서 작동할 때, system() 이나 기타 다른 프로그램을 실행 시키는 함수들은 이 디렉토리에 있는 프로그램이 아니면 작업을 거부한다.

Debugger Configuration Directives

debugger.host string

디버거가 사용할 host의 DNS name 이나 IP address

debugger.port string

디버거가 사용할 Port 번호.

debugger.enabled boolean

디버거를 작동시킨다.

Extension Loading Directives

enable_dl boolean

이 지시자는 PHP를 아파치 모듈로 실행할 때만 효력을 가진다. PHP에서 dl()을 사용하여 extension을 dynamic loading하는 기능을 virtual server나 디렉토리 별로 가능하게 하거나 불가능하게 할 수 있다

dynamic loading을 불가능하게 하는 첫번째 이유는 보안상의 이유이다. dynamic loading에서는 모든 safe_mode 설정과 open_basedir 설정이 무시될 수 있기 때문이다.

기본값은 모든 dynamic loading을 허용하는 것이다. 단, safe-mode를 사용하는 중에는 항상 dl()의 사용이 불가능해 진다.

extension_dir string

동적으로 적재 가능한(dynamically loadable) extension을 찾을 디렉토리를 설정한다

extension string

PHP가 시작될 때 로드할 dynamically loadable extension들을 설정한다.

MySQL Configuration Directives

mysql.allow_persistent boolean

영구적인(persistent) MySQL 접속을 허가한다.

mysql.default_host string

데이터베이스 서버에 연결할 때 별도의 host 지정이 없을 경우 사용되는 기본 서버 호스트를 지정한다.

mysql.default_user string

데이터베이스 서버에 연결할 때 별도의 사용자 ID 지정이 없을 경우 사용되는 기본 사용자 ID를 지정한다.

mysql.default_password string

데이터베이스 서버에 연결할 때 별도의 암호 지정이 없을 경우 사용되는 기본 암호를 지정한다.

mysql.max_persistent integer

프로세스당 영구적인(persistent) MySQL 접속의 최대 개수

mysql.max_links integer

영구적인(persistent) 접속을 포함한 프로세스당 MySQL 접속의 최대 개수

mSQL Configuration Directives

msql.allow_persistent boolean

영구적인(persistent) mSQL 접속을 허가한다.

msql.max_persistent integer

프로세스당 영구적인(persistent) mSQL 접속의 최대 개수

msql.max_links integer

영구적인(persistent) 접속을 포함한 프로세스당 mSQL 접속의 최대 개수

Postgres Configuration Directives

pgsql.allow_persistent boolean

영구적인(persistent) Postgres 접속을 허가한다.

pgsql.max_persistent integer

프로세스당 영구적인(persistent) Postgres 접속의 최대 개수

pgsql.max_links integer

영구적인(persistent) 접속을 포함한 프로세스당 Postgres 접속의 최대 개수

SESAM Configuration Directives

sesam_oml string

SESAM 드라이버 모듈을 포함하고 있는 BS2000 PLAM 라이브러리의 이름 SESAM 함수를 사용하려면 꼭 지정해 주어야 한다. 그리고, BS2000 PLAM 라이브러리는 아파치 서버의 사용자 ID로 읽을 수 있도록 ACCESS=READ,SHARE=YES로 설정해야 한다.

sesam_configfile string

SESAM 어플리케이션 설정 파일의 이름. SESAM 함수를 사용하려면 꼭 지정해 주어야 한다. BS2000 파일은 아파치 서버의 사용자 ID로 읽을 수 있어야 한다.

SESAM 어플리케이션 설정 파일은 보통 다음과 같은 내용으로 설정되어 있다. (SESAM reference manual을 살펴보라) :

CNF=B
NAM=K
NOTYPE
sesam_messagecatalog string

SESAM message catalog 파일의 이름. 대부분의 경우 이 지시자는 필요 없다. 단지 SESAM message 파일이 BS2000 message 파일 테이블에 설정되어 있지 않은 경우에 이 지시자를 사용하여 설정한다.

message catalog는 아파치 서버의 사용자 ID로 읽을 수 있도록 ACCESS=READ,SHARE=YES로 설정해야 한다.

Sybase Configuration Directives

sybase.allow_persistent boolean

영구적인(persistent) Sybase 접속을 허가한다.

sybase.max_persistent integer

프로세스당 영구적인(persistent) Sybase 접속의 최대 개수

sybase.max_links integer

영구적인(persistent) 접속을 포함한 프로세스당 Sybase 접속의 최대 개수

Sybase-CT Configuration Directives

sybct.allow_persistent boolean

영구적인(persistent) Sybase-CT 접속을 허가한다.

sybct.max_persistent integer

프로세스당 영구적인(persistent) Sybase-CT 접속의 최대 개수. 기본값은 -1로 제한없음을 의미한다.

sybct.max_links integer

영구적인(persistent) 접속을 포함한 프로세스당 Sybase-CT 접속의 최대 개수. 기본값은 -1로 제한없음을 의미한다.

sybct.min_server_severity integer

severity를 가지는 서버 메시지 개수가 sybct.min_server_severity에 설정한 값보다 크거나 같아지면 warning을 레포트한다. 이 값은 스크립트에서 sybase_min_server_severity()함수를 통해 설정할 수도 있다. 기본 값은 10이다.

sybct.min_client_severity integer

severity를 가지는 클라이언트 라이브러리 메시지 개수가 sybct.min_server_severity에 설정한 값보다 크거나 같아지면 warning을 레포트한다. 이 값은 스크립트에서 sybase_min_client_severity()함수를 통해 설정할 수도 있다. 기본 값은 10이다.

sybct.login_timeout integer

서버에 연결을 시도하고 기다리는 최대 시간. 단위는 초이고 지정된 시간에 연결이 완료되지 못하면 연결 동작은 실패하는 것이다. 만약 연결시도 중 max_execution_time의 설정을 초과하게 되면 스크립트는 연결 실패를 알리기 전에 종료되어 버린다. 기본값은 1분이다

sybct.timeout integer

select_db나 query등의 명령을 주고 응답을 기다리는 최대 시간. 단위는 초이고 지정된 시간안에 응답이 없으면 이 동작은 실패하는 것이다. 만약 연결시도 중 max_execution_time의 설정을 초과하게 되면 스크립트는 동작 실패를 알리기 전에 종료되어 버린다. 기본값은 없고, 무한정 기다리는 것이다.

sybct.hostname string

sp_who에 의해 표시될 연결을 요청하는 host의 이름. 기본값은 없다.

Informix Configuration Directives

ifx.allow_persistent boolean

영구적인(persistent) Informix 접속을 허가한다.

ifx.max_persistent integer

프로세스당 영구적인(persistent) Informix 접속의 최대 개수

ifx.max_links integer

영구적인(persistent) 접속을 포함한 프로세스당 Informix 접속의 최대 개수

ifx.default_host string

ifx_connect()ifx_pconnect() 함수에 호스트가 지정되지 않았을 경우 사용할 기본 호스트.

ifx.default_user string

ifx_connect()ifx_pconnect() 함수에 user id가 지정되지 않았을 경우 사용할 기본 user id.

ifx.default_password string

ifx_connect()ifx_pconnect() 함수에 password가 지정되지 않았을 경우 사용할 기본 password.

ifx.blobinfile boolean

blob 칼럼을 파일에서 반환하려 한다면 true를, 메모리에서 반환하려면 false를 설정한다. 이 설정은 ifx_blobinfile_mode() 함수를 사용하여 실행중에 변경할 수 있다.

ifx.textasvarchar boolean

select 문에서 TEXT 컬럼의 내용을 일반적인 문자열로 반환하고 싶다면 True, blob id 파라메터를 사용하고 싶다면 False를 설정한다. 이 설정은 ifx_textasvarchar()함수를 사용하여 실행 중 변경할 수 있다.

ifx.byteasvarchar boolean

select 문에서 BYTE 컬럼의 내용을 일반적인 문자열로 반환하고 싶다면 True, blob id 파라메터를 사용하고 싶다면 False를 설정한다. 이 설정은 ifx_textasvarchar()함수를 사용하여 실행 중 변경할 수 있다.

ifx.charasvarchar boolean

데이터를 가져올 때 CHAR 컬럼의 뒤쪽 공백을 자동으로 잘라내려면 True를 설정한다

ifx.nullformat boolean

NULL 컬럼에 대하여 "NULL"이라는 문자열을 반환하려면 True, 공백 문자열("")을 반환하려면 False를 설정한다. 이 설정은 ifx_nullformat()함수를 사용하여 실행 중 변경할 수 있다.

BC Math Configuration Directives

bcmath.scale integer

모든 bc 수학 함수들이 사용하는 십진 자리수.

Browser Capability Configuration Directives

browscap string

browser 기능(capabilities) 파일의 이름. See also get_browser().

Unified ODBC Configuration Directives

uodbc.default_db string

odbc_connect()odbc_pconnect()에서 ODBC data source 가 지정되지 않았을 때 사용할 값를 지정한다

uodbc.default_user string

odbc_connect()odbc_pconnect()에서 User name이 지정되지 않았을 때 사용할 값를 지정한다

uodbc.default_pw string

odbc_connect()odbc_pconnect()에서 Password가 지정되지 않았을 때 사용할 값를 지정한다

uodbc.allow_persistent boolean

영구적인(persistent) ODBC 접속을 허가한다.

uodbc.max_persistent integer

프로세스당 영구적인(persistent) ODBC 접속의 최대 개수

uodbc.max_links integer

영구적인(persistent) 접속을 포함한 프로세스당 ODBC 접속의 최대 개수