본문 바로가기

로그 저장소 :)/리눅스.Linux

php.ini 설명

; php.ini 파일에 관한 일반적인 설정에 대해서는

; PHP 의 배포물에 포함되어 있는 php.ini-dist 파일을 참조.

;

; 이 파일은 php.ini-dist 파일에 비해, 몇개의 지시문의 값이 차이가 난다.

; 이것은 퍼포먼스를 개선하는 반면 이미 동작 하고 있던 PHP3 베이스의

; 표준과는 호환성이 없어질 수도 있다.

; 이 파일을 채용한다면, 뭐가 바뀌었는지를 제대로 인식해,

; 거기에 따라서 스크립트를 고쳐 쓰는 것이 필요하다.

;

; - register_globals = Off         [시큐리티, 퍼포먼스]

;

;   입력 데이터(POST, GET, 쿠키, 환경 변수 그 외의 서버 변수)에 관해서

;   이미 글로벌 변수로서 등록하지 않게 한다.

;   $foo 대신에 $_REQUEST["foo"] 를 사용할 필요가 있다.

;   (request, namely, POST, GET, cookie 변수도 마찬가지)

;   특정의 $_GET["foo"], $_POST["foo"], $_COOKIE["foo"],

;   $_FILES["foo"] 의 형식으로 지정해도 괜찮다.

;   게다가 import_request_variables()도 참조하면 좋을 것이다.

;

;   주의:register_globals 는 시큐리티 관련의 버그를 유발할 가능성이 있다

;   모아 두어 다음의 버젼의 PHP 에서는 추천 되지 않게 되고 있다.

;   (즉, 디폴트로 Off 가 될 방향)

;   상세한 것에 대하여는

;   http://php.net/manual/en/security.registerglobals.php 를 참조.

;

; - display_errors = Off           [시큐리티]

;

;   이 지시문을 off 로 하면 스크립트의 실행중에 에러가 발생 하여도

;   스크립트의 출력으로서의 에러 표시를 하지 않게 되어

;   접속 사용자에게 에러가 발생한것을 모르게 한다.

;   에러가 발생하면 에러 메세지안에 그 스크립트나 웹서버,

;   데이터 베이스 서버 등에 관한 정보가 표출 되는 일이 있어 문제가 발생 할 수 있다.

;   실제 운영중이 환경에서는 이 지시문을 off 로 하는 것이 좋다.

;

; - log_errors = On                [시큐리티]

;

;   이 지시문은 위의 display_errors 를 보완한다.

;   스크립트의 실행중에 발생해 모든 에러는 로그로 남게 된다.

;   (전형적으로는 서버의 에러 로그에 저장 되지만, 그 이외의 방법도 있다)

;   (위의 설정과 함께 다루는 것으로 접속 사용자에 정보를 표출될 일이 없이

;   장해에 관한 상세 정보를 얻을 수가 있다. )

;  

; - output_buffering = 4096        [퍼포먼스]

;

;   출력 버퍼를 4KB 로 설정한다.

;   출력 버퍼링을 유효하게 하면 일반적으로는

;   기입 회수나 가끔 패킷의 송출 횟수가 줄어들어 퍼포먼스의 향상으로 연결된다.

;   이 지시문에 의해 어느 정도 퍼포먼스를 향상 시키지만

;   사용하고 있는 웹서버나 스크립트에 크게 의존한다.

;

; - register_argc_argv = Off       [퍼포먼스]

;

;   $argv 및 $argc 글로벌 변수의 등록을 하지 않는다.

;

; - magic_quotes_gpc = Off         [퍼포먼스]

;

;   입력 데이터가 backslash로 이스케이프 되지 않게 되기 때문에

;   이 SQL을 데이타베이스에 보낼 수가 없게 된다.

;   이 설정으로 데이타베이스에 보내고 싶은 경우는

;   그때마다 addslashes() 함수를 사용하도록 한다.

;

; - variables_order = "GPCS"       [퍼포먼스]

;

;   환경 변수를 $HTTP_ENV_VARS[] 에 등록 하지 않게 한다.

;   환경 변수에 사용하려면 getenv()를 사용하도록 한다.

;

; - error_reporting = E_ALL        [코드의 정리, 시큐리티]

;

;   디폴트에서는 PHP 는 E_NOTICE 형의 에러를 억제한다.

;   이러한 에러 메세지는 중대하지 않는 에러에 대해서도 표출 되지만

; 그것들은 보다 큰 문제의 징조일 수도 있다.

;

; - allow_call_time_pass_reference = Off     [코드의 정리]

;

