Home | Data Center | Contact US | Login

제목 php.ini 환경설정
첨부파일 php.ini 환경설정.pdf 작성일 2008-05-13 11:29:03

기술지원부 : 삼수 kiss@nextline.co.kr

 

PHP 환경설정(php.ini)

 

설정파일 경로 : /usr/local/lib/php.ini

 

php.ini 은 여러가지 세셕이 존재하지만 [자주 사용되는 섹션] 목록 이외에는 기본값을 유지하여 사용하시면 됩니다. php.ini 설정 변경 시 apache을 재 가동하여 설정내용을 적용하여 주시기 바랍니다.

 

[자주 하시는 질문]

[보안설정]

 

[자주 사용되는 섹션]

[1] 기본설정

[2] Resource Limits

[3] Error handling and logging

[4] Data Handling

[5] File Uploads

[6] Session

 

[기본값 유지 섹션]

[1] Assertion

[2] Fopen wrappers

[3] Dynamic Extensions

[4] Syslog

[5] Java

[6] SQL

[7] ODBC

[8] MySQL

[9] mSQL

[10] PostgresSQL

[11] Sybase

[12] Sybase-CT

[13] bcmath

[14] browscap

[15] Informix

[16] Paths and Directories

[17] Sockets

[18] Zend

 

 

[자주 하시는 질문]

 

1. php로 파일 업로드 처리시 용량제한 설정은 어떻게 하나요?

 

file_uploads = On

파일 업로드를 허용할지 설정하는 부분으로 당연히 ON으로 되어 있어야 합니다.

 

upload_max_filesize = 20M

최대 업로드 파일 사이즈입니다. 원하시는 용량만큼 설정하시면 됩니다.

 

post_max_size = 20M

Post방식으로 넘겨질 최대 데이터 사이즈입니다.

 

max_execution_time = 300

최대 실행시간을 설정합니다. 대용량 파일일수록 시간이 많이 걸리니 당연 실행시간을 늘려 주어야 합니다. 0으로 설정하면 무한대입니다.

 

memory_limit = 20M

스크립트 마다의 최대 메모리 소비량입니다. php 업로드 용량 설정은 위의 부분을 수정하여 주시면 됩니다. 크기를 memory_limit > post_max_size > upload_man_filesize 순으로 설정 해야 보다 정확합니다. upload_max_filesize, post_max_size, memory_limit는 보통 같은 값으로  설정을 해도 무관합니다.

 

2. 홈페이지에서 php스크립트 error가 출력되는데 임시로 보이지 않게 하는 방법은 없나요?

 

display_errors = on

php.ini 화일에서 위의 옵션을 off으로 설정하여 주시면 php 스크립트 error가 발생하여도

웹상에서는 보이지 않게 됩니다.

 

3. php 버전업데이트를 하였는데 변수 값이 정상적으로 넘어가지  않습니다.

 

register_globals = On

register_globals 옵션 설정을 On으로 설정하여 보시기 바랍니다.

GET, POST, COOKIE, SESSION 의 구분없이 변수명을 곧바로 이용할 수 있습니다.

php 의 상위버전부터는 보안상의 이유로 GET, POST, COOKIE, SESSION 등

변수명을 바로 이용하지 못하도록 php.ini 에 register_globals옵션이 off으로 설정되어 있습니다.

 

4. 로그아웃 하지 않는 경우엔 세션이 유지될 수 있도록 하고 싶습니다.

 

session.cookie_lifetime = 0

session.cookie_lifetime의 값을 0으로 설정하여 보시고 이방법에서도 적용이 되지 않는다면 php 설치시 컴파일 옵션에 --enable-trans-id 의 옵션을 추가하여 주시고

session.use_cookies의 옵션을 1으로 설정하여 주시기 바랍니다.

보통은 --enable-trans-id의 컴파일 옵션을 주지 않아도 session.use_cookies의 옵션을 1으로 주는것만으로도 설정이 이루어지나 확실한 방법은 php를 --enable-trans-id의 옵션을 주어 설치하는것이 좋습니다. 여러가지 방법이 있지만 php.ini 부분의 설정은 위와같이 설정하시면 세션이 끊기지 않습니다.

 

5. HTTP로 파일 업로드가 되지 않습니다.

 

file_uploads = On

file_uploads의 옵션이 On으로 설정되어 있는지 확인하여 보시기 바랍니다.

file_uploads의 옵션은 웹상에서 http프로토콜을 이용하여 파일 업로드의 허용여부를 설정합니다.

 

[보안설정]

 

safe_mode - Off

safe_mode On 일 경우 파일을 이 디렉토리 및 그 하위로부터 include 하는 경우는 UID/GID 의 체크가 스킵됩니다. 이러한 디렉토리는 include_path 에 포함되도록 하거나 또는 include 시에 절대 경로를 사용해야 합니다. exec관련의 함수를 통해 실행할 수 있는 권한을 safe_mode_include_dir에 있는 실행파일만으로 설정합니다.

 

이 값을 On으로 설정하면 PHP에 의한 파일 액세스 시 권한을 점검합니다. 웹 프로그램이 /etc/passwd 등 주요 시스템 파일을 액세스 하지 못하도록 제한할 수 있으나, 이로 인해 웹 프로그램이 정상 작동하지 않을 수 있으니 주의하여야 합니다.

 

display_errors = On

Error Page 또는 Warning Page 노출을 피하기 위한 것입니다. 공격자들은 일부러 에러를 발생하여 서버에 대한 정보를 확인합니다. 이를 막기 위해 아래와 같이 수정합니다.