;   함수 사용시에, 변수를 강제적으로 참조 하는 것을 금지한다.

;   이것을 PHP4 스타일로 실시하기 위해서는, 함수 정의 시에 관련하는 인수를 참조 하도록 한다.


;;;;;;;;;;;;;;;;;;;;

; 언어 옵션

;;;;;;;;;;;;;;;;;;;;


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

engine = On


; <? 태그의 사용을 허가한다.

; 허가하지 않는 경우는 <?php 와 <script> 태그만 인식되고 <? 태그는 인식하지 않는다.

short_open_tag = On


; ASP 스타일의 <% %> 태그를 허가한다.

asp_tags = Off


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

precision    =  14


; 강제적으로 2000 년 문제를 대응하게 한다.

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

y2k_compliance = Off


; 출력 버퍼링을 사용하면 PHP 의 출력 층에 있어서의 몇 안 되는 지연되는 곳에

; 바이 부분을 송출한 다음에도(쿠키 포함) 헤더행을 송출할 수 있다.

; 실행시에 출력 버퍼링용 함수를 콜 하는 것으로, 출력 버퍼링을 유효하게 할 수가 있다.

; 또 이 지시문을 On 으로 하면, 모든 파일에 대해 출력 버퍼링이 유효가 된다.

; 버퍼를 특정의 사이즈에 제한하고 싶은 경우는

; 이 지시문의 값으로 'On'대신에 최대의 바이트수를(output_buffering=4096 와 같이) 설정한다.

output_buffering = 4096


; implicit_flush를 On 으로 설정하면 출력 층에 대해 각 출력 블록마다 자동적으로 플래시를 하게 된다.

; 이것은 즉, print(), echo() 및 각 HTML 블록의 뒤에 PHP 함수의 flush()를 부르는 것과 같은 내용이다.

; 이 옵션을 유효하게 하면 퍼포먼스의 문제와 밀접하게 관계되므로,

; 일반적으로는 디버그 용도만의 사용에 한정해야 할 것이다.

implicit_flush = Off


; 함수 사용 시에, 변수를 강제적으로 참조 하는 것을 금지한다.

; 이것을 PHP4 스타일로 실시하기 위해서는, 함수 정의 시에 관련하는 인수를 참조 하도록 한다.

allow_call_time_pass_reference = Off


;

; 세이프 모드

;

safe_mode = Off


; 세이프 모드의 디폴트에서는 파일을 오픈할 때에 UID 를 비교한다.

; 이 제한을 풀고 싶은 경우는 safe_mode_gid 를 On 로 한다.

safe_mode_gid = Off


; safe_mode 가 On 의 경우 파일을

; 이 디렉토리 및 그 하위로부터 include 하는 경우는 UID/GID 의 체크가 스킵 된다.

; (이러한 디렉토리는 include_path 에 포함되도록 하거나

; 또는 include 시에 절대 경로를 사용해야 한다.)

safe_mode_include_dir =                                                                


; safe_mode 가 On 의 경우 exec 관련의 함수를 통해 실행할 수 있는 권한을

; safe_mode_exec_dir 에 있는 실행 파일만으로 설정 한다.

safe_mode_exec_dir =


; open_basedir 이 설정 되었을 경우 모든 파일 조작은

; 해당 디렉토리 및 그 하위 디렉토리로 제한된다.

;open_basedir =


safe_mode_allowed_env_vars = PHP_

safe_mode_protected_env_vars = LD_LIBRARY_PATH


; 이 지시문에서는 특정의 함수를 시큐리티적인 이유로써 사용할 수 없게 할 수 있다.

; 이것은 인수로서 fopen,fwrite 의 , 단락의 리스트로 설정한다.

; 이것은 safe_mode의 On/Off 에 관계없이 항상 유효하게 된다.

disable_functions =


; 문법의 하이라이트 표시할 때의 색의 지정.

; <font color="??????"> 의 것이라면 설정 가능하다.

highlight.string  = #CC0000

highlight.comment = #FF9900

highlight.keyword = #006600

highlight.bg      = #FFFFFF

highlight.default = #0000CC

highlight.html    = #000000


;

; 그 외

;

; PHP 가 해당 서버에 인스톨 되고

; 사용되고 있다는 내용을 알려주거나 알려주지 않도록 설정한다.

expose_php = On


;;;;;;;;;;;;;;;;;;;

; 자원 제한

;;;;;;;;;;;;;;;;;;;

max_execution_time = 30     ;   각 스크립트의 최대 실행 시간을 초단위로

memory_limit = 8M           ;   스크립트 마다의 최대 메모리 소비량