On 으로 했을 시 웹사이트의 파일 정보나 데이타베이스 스키마등의 시큐리티 정보를 접속 사용자에게 표출 될 수도 있기 때문입니다. 이 옵션을 On으로 설정하는 경우 PHP 실행 중 발생하는 에러 정보가 사용자 브라우저에 반환됩니다. 이 정보에는 웹 서버 상의 절대 경로, SQL 쿼리 등 공격자에게 유용한 정보가 포함되어 있으므로, 반드시 이 값을 Off로 설정하여야 합니다.

 

register_globals = On

혹시라도 낮은 버전을 사용하는 경우는 이 부분이 디폴트로 On 되어있는데, 특별한 이유가 없다면 Off 로 설정하는 것이 좋습니다.

이 값을 On으로 설정하면 PHP가 입력으로 받아들이는 값(환경 변수, GET, POST, 쿠키, Server 변수)을 무조건 전역(Global)변수로 다루게 됩니다. 전역 변수가 고전적인 C 프로그램에서 얼마나 많은 버그를 발생시켰는지 아신다면, 이 값을 Off로 설정하는 것이 왜 바람직한지 짐작할 수 있을 것입니다. 전역 변수는 프로그램의 동작 중 어디서나 변수값이 바뀔 수 있기 때문에, 웹 프로그램의 인자 조작, 예기치 못한 오동작 등 다양한 보안 문제가 발생할 수 있습니다. PHP 4.2.0 이후로는 보안상의 문제를 고려해 디폴트로 Off로 설정되어 나오지만, 아직 많은 프로그램이 On 상태에서만 작동하도록 개발되어 있어 서버 관리자들이 On으로 변경하는 경우가 많습니다. On 값에 의존하는 프로그램이 있으면 개발자에게 해당 문제를 알리고 수정을 요구하시는 것이 바람직합니다

 

expose_php - Off

웹 브라우저의 요청에 대해 PHP 정보를 보내지 않습니다. 그러나 PHP 확장자 설정을 변경하는 등 추가적인 조치를 취하지 않습니다면, 여러분이 PHP를 사용 중이라는 사실이 손쉽게 노출될 수 있으므로 보안상 큰 도움이 되지 않습니다.

 

file_uploads - Off

해당 사이트의 PHP 프로그램들이 파일 업로드를 필요로 하지 않습니다면 이 값을 Off로 설정하여, 파일 업로드 공격의 발생 가능성을 낮출 필요가 있습니다. 파일 업로드를 통한 사이트 장악은 매우 빈번하게 발생합니다.

allow_url_fopen Off 이 옵션을 On으로 설정하면 파일 액세스 시 외부 사이트의 파일을 불러올 수 있습니다. 이 기능은 분산 컴퓨팅과 개발, 관리 측면에서 매우 편리하지만, 외부 공격자에 의해 서버를 침탈당하게 되는 주요 원인이 되어 왔습니다. 특히 include(), require() 계열의 함수 사용시 심각한 보안 상의 문제를 유발하게 됩니다. 특수한 경우를 제외하고는 이 기능이 필요치 않으므로 이 옵션을 반드시 Off로 설정하시기 바랍니다.

 

magic_quotes_gpc = Off

Sql Injection 과 같은 공격을 막는데 도움이 됩니다. GET/POST/Cookie 의 입력 데이터에 관해서 특수 문자를 이스케이프 Get 방식으로 입력되는 ".." 는 일반적으로 필터링 하도록 설계되고 있습니다. 쉘에는 ".\./" ".."과 동일하게 간주됩니다. 특수문자에 대한 전체적인 제한이 필요하다.

 

이 옵션을 On으로 설정하면 PHP가 입력으로 받아들이는 값(환경 변수, GET, POST, 쿠키, Server 변수)에 단일 인용 부호('), 이중 인용 부호("), 백슬래쉬(), 널문자(NUL)가 포함된 경우 자동으로 해당 문자 앞에 백슬래쉬를 추가하여 특수 문자 처리를 합니다. 이로 인해 웹 프로그램의 인자를 변경하는 SQL 구문 삽입(injection) 공격의 성공률을 낮춰줍니다. 이 값을 Off로 설정하면 /etc/passwd%00 과 같이 널 문자를 사용해 시스템 상의 임의의 파일을 열람할 수 있으니 반드시 On으로 설정하여야 합니다.

 

magic_quotes_sybase - Off

Sybase 사용자의 정상적인 DB 접속을 위해 만들어진 기능이지만,

이 기능은 magic_quotes_gpc 설정을 무력화합니다. 여러분이 Sybase 사용자가 아니라면 반드시 이 값을 Off로 설정하여야 합니다. Sybase 사용자는 PHP가 입력으로 받아들이는 모든 변수에 대해 addslashes() 함수를 사용하여 명시적으로 특수 문자 처리를 하여야 합니다.

 

open_basedir - 디렉터리

이 옵션에 적절한 디렉터리를 설정하면, PHP의 파일 액세스 시 지정된 디렉터리(및 하위 디렉터리)를 벗어난 파일은 액세스 할 수 없게 됩니다.

 

allow_url_fopen = On

URL(http:// ftp:// )을 파일로서 취급할지를 결정합니다.

많이 발생하고 있는 대규모 홈페이지 변조는 php의 외부사이트 소스 실행기능을 이용하여 악의적인 프로그램을 실행시킴으로써 발생시킵니다.

 

필요 시 특정 홈페이지만 외부 사이트의 소스 실행 허용을 설정할 수 있습니다.

    <VirtualHost xxx.xxx.xxx.xxx>

    ServerAdmin webmaster@nextline.co.kr

    DocumentRoot /home/nextline/public_html

    ServerName nextline.co.kr

    php_admin_flag allow_url_fopen On     <---------- 라인 추가

    ErrorLog logs/nextline.co.kr-error_log

    CustomLog logs/nextline.co.kr-access_log common

    </VirtualHost>

 

[자주 사용되는 섹션]

 

[1] 기본설정

engine = On

Apache 상에서 PHP 의 스크립트 언어 엔진을 유효하게 합니다.

 

short_open_tag = On

<? 태그의 사용을 허가합니다.

허가하지 않는 경우는 <?php <!-- script-x 태그만 인식되고 <? 태그는 인식하지 않습니다.

 

asp_tags = Off

ASP 스타일의 <% %> 태그를 허가합니다.

 

precision    =  12

부동 소수점을 표시할 때의 유효 자리 수를 설정합니다.

 

y2k_compliance = On

강제적으로 2000 년 문제를 대응하게 합니다.

(대응하고 있지 않는 브라우저의 경우는 문제를 일으킵니다)

 

output_buffering = Off

출력 버퍼를 4KB 로 설정합니다. 출력 버퍼링을 유효하게 하면 일반적으로는 기입 회수나 가끔 패킷의 송출 횟수가 줄어들어 퍼포먼스의 향상으로 연결됩니다. 이 지시문에 의해 어느 정도 퍼포먼스를 향상 시키지만 사용하고 있는 웹서버나 스크립트에 크게 의존합니다.

 

zlib.output_compression = Off

페이지 압축의 사용 여부. 이 옵션을 php.ini나 아파치 설정에서 "On"으로 지정하면,

브라우저가 "Accept-Encoding: gzip"이나 "deflate" 헤더를 보냈을때, 페이지를 압축합니다. "Content-Encoding: gzip"(혹은 "deflate")과 "Vary: Accept-Encoding" 헤더을 출력에 추가합니다. 헤더를 전송하기 전에 ini_set()을 사용해서 스크립트 내부에서 무효화할 수 있습니다. "Content-Type: image/" 헤더를 출력해도 압축을 무효화합니다(넷스케이프 버그로 인해) 이미지 content-type 헤더 호출을 추가한 뒤에 "ini_set('zlib.output_compression', 'On')"을 추가하여 다시 활성화 할 수 있습니다.

boolean "On"/"Off" 외에 정수값을 지정하여, 출력 버퍼 크기를 설정할 수 있습니다.

(기본값은 4KB) 'On'으로 지정했을 때, output_handler는 zlib.output_handler를 사용하지 말고, 비어있어야 합니다!

 

zlib.output_handler =

zlib.output_compression을 활성화 했을 때, 추가 출력 핸들러를 지정할 수 없습니다.

이 설정은 output_handler와 동일한 다른 명령입니다.

 

implicit_flush = Off

implicit_flush On 으로 설정하면 출력 층에 대해 각 출력 블록마다 자동적으로 플래시를 하게 됩니다. 이것은 즉, print(), echo() 및 각 HTML 블록의 뒤에 PHP 함수의 flush()를 부르는 것과 같은 내용이다. 이 옵션을 유효하게 하면 퍼포먼스의 문제와 밀접하게 관계되므로, 일반적으로는 디버그 용도만의 사용에 한정해야 할 것이다.

 

unserialize_callback_func=

php 엔진에서의 출력을 zlib 라이브러리를 이용하여 압출할 것인지를 지정합니다.

이 값이 On으로 되어 있다면 output_handler는 반드시 비어있어야 합니다.

 

allow_call_time_pass_reference = On

함수 사용시에, 변수를 강제적으로 참조 하는 것을 금지합니다. 이것을 PHP4 스타일로 실시하기 위해서는, 함수 정의 시에 관련하는 인수를 참조 하도록 합니다.

 

safe_mode_include_dir =                                                            

safe_mode On 의 경우 파일을 이 디렉토리 및 그 하위로부터 include 하는 경우는 UID/GID 의 체크가 스킵 됩니다. (이러한 디렉토리는 include_path 에 포함되도록 하거나 또는 include 시에 절대 경로를 사용해야 합니다.)

 

safe_mode_gid - Off

위의 설정과 함께 파일 액세스 시 권한을 점검합니다. 이로 인해 웹 프로그램이 정상 작동하지 않을 수 있으니 주의하여야 합니다.

 

safe_mode_exec_dir - 디렉터리

이 옵션을 지정하면 system(), exec(), passthru() 등 외부 명령어 실행 시 지정된 디렉터리에 존재하지 않는 프로그램은 실행할 수 없게 됩니다. 공격자가 임의로 업로드 한 공격 도구나 wget, xterm 등 공격에 사용될 만한 명령어를 실행할 수 없도록 막을 수 있습니다.

 

safe_mode_allowed_env_vars = PHP_

특정 환경 변수를 설정하는 것은 보안에 문제가 될 수 있습니다. 이 지시자는 콤마-구분자 리스트의 앞첨자(prefix)를 포함합니다. 안전 모드에서, 유저는 여기서 제공되는 앞첨자로

시작하는 이름을 갖는 환경변수만 변경할 수 있으며 기본값으로, 유저는 PHP로 시작하는 환경 변수만 설정할 수 있습니다.

 

safe_mode_protected_env_vars = LD_LIBRARY_PATH

이 지시자는 엔드 유저가 putenv()를 사용하여 변경할수 없는 콤마-구분자 리스트의 환경 변수를 포함합니다. 이 변수들은 safe_mode_allowed_env_vars에 설정되어 있어도 보호 될수 있습니다.

 

disable_functions =

이 지시문에서는 특정의 함수를 시큐리티적인 이유로써 사용할 수 없게 할 수 있다. 이것은 인수로서 fopen,fwrite , 단락의 리스트로 설정합니다. 이것은 safe_mode On/Off 에 관계없이 항상 유효하게 됩니다.

 

disable_classes =

보안적인 측면 때문에 특정 클래스를 비활성화 시켜줍니다.     

컴마로 구분된 함수명의 리스트를 취합니다. (httpd.conf에서는 설정할수 없습니다)

 

highlight.string  = #DD0000

highlight.comment = #FF9900

highlight.keyword = #007700

highlight.bg      = #FFFFFF

highlight.default = #0000BB

highlight.html    = #000000

문법의 하이라이트 표시할 때의 색의 지정. <font color="??????"> 의 것이라면 설정 가능하다.

 

[2] Resource Limits

max_execution_time = 30    

스크립트 실행 시간을 초단위로 설정합니다.(최대 실행시간)

max_input_time = 60   

스크립트 페이지로 제어가 넘어 오기 전에 php 엔진이 데이타를 업로더 받는 시간을 설정합니다.

 

memory_limit = 8M     

스크립트 실행 때 메모리 사용을 설정합니다.

 

[3] Error handling and logging

error_reporting = E_ALL & ~E_NOTICE

디폴트에서는 PHP E_NOTICE 형의 에러를 억제합니다. 이러한 에러 메세지는 중대하지 않는 에러에 대해서도 표출 되지만 그것들은 보다 큰 문제의 징조일 수도 있다.

 

display_startup_errors = Off

display_errors 가 On 의 경우여도 PHP 의 시작시의 에러는 표시되지 않습니다.

디버그시를 제외해 display_startup_errors 는 Off 인 채로 설정해 두는 것을 추천합니다.

 

log_errors = Off

이 옵션을 On으로 설정하는 경우 PHP 실행 중 발생하는 경고나 에러 정보를 error_log 에서 지정한 파일에 기록하게 됩니다. 해당 파일에 기록할 수 없는 경우 아파치 웹 서버의 에러 로그 파일에 기록하게 됩니다. 프로그램의 동작 상태 및 공격자의 공격 동향을 파악하기 위해서 반드시 On으로 설정하여야 합니다.

 

track_errors = Off

$php_errormsg에 마지막의 에러나 경고 메시지를 저장합니다.

 

html_errors = Off

에러 메세지중에 HTML 태그를 넣지 않게 합니다.

 

error_prepend_string = "<font color=ff0000>"

에러 메세지의 전에 출력하는 캐릭터 라인

 

error_append_string = "</font>"

에러 메세지의 뒤에 출력하는 캐릭터 라인

 

error_log = filename

PHP 실행 중 발생하는 경고나 에러 정보를 기록할 파일을 지정하는 옵션 입니다.

 

error_log = syslog

syslog 에 에러를 기록합니다.. (NT 에서는 이벤트 로그, Windows 95 에서는 무효)

 

[4] Data Handling

arg_separator.output = "&amp;"

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

 

arg_separator.input = ";&"

입력 URL 를 퍼스 해 변수로 하기 위해서 PHP 로 사용되는 단락 문자의 리스트 입니다.

 

variables_order = "EGPCS"

이 지시문은 PHP 가 등록하는 GET, POST, Cookie 환경 변수 (순서에 G, P, C, E, S, 자주 EGPCS 나 GPC 등으로 불린다)에 있어서의 순서를 규정합니다. 등록은 왼쪽에서 오른쪽을 향해 행해져 새로운 값은 낡은 값을 덮어 씌웁니다. 환경 변수를 $HTTP_ENV_VARS[] 에 등록 하지 않게 합니다. 환경 변수에 사용하려면 getenv()를 사용하도록 합니다.

 

register_argc_argv = On

argc, argv 변수 (GET 의 정보에 포함될 가능성이 있다.) 를 선언할지 말지를 규정합니다. 이러한 변수를 사용하지 않으면 퍼포먼스를 개선합니다.

 

post_max_size = 8M

PHP 가 받아들이는 일을 할 수 있는 POST 데이터의 최대 사이즈를 설정합니다.

 

gpc_order = "GPC"

GET/POST/COOKIE 변수들이 PHP 스크립트로 넘겨지는 순서를 정합니다.

기본값 : GCP이며 GP호 정의하면 Cookie 값은 모두 제외되어 PHP 스크립트에서 쿠키 변수가 없어집니다.

이 지시문은 추천 되지 않습니다.. 대신에 variables_order 를 사용합니다.

 

magic_quotes_runtime = Off   

GET , POST , COOKIE 등으로 전달된 데이터에 ‘ " / 등의 문자가 존재할 경우 자동으로 ()역슬래쉬를 붙일지 여부를 설정합니다.

이것은 각 문자를 스크립트와 구별해서 인식시키기 위해 필요한 부분입니다.

 

auto_prepend_file =

INCLUDE와 비슷한 부분이고, 스크립트의 처음 부분에 포함될 파일명을 적어 줍니다.

(PHP 문서의 전후에 파일을 자동적으로 추가합니다.)

요청된 PHP 스크립트가 실행되기 전에 자동으로 미리 실행되어야 할 파일을 지정합니다.

auto_append와 마찬가지로 include()가 호출되는 것이기 때문에 include_path항목(옵션)에 따라 파일을 찾는 위치가 달라질 수 있습니다. none 값은 자동 미리 실행(auto prepend) 기능을 사용하지 않습니다.

 

auto_append_file =

auto_prepend_file와 같으며 마지막 부분에 포함될 파일명을 적어 줍니다.

(PHP 문서의 전후에 파일을 자동적으로 추가합니다.)

자동으로 PHP 스크립트의 제일 마지막에 여기서 지정한 파일을 include() 합니다. PHP가 자동으로 해주는 것이지만 실제로는 include()와 동일하게 동작하기 때문에

include_path가 사용됩니다. none값으로 정의하면 자동 덧붙임(Aout Appending) 기능을 사용하지 않습니다. 또한 실행되고 있던 스크립트가 exit() 문으로 끝나면 자동 덧붙임도 샐행되지 않습니다.

 

default_mimetype = "text/html"

PHP 의 4.0b4 현재의 디폴트에서는,

Content-type: 헤더로 항상 문자 인코딩을 출력합니다. charset 의 송신을 시키고 싶지 않으면, 설정값을 비웁니다.

 

default_charset = "iso-8859-1"

PHP 4.0b4 현재의 디폴트에서는, Content-type: 헤더로 항상 문자 인코딩을 출력합니다. charset 의 송신을 시키고 싶지 않으면, 설정값을 비운다. 디폴트는 text/html 이다.

 

always_populate_raw_post_data = On

PHP 스크립트에서 WebDAV http 요청(, PROPFIND, PROPPATCH, MOVE, COPY 등등..)

핸들링 할 있게 합니다.

이 요청들로부터 포스트 데이터를 얻기 원한다면,

always_populate_raw_post_data 설정해야 합니다.

 

[5] File Uploads

file_uploads = On

해당 사이트의 PHP 프로그램들이 파일 업로드를 필요로 하지 않는다면 이 값을 Off로 설정하여, 파일 업로드 공격의 발생 가능성을 낮출 필요가 있습니다. 파일 업로드를 통한 사이트 장악은 매우 빈번하게 발생합니다.

 

upload_tmp_dir =

파일이 업로드 될 디렉토리를 설정합니다. 기본적으로 /tmp 디렉토리로 업로드 됩니다.

 

upload_max_filesize = 2M

업로드 할 수 있는 최대 파일 크기를 설정합니다. post_max_size보다 작거나 같게

설정하면 되며 post_max_size보다 크게 주는 건 의미가 없습니다.

 

[6] Session

session.save_handler = files

세션과 해당 데이터를 저장하는 방식을 설정하는 부분입니다. 기본적으로 파일 방식이며 세션 항목은 이 책에 사용되는 회원제 부분에서 사용됩니다.

 

session.save_path = /tmp

세션 전달 인수를 정의 하는 부분이며 디폴트인 파일 방식일 경우 해당 파일의 경로를 적어 줍니다.

 

session.use_cookies = 1

세션에서 쿠키를 사용할 것인지를 지정합니다.

 

session.name = PHPSESSID

쿠키 이름으로 사용되어질 세션 이름을 설정합니다. 디폴트는 PHPSESSID입니다.

 

session.auto_start = 0

세션 요청 시에 자동 모듈 생성 여부를 설정합니다.

0 : off , 1 : on

 

session.cookie_lifetime = 0

해당 세션이 유지 되는 시간을 설정하며 디폴트의 경우 0이며 사용자의 브라우저가 종료 될 때까지 유지됩니다.

 

session.cookie_path = /

세션에서 사용하는 쿠키의 경로를 지정합니다.

 

session.cookie_domain =

세션에서 사용하는 쿠키의 도메인을 지정합니다.

 

session.serialize_handler = php

세션 자료를 처리할 방법을 지정합니다. php는 PHP기본 처리기를 사용합니다. 변경하지 않습니다.

 

session.gc_probability = 1

해당 세션 값이 제거 될 경우 낭비 되는 시스템 메모리 자원을 반납하는 시점을 설정합니다.

 

session.gc_divisor = 100

session.gc_probability와 설정을 이루는데 1/100 의 확률로 세션을 정리합니다.

즉 100번 호출을 하면 한번정리를 하게 됩니다. 서버이용자가 적어 세션이 제때 호출되지 못하는경우 이확률을 높여 해결이 가능합니다.

 

session.gc_maxlifetime = 1440

해당 세션의 시스템 메모리 자원 반납을 가질 수 있는 시간을 설정합니다.

 

session.referer_check =

세션이 올바른 것인지를 판단하기 위하여 HTTP_REFERER 환경변수를 검사할 것인지를 지정합니다.

 

session.entropy_length = 0

파일로부터 얼마나 많은 자료를 읽을 것인가를 지정합니다.

 

session.entropy_file =

세션 ID를 생성하는 파일을 지정합니다.

 

session.entropy_length = 16

파일로부터 얼마나 많은 자료를 읽을 것인가를 지정합니다.

 

session.entropy_file = /dev/urandom

세션 ID를 생성하는 파일을 지정합니다.

 

session.cache_limiter = nocache

HTTP 캐시를 지정합니다.

 

session.cache_expire = 180

문서를 얼마나 지난 후에 폐기할 것인가를 지정합니다.(초 단위 지정)

 

session.use_trans_sid = 0

세션에서 transient dis(Session ID) 가능하게 것인가를 지정합니다.

 

[기본값 유지 섹션]

 

[1] Assertion

assert.active = On

assert() 평가를 활성화합니다.

 

assert.warning = On

실패하는 assertion마다 PHP 경고를 발생합니다.

 

assert.bail = Off

assertion 실패시에 스크립트 실행을 종료합니다.

 

assert.callback = 0

assertion 실패시에 호출할 사용자 함수입니다.

 

assert.quiet_eval = 0

assertion 표현 평가 중에 error_reporting()의 현재 설정을 사용합니다.

활성화하면, 평가 도중에 에러가 보여지지 않습니다.

(error_reporting(0)에 상당) 비활성화하면, 에러는 error_reporting() 설정에 따라 보여집니다.

 

[2] Fopen wrappers

from="john@doe.com"

ftp관련 함수를 이용하여 익명 ftp 서버로 접근할때 사용하는 email주소를 적습니다.

anonymous ftp 의 패스워드 지정(당신의 메일 주소)

 

user_agent="PHP"

PHP가 전송하는 유저 에이전트를 지정합니다.

 

default_socket_timeout = 60

소켓 기반 스트림의 기본 시간을 제한 합니다.

 

auto_detect_line_endings = Off

on일 때, PHP는 fgets()과 file()으로 읽혀지는 데이터가 줄바꿈 방식으로 유닉스,

MS-DOS, 매킨토시 방식 중 어느걸 사용하는지 검사합니다.

이는 PHP가 매킨토시 시스템과 작업을 할 수 있게 하지만, 첫째 줄에서 EOL 방식을 검출하기 위해서 아주 작은 성능에 페널티가 존재하고, 유닉스 시스템에서 사람들이 아이템 구분자로 캐리지-리턴을 사용해왔었기에, 하위 호환성이 사라질 수 있는 이유로 인해, 기본값은 Off입니다.

 

[3] Dynamic Extensions

;extension=php_bz2.dll

;extension=php_cpdf.dll

;extension=php_crack.dll

;extension=php_curl.dll

;extension=php_db.dll

;extension=php_dba.dll

;extension=php_dbase.dll

;extension=php_dbx.dll

;extension=php_domxml.dll

;extension=php_exif.dll

;extension=php_fdf.dll

;extension=php_filepro.dll

;extension=php_gd2.dll

;extension=php_gettext.dll

;extension=php_hyperwave.dll

;extension=php_iconv.dll

;extension=php_ifx.dll

;extension=php_iisfunc.dll

;extension=php_imap.dll

;extension=php_interbase.dll

;extension=php_java.dll

;extension=php_ldap.dll

;extension=php_mbstring.dll

;extension=php_mcrypt.dll

;extension=php_mhash.dll

;extension=php_mime_magic.dll

;extension=php_ming.dll

;extension=php_mssql.dll

;extension=php_msql.dll

;extension=php_oci8.dll

;extension=php_openssl.dll

;extension=php_oracle.dll

;extension=php_pdf.dll

;extension=php_pgsql.dll

;extension=php_printer.dll

;extension=php_shmop.dll

;extension=php_snmp.dll

;extension=php_sockets.dll

;extension=php_sybase_ct.dll

;extension=php_w32api.dll

;extension=php_xmlrpc.dll

;extension=php_xslt.dll

;extension=php_yaz.dll

;extension=php_zip.dll

Dynamic Extensions 에서는 php확장 라이브러리를 적습니다. 이 곳에 적혀있는 라이브러리는 php가 시작할 때 같이 시작하고 추가 및 제거가 가능 합니다. 이를 사용하기 위해서는 extension_dir이 지정되어 있어야 합니다.

 

[4] Syslog

define_syslog_variables  = Off

로그 시스템을 위한 변수($LOG_PID, $LOG_CRON)를 정의할 것인지를 지정합니다.

성능을 위해 Off로 하는 것이 좋다.

 

SMTP = localhost

smtp 서버의 dns나 ip 주소를 지정합니다.

 

sendmail_from = me@localhost.com

보내는 메일 주소를 설정합니다.

 

sendmail_path =

sendmail 서버가 있는 위치를 적어 줍니다.

리눅스를 비롯한 유닉스에서 사용하는 설정으로 sendmail의 위치를 지정합니다.

대부분 /usr/sbin/sendmail을 지정합니다.

 

[5] Java

java.class.path = .\php_java.jar

java.home = c:\jdk

java.library = c:\jdk\jre\bin\hotspot\jvm.dll

java.library.path = .\

자바 관련 설정으로 configure를 실행할 때 java를 포함하지 않았다면 설정할 필요가 없습니다.

 

[6] SQL

sql.safe_mode = Off

SQL 관련 함수를 위한 것으로 안전모드를 사용 할 것인지를 지정합니다.

 

[7] ODBC

odbc.default_db    =  Not yet implemented

odbc.default_user  =  Not yet implemented

odbc.default_pw    =  Not yet implemented

특별히 지정하지 않은 경우 사용할 DB와 user, password를 지정하는 곳이지만 아직 구현되지 않았다.

 

odbc.allow_persistent = On

영구 접속을 사용할 것인지를 지정하며 apache의 KeepAlive와 같은 역할을 합니다.

 

odbc.check_persistent = On

영구 접속으로 사용되고 있는 연결이 사용가능한지를 검사합니다.

 

odbc.max_persistent = -1

영구접속의 최대 접속을 지정합니다.(-1은 무제한 입니다.)

 

odbc.max_links = -1

모든 접속의 최대치를 지정합니다.(-1은 무제한 입니다.)

 

odbc.defaultlrl = 4096

LONG 필드에 대한 처리로 변수의 크기를 지정 합니다.

 

odbc.defaultbinmode = 1

이진 데이터를 위한 처리로 0은 통과, 1은 원본 그대로, 2는 문자를 바꾸어 처리합니다.

변경할경우 데이터의 손상이 생길 우려가 있으므로 그대로 두는것이 좋습니다.

 

[8] MySQL

mysql.allow_persistent = On

영구 접속자 여부 설정

 

mysql.max_persistent = -1

영구 접속자 수 최대치 설정

 

mysql.max_links = -1

mysql 서버에 하나의 프로세스 가 동시에 연결할 수 있는 전체 연결 수를 제한 할수 있습니다.

 

mysql.default_port =

mysql의 기본 포트 설정을 합니다.

정의 되지 않으면 컴파일시에 연결한 mysql 라이브러리에 지정된 포트를 사용합니다.

 

mysql.default_socket =

MYSQL에서 사용할 기본 소켓의 위치를 지정합니다.

정의되지 않으면 컴파일시에 연결한 mysql 라이브러리에 지정된 소켓을 사용합니다.

 

mysql.default_host =

mysql_connect()에서 사용할 기본 호스트

 

mysql.default_user =

mysql_connect()에서 사용할 기본 사용자 이름

 

mysql.default_password =

mysql_connect()에서 사용할 기본 패스워드, 보안 문제가 생길수 있으므로 기제하지 않는 편이 좋습니다.

 

mysql.connect_timeout = 60

최대연결 시간을 제한 합니다.

 

mysql.trace_mode = Off

trace_mode활성시 sql 오류메세지가 출력 됩니다.

 

[9] mSQL

msql.allow_persistent = On

지속적인 연결 여부를 설정 합니다.

 

msql.max_persistent = -1

지속적인 연결의 수를 제한할 수 있습니다.

 

msql.max_links = -1

동시에 연결할수있는 연결 수를 제한할 수 있습니다.

 

[10] PostgresSQL

pgsql.allow_persistent = On

postgres에 영구 접속 기능을 사용할 것인지 결정합니다.

 

pgsql.auto_reset_persistent = Off

자동 리셋 기능 사용여부 설정합니다.

 

pgsql.max_persistent = -1

영구 접속할 수 있는 연결 수의 제한을 둘 수 있습니다.

 

pgsql.max_links = -1

mysql 서버에 하나의 프로세스가 동시에 연결할 수 있는 전체 연결 수를 제한할 수 있습니다.

 

pgsql.ignore_notice = 0

PostgreSQL 백엔드 경고의 무시 여부를 설정합니다.

 

pgsql.log_notice = 0

PostgreSQL 백엔드 경고 메세지의 기록 여부. 경고 메세지를 기록하기 위해서는

PHP 지시어 pgsql.ignore_notice를 off로 설정해야만 합니다.

 

[11] Sybase

sybase.allow_persistent = On

sybase에 영구 접속 기능을 사용할 것인지 결정합니다.

 

sybase.max_persistent = -1

영구 접속 할 수 있는 연결 수의 제한을 둘 수 있습니다.

 

sybase.max_links = -1

mysql 서버에 하나의 프로세스가 동시에 연결할 수 있는 전체 연결 수를 제한 할 수 있습니다.

 

sybase.interface_file = "/usr/sybase/interfaces"

"/usr/sybase/interfaces" : sysbase에서 사용하는 인터페이스 파일의 위치를 지정 합니다. 값이 정확한지를 판단하지 않으나 정확하게 작성해야 합니다.

 

[12] Sybase-CT

sybct.allow_persistent = On

sybase-CT에 영구 접속 기능을 사용할 것인지 결정합니다.

 

sybct.max_persistent = -1

영구 접속할 수 있는 연결 수의 제한을 둘 수 있습니다.

기본값은 무제한을 뜻하는 -1 입니다.

 

sybct.max_links = -1

mysql 서버에 하나의 프로세스가 동시에 연결할 수 있는 전체 연결 수를 제한할 수 있습니다. 기본값은 무제한을 뜻하는 -1 입니다.

 

sybct.min_server_severity = 10

sybase-CT 서버의 민감성의 최소값을 지정합니다.

sybct.min_server_severity보다 더 큰 값의 메세지가 서버로부터 리턴되면 경고가 발생합니다. 이 값은 PHP 스크립트실행 시간 동안에 sybct.min_server_severity() 함수를 이용하여 변경할 수 있습니다. 기본값은 에러를 의미하는 10 입니다.

 

sybct.min_client_severity = 10

클라이언트 라이브러리에서 리턴되는 메세지가 sybct.min_client_severity보다 클 경우 경고가 발생합니다. 이 값은 sybase_min_client_severity() 함수에 의해 변경될 수 있습니다. 기본값은 가장 효율적인 10 입니다.

 

[13] bcmath

bcmath.scale = 0

모든 bcmath 함수에서 사용하는 10진 정수의 수를 지정합니다. 0은 제한하지 않습니다.

 

[14] browscap

browscap = extra/browscap.ini

브라우저 정보가 들어 있는 파일을 지정합니다.

 

[15] Informix

ifx.default_host =

ifx_connect() 함수나 ifx_pconnect() 함수를 사용해서 Informix 서버에 접속할 때 호스트명을 지정하지 않으면 여기서 설정한 호스트가 사용됩니다. 이 기능은 스크립트에서 데이터베이스 관련 보안을 위해 사용될 수 있습니다.

 

ifx.default_user =

Informix 서버에 접속할 때 비밀번호를 지정하지 않으면 여기서 설정한 사용자명이 사용됩니다. 이 기능은 스크립트에서 데이터베이스 관련 보안을 위해 사용될 수 있습니다.

 

ifx.default_password =

Informix 서버에 접속할 때 비밀번호를 지정하지 않으면 여기서 설정한 비밀번호가 사용됩니다. 이 기능은 스크립트에서 데이터베이스 관련 보안을 위해 사용될 수 있습니다.

 

ifx.allow_persistent = On

Informix 에 영구 접속 기능을 사용할 것인지 결정합니다.

 

ifx.max_persistent = -1

영구 접속할 수 있는 연결 수의 제한을 둘 수 있습니다.

 

ifx.max_links = -1

mysql 서버에 하나의 프로세스가 동시에 연결할 수 있는 전체 연결 수를 제한할 수 있습니다. 접속 수 계산에는 현재 영구 접속 수까지 포함됩니다.

 

ifx.textasvarchar = 0

True 값이면 텍스트형의 칼럼이 select 문에 의해 리턴될 때 일반 문자열 형식으로 되고,

False 값이면 blob id 매개 변수를 사용하게 됩니다.

실행중에 변경하려면 ifx_textasvarchar() 함수를 이용합니다.

 

ifx.byteasvarchar = 0

True 값이면 Byte형의 칼럼이 select 문에 의해 리턴될 때 일반 문자열 형식으로 되고,

False 값이면 blob id 매개 변수를 사용하게 됩니다.

실행 중에 변경하려면 ifx_textasvarchar() 함수를 이용합니다.

 

ifx.charasvarchar = 0

True이면 페치되어 오는 CHAR 형의 칼럼 끝에 있는 공백 문자가 제거 됩니다.

 

ifx.blobinfile = 0

BLOB 타입의 칼럼이 리턴될 때 파일로 받을 것인지 아니면 메모리에서 받을 것인지를 결정합니다. ifx_blobinfile_mode() 함수를 이용해서 스크립트 실행 중에 변경할 수 있습니다.

 

ifx.nullformat = 0

True이면 NULL 칼럼이 리턴될 때 문자열 "NULL"로 변환되고, False이면 빈문자열 ""로 리턴됩니다. 실행중에는 fix_nullformat() 함수를 이용해서 변경할 수 있습니다.

 

[16] Paths and Directories

include_path = ".:/php/includes"

INCLUDE, REQUIRE 문의 파일 경로를 설정합니다.

 

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

INCLUDE, REQUIRE 문의 파일 경로를 설정합니다.

 

doc_root =

서버의 루트 디렉토리를 설정합니다. 안전 모드로 동작할 경우 해당 디렉토리를 벗어나 다른 쪽으로 접근을 할 수 없습니다.

 

user_dir =

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

 

extension_dir = "./"

확장 모듈이 있는 디렉토리입니다.

 

enable_dl = On

dl() 함수를 유효하게 할지를 설정합니다. dl() 함수는 IIS 나 Zeus 라고 하는 멀티 thread 서버에서는 올바르게 동작 하지 않고 자동적으로 무효가 됩니다.

 

cgi.force_redirect = 1

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

윈도우 유저: IIS에서는 이것을 꺼도 안전하며, 사실상 꺼야합니다.

OmniHTTPD나 Xitami로 작업한다면, 반드시 꺼야 합니다.

 

cgi.redirect_status_env = ;

cgi.force_redirect가 켜져있고, 아파치나 넷스케이프(iPlanet) 웹 서버를 사용하지 않습니다면, 계속해서 실행하기 위한 OK를 알리기 위한 환경 변수 이름을 설정해야 할 수도 있습니다. 이 변수를 설정하는 건 보안 문제가 될 수도 있습니다. 어떤 일을 하는지 우선적으로 알아보시기 바랍니다.

 

cgi.fix_pathinfo=0

CGI 위한 실제 PATH_INFO/PATH_TRANSLATED 지원을 제공합니다. PHP 이전 작동은 PATH_TRANSLATED SCRIPT_FILENAME으로 설정했고, 1로 설정하면 PHP CGI가 규격에 맞게 경로를 수정합니다. 0으로 설정하면 PHP는 이전과 같이 작동합니다. 기본값은 0입니다. PATH_TRANSLATED 대신 SCRIPT_FILENAME을 사용하도록 스크립트를 수정할 필요가 있습니다.

 

fastcgi.impersonate = 1;

IIS(WINNT 기반 OS)에서 FastCGI는 클라이언트 호출에 대한 가상 보안 토큰을 지원합니다.

이 지시자는 IIS에게 요청에 대한 보안 문장을 정의하도록 허용합니다.

아파치의 mod_fastcgi에서는 현재(2002/03/17) 이 기능을 지원하지 않습니다.

IIS에서 실행할 때는 1로 설정하십시오. 기본값은 0입니다.

 

cgi.rfc2616_headers = 0

 PHP가 HTTP 응답 코드를 보낼 때 어떤 형식의 헤더를 사용할지를 결정합니다.

0으로 설정하면, PHP는 아파치 및 기타 웹 서버에서 지원하는 Status: 헤더를 이용합니다.

이 옵션을 1로 설정하면, PHP는 RFC 2616 호환 헤더를 전송합니다.

어떤 일을 하는지 알 수 없는 한 0으로 설정해두시기 바랍니다.

 

[17] Sockets

sockets.use_system_read = On

소켓을 사용하면서 read()를 호출할 때 어떤 함수를 사용할 것인지를 지정합니다.

On으로 하면 시스템의 read()를 사용하고 Off로 하면 php_read() 함수를 사용합니다.

 

[18] Zend

zend_extension_manager.optimizer=/usr/local/Zend/lib/Optimizer-2_6_2

zend_extension_manager.optimizer_ts=/usr/local/Zend/lib/Optimizer_TS-2_6_2

zend_optimizer.version=2.6.2

zend_extension=/usr/local/Zend/lib/ZendExtensionManager.so

zend_extension_ts=/usr/local/Zend/lib/ZendExtensionManager_TS.so

zend_optimizer php 코드성능을 향상 시켜주는 엔진으로써 php와 연동하여 설치하면 zend_optimizer 엔진 라이브러리가 설정됩니다.

 

  vmstat 명령어
  httpd.conf 설정





회사소개 개인정보취급방침 이용약관 이메일주소 무단수집거부 CONTACT US IDC 약도
회사소개 개인정보취급방침 이용약관 이메일주소 무단수집거부 CONTACT US IDC 약도 회사소개 개인정보취급방침 이용약관 이메일주소 무단수집거부 CONTACT US IDC 약도