;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

; 에러 핸들링과 로그

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


; error_reporting 는 비트 필드에서, 지정한 수치까지의 에러가 보고된다.

;

; E_ALL             - 모든 에러와 경고

; E_ERROR           - 치명적인 실행시 에러

; E_WARNING         - 실행시의 경고(치명적이지 않는 것)

; E_PARSE           - 컴파일시의 퍼스 에러

; E_NOTICE          - 실행시의 공지 사항(이러한 경고는 작성한 코드의 버그

;                     에 기인하는 것이 많지만, 고의의 경우도 있다(즉,

;                     초기화되어 있지 않은 변수를 사용하거나 자동적으로 공문자열

;                     에 초기화된다고 하는 사실에 의존했을 경우).

; E_CORE_ERROR      - PHP 의 초기화시에 발생한 치명적 에러

; E_CORE_WARNING    - PHP 의 초기화시에 발생한 치명적이지 않은 경고

; E_COMPILE_ERROR   - 치명적인 컴파일시의 에러

; E_COMPILE_WARNING - 컴파일시의 경고(치명적이지 않는 것)

; E_USER_ERROR      - 유저가 생성한 에러 메세지

; E_USER_WARNING    - 유저가 생성한 경고 메세지

; E_USER_NOTICE     - 유저가 생성한 통지 메세지

;

; 사용예:

;

;   - 통지를 제외한 모든 에러를 표시한다

;

;error_reporting = E_ALL & ~E_NOTICE

;

;   - 에러만을 표시한다

;

;error_reporting = E_COMPILE_ERROR|E_ERROR|E_CORE_ERROR

;

;   - E_NOTICE 를 제외한 모든 에러를 표시한다

;

error_reporting  =  E_ALL


; 에러를 표시한다. 실제 운영 환경에서는 이 기능은 오프로 해 두고

; error_log 기능을 사용하는 것을 추천한다.

; 이것은 실제 운영 환경에서 display_errors 를 유효하게 해 버리면

; 당신의 웹사이트의 파일 정보나 데이타베이스 schema등의 시큐리티 정보를

; 접속 사용자에게 표출 될 수 있기 때문이다.

display_errors = Off


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

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

display_startup_errors = Off


; 로그 파일에 에러 로그를 기록 한다.

; 전에 얘기 한것과 같이 실제 운영 환경에서는 에러 표시 기능 대신에

; 에러 로그 기능을 사용하는 것을 추천한다.

log_errors = On


; 마지막 에러/경고 메세지를 $php_errormsg 에 저장한다.

track_errors = Off


; 에러 메세지중에 HTML 태그를 넣지 않게 한다.

;html_errors = Off

  

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

;error_prepend_string = "<font color=ff0000>"


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

;error_append_string = "</font>"


; 지정된 파일에 에러를 기록한다

;error_log = filename


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

;error_log = syslog


; 캐릭터 라인에 + 연산자가 사용되고 있으면 경고

warn_plus_overloading = Off


;;;;;;;;;;;;;;;;;

; 데이터·핸들링

;;;;;;;;;;;;;;;;;

;

; 주의 - track_vars 는 PHP 4.0.3 현재는 *항상* 유효하다.


;arg_separator.output = "&"


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

;arg_separator.input = ";&"


; 이 지시문은 PHP 가 등록하는 GET, POST, Cookie 환경 변수

; (순서에 G, P, C, E, S, 자주 EGPCS 나 GPC 등으로 불린다)에 있어서의 순서를 규정한다.

; 등록은 왼쪽에서 오른쪽을 향해 행해져 새로운 값은 낡은 값을 덮어 쓴다.

variables_order = "GPCS"


; EGPCS 변수를 글로벌 변수로서 등록할지 말지를 설정한다.

;

; register_globals 를 Off 한 채로도 움직이는 PHP 스크립트를 쓰도록 평소부터 노력해 두면 좋다.

; 코드의 불편함을 그다지 자주 생각하지 않은 채 변수를 글로벌로서 액세스를 가능하게 하면

; 잠재적으로 세큐리티를 발생시킬 수 있다.

register_globals = Off


; argc 및 argv 변수

; (GET 의 정보에 포함될 가능성이 있다.)를 선언할지 말지를 규정한다.

; 이러한 변수를 사용하지 않으면 퍼포먼스를 개선한다.

register_argc_argv = Off


; PHP 가 받아들이는 일을 할 수 있는 POST 데이터의 최대 사이즈

post_max_size = 8M


; 이 지시문은 추천 되지 않는다. 대신에 variables_order 를 사용하라.

gpc_order = "GPC"


; Magic quotes

;


; GET/POST/Cookie 의 입력 데이터에 관해서 특수 문자를 이스케이프

magic_quotes_gpc = Off


; 실행시에 생성된 데이터

; (즉 SQL 로부터의 데이터, exec()로부터 등)에 관한 특수 문자 이스케이프

magic_quotes_runtime = Off    


; sybase 스타일의 특수 문자 이스케이프( '를 \' 대신에 '' 로 변환한다.)

magic_quotes_sybase = Off


; PHP 문서의 전후에 파일을 자동적으로 추가한다.

auto_prepend_file =

auto_append_file =


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

; Content-type: 헤더로 항상 문자 인코딩을 출력한다.

; charset 의 송신을 시키고 싶지 않으면, 설정값을 비운다.

;

; 디폴트는 text/html 이다.

default_mimetype = "text/html"

;default_charset = "iso-8859-1"


; 항상 $HTTP_RAW_POST_DATA 변수를 발생시킨다

;always_populate_raw_post_data = On


;;;;;;;;;;;;;;;;;;;;;;;;;

; 패스와 디렉토리

;;;;;;;;;;;;;;;;;;;;;;;;;


; UNIX: "/패스1:/패스 2"  

;include_path = ". :/php/includes"

;

; Windows: "\패스1;\패스 2"

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


; PHP 페이지의 root 디렉토리

doc_root =


; /~username 로 액세스 되었을 경우에 PHP 가 스크립트를 실행한다

user_dir =


; 확장 모듈이 있는 디렉토리

extension_dir = . /


; dl() 함수를 유효하게 할지를 설정한다.

; dl() 함수는 IIS 나 Zeus 라고 하는

; 멀티 thread 서버에서는 올바르게 동작 하지 않고 자동적으로 무효가 된다.

enable_dl = On


;;;;;;;;;;;;;;;;

; 파일의 업 로드

;;;;;;;;;;;;;;;;


; 파일의 업로드를 허가할지를 설정한다.

file_uploads = On


; HTTP 로 파일을 업 로드할 때의 임시 작업 디렉토리

; (지정되지 않는 경우는 시스템의 디폴트(TEMP 디렉토리)가 사용된다)

;upload_tmp_dir =


; 업 로드하려는 파일의 최대 사이즈

upload_max_filesize = 2M


;;;;;;;;;;;;;;;;;;

; Fopen 의 설정

;;;;;;;;;;;;;;;;;;


; URL(http:// 나 ftp:// )을 파일로서 취급할지를 결정한다

allow_url_fopen = On


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

;from="john@doe.com"


;;;;;;;;;;;;;;;;;;;;;;

; 동적인 확장 기능

;;;;;;;;;;;;;;;;;;;;;;

;

;   자동적으로 로드 되는 확장 기능을 사용하고 싶은 경우는 아래에서 지정한다:

;

;   extension=modulename.extension

;

; 예를 들어, Windows 라면:

;

;   extension=msql.dll

;

; 혹은, UNIX 라면,

;

;   extension=msql.so

;

;   지정하는 것은 모듈명에만 해야 한다.

;   여기에서는 디렉토리명을 지정할 필요는 없다.

;   확장 기능의 장소는 extension_dir 디렉토리로 지정한다.

;

; Windows 의 확장 기능

;   주의:MySQL 와 ODBC 의 기능은 표준으로 짜넣어지고 있으므로, dll 는 불필요하다.

;

;extension=php_bz2.dll

;extension=php_ctype.dll

;extension=php_cpdf.dll

;extension=php_curl.dll

;extension=php_cybercash.dll

;extension=php_db.dll

;extension=php_dba.dll

;extension=php_dbase.dll

;extension=php_dbx.dll

;extension=php_domxml.dll

;extension=php_dotnet.dll

;extension=php_exif.dll

;extension=php_fbsql.dll

;extension=php_fdf.dll

;extension=php_filepro.dll

;extension=php_gd.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_ingres.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_ming.dll

;extension=php_mssql.dll

;extension=php_oci8.dll

;extension=php_openssl.dll

;extension=php_oracle.dll

;extension=php_overload.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_xslt.dll

;extension=php_yaz.dll

;extension=php_zlib.dll




[추가 정보]


1. engine - PHP가 아파치 모듈로 설치 되었을 경우 특정 디렉토리에서만 스크립트가 동작하게 합니다.

이것은 아파치 httpd.conf 파일에 아래 항목을 추가합니다.



php_admin_flag engine on(PHP3의 경우 php3_engine on)



2. short_open_tag - php tag 사용여부를 정합니다. XML과 같이 사용할 경우 이 부분은 on으로

해야 합니다.


3. asp_tags - ASP 태그의 사용 여부를 설정합니다.


4. y2k_compliance - y2k 문제에 해당하는 브라우저를 위한 설정입니다.


5. safe_mode - php를 안전 모드로 동작 하게끔 하는 설정입니다.


safe_mode_exec_dir 지시자의 해당 디렉토리에 존재하는 실행 파일이 아닌 경우 실행 되지 않습니다.

(root에 있는 파일만 참조하게 합니다.)


6. safe_mode_exec_dir - 실행 프로그램이 있는 디렉토리 명을 적어 줍니다.


"5번"참고


7. max_execution_time - 스크립트 실행 시간을 초단위로 설정합니다.


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


9. error_reporting - 에러 출력을 설정합니다.


에러의 종류


1 - 일반적인 에러 출력(Normal function errors)

2 - 일반적인 에러 출력(Normal warnings)

4 - 문법적인 에러 출력(Parser errors)

8 - 버그의 가능성이 있으며 무시할 수 있는 에러 출력(Notices)


10. display_errors - 에러 상황을 html 양식으로 보여줍니다.


11. log_errors - 여러 가지 에러를 로고 파일에 저장합니다.


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


13. warn_plus_overloading - 스크립트에서 문자열 결합사용 때 " . " 연산자를 사용하지만 만약

" + "를 사용했을 경우 경고 메시지 출력 여부를 설정합니다.


14. track_vars - GET, POST, COOKIE 등으로 전달된 변수 값을 각각의 $HTTP_GET_VARS , $HTTP_POST_VARS ,

$HTTP_COOKIE_VARS의 배열 변수로 자동 저장 여부를 설정합니다.


15. magic_quotes_gpc - GET , POST , COOKIE 등으로 전달된 데이터에 ‘ " / 등의 문자가 존재할 경우

자동으로 ()역슬래쉬를 붙일지 여부를 설정합니다. 이것은 각 문자를 스크립트와 구별

해서 인식시키기 위해 필요한 부분입니다.


16. magic_quotes_runtime - 외부 스크립트나 여타 소스로부터 돌아오는 데이터에 대해 ()역슬래쉬를 붙일지

여부를 설정합니다.


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


18. auto_append_file - "17번"과 같으며 마지막 부분에 포함될 파일명을 적어 줍니다.


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


20. doc_root - 서버의 루트 디렉토리를 설정합니다. 안전 모드로 동작할 경우 해당 디렉토리를 벗어나 다른

쪽으로 접근을 할 수 없습니다.


21. user_dir - 서버의 계정을 가진 일반 유저에 PHP 스크립트의 사용을 허가할 수 있습니다.


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


23. upload_max_filesize - 업로드 할 수 있는 최대 파일 크기를 설정합니다.


24. SMTP - mail( ) 함수의 사용을 위해 현 서버의 DNS , IP를 적어줍니다.


25. sendmail_from - 보내는 메일 주소를 설정할 수 있습니다.


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


27. debugger.host - 디버거로 사용하는 호스트 명을 적어 줍니다.


28. debugger.port - 디버거로 사용하는 포트 번호를 적어 줍니다.


29. debugger.enabled - 디버거의 사용 여부를 설정 합니다.


30. session.save_handler - 세션과 해당 데이터를 저장하는 방식을 설정하는 부분입니다. 기본적으로 파일 방식

입니다. 세션 항목은 이 책에 사용되는 회원제 부분에서 사용됩니다.


31. session.save_path - 세션 전달 인수를 정의 하는 부분이며 디폴트인 파일 방식일 경우 해당 파일의 경로를

적어 줍니다.


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


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


0 - off , 1 - on


34. session.lifetime - 해당 세션이 유지 되는 시간을 설정 합니다.

디폴트의 경우 0이며 사용자의 브라우저가 종료 될 때까지 유지됩니다.


35. session.gc_probability - 해당 세션 값이 제거 될 경우 낭비 되는 시스템 메모리 자원을 반납하는 시점을

설정합니다.


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




p.s 출처: http://netcabin.tistory.com/27

'로그 저장소 :) > 리눅스.Linux' 카테고리의 다른 글

톰캣(tomcat) 설치  (1) 2017.12.11
CentOS 6.x 에서 LEMP 설치  (1) 2017.12.08
vpn 설치  (0) 2012.05.31
CentOS에서 APM 및 제로보드(zbxe) 설치  (0) 2010.11.01
KVM 스크린샷  (0) 2010.10.11