우수한 소프트웨어와 실용적인 튜토리얼
;;;;;;;;;;;;;;;;;;
;; 에 대한 PHP.ini ;;
;;;;;;;;;;;;;;;;;;
서버 모듈의 경우, php.ini 파일은 서버 시작 시 한 번만 읽힙니다. CGI 및 CLI의 경우, php.ini 파일은 모든 호출 시마다 읽힙니다.
; PHP는 초기화하는 동안 다음 순서에 따라 이 파일을 검색합니다(파일을 찾으면 멈춤):
; 1. SAPI 모듈에서 지정한 위치:
; (a) Apache 2.x의 PHPIniDir 지시어
; (b) CGI/CLI 모드에서 -c 명령줄 옵션
; (c) NSAPI의 php_ini 매개변수
; (d) THTTPD의 PHP_INI_PATH 환경 변수
; 2. PHPRC 환경 변수에 의해 지정된 위치
; 3. Windows 레지스트리에서 지정한 위치(순서대로 검색하고 찾으면 중지):
; (a) [HKEY_LOCAL_MACHINE\SOFTWARE\PHP\xyz]의 IniFilePath 값(php-xyz 버전에만 해당)
; (b) [HKEY_LOCAL_MACHINE\SOFTWARE\PHP\xy]의 IniFilePath 값(php-xy* 시리즈 버전에만 해당)
; (c) [HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x]의 IniFilePath 값(php-x.*.* 시리즈 버전에만 해당)
; (d) [HKEY_LOCAL_MACHINE\SOFTWARE\PHP]의 IniFilePath 값(PHP 버전에 따라 다름)
; 4. 현재 작업 디렉토리(CLI 모드에는 적용되지 않음)
; [팁] Apache는 시작 시 현재 작업 디렉토리를 루트 디렉토리로 변경하는데, 이로 인해 PHP는 루트 디렉토리에서 php.ini를 읽으려고 시도합니다.
; 5. 웹 서버 디렉토리(SAPI 모듈의 경우) 또는 PHP가 있는 디렉토리(Windows의 경우)
; 6. 컴파일 타임 옵션 --with-config-file-path 또는 Windows 디렉터리(%SystemRoot%는 일반적으로 "C:\Windows")로 지정된 위치
; php-SAPI.ini가 존재하는 경우(예: php-apache2handler.ini, php-fpm-fcgi.ini, php-cli-server.ini, php-cli.ini 등)
; 그러면 php.ini가 php-SAPI.ini로 대체됩니다.
; 최신 버전:
; php.ini-production
; php.ini 개발
;;;;;;;;;;;;
;; 문법;;
;;;;;;;;;;;;
; 이 파일의 구문은 매우 간단합니다. 빈 줄과 세미콜론으로 시작하는 줄은 무시됩니다.
; 일반 구성 섹션 헤더(예: [PHP])도 무시됩니다(나중에 의미가 있을 수도 있음).
[PATH=/www/mysite]와 같은 구성 세그먼트는 /www/mysite 디렉토리에 있는 PHP 파일에만 적용된다는 것을 의미합니다.
[HOST=www.example.com]과 같은 구성 섹션은 다음에만 적용됩니다. http://www.example.com 사이트의 PHP 파일.
; [팁] 여러 도메인 이름을 사용하는 사이트의 경우 SERVER_NAME 매개변수 값(즉, 도메인 이름 목록의 첫 번째 도메인 이름)을 사용해야 합니다.
; 이 두 구성 섹션의 설정은 런타임에 수정할 수 없으며 .user.ini 파일의 영향을 받지 않습니다.
; 이 두 구성 섹션은 CGI/FastCGI 모드[FastCGI 프로토콜 사양 중국어 버전]에서만 작동하며 확장 및 zend_extension 명령어를 포함할 수 없습니다.
; 설정 명령의 형식은 다음과 같습니다.
; 명령 = 값
; "지시어"는 대소문자를 구분합니다! 따라서 "foo=bar"는 "FOO=bar"와 다릅니다.
인식할 수 없는 "명령"은 그대로 무시되고, 설정되지 않은 명령은 기본값을 사용합니다.
; "value"는 다음과 같습니다.
; 1. 문자열(따옴표로 구분 가능, 예: "foo")
; 2. 숫자(정수 또는 부동 소수점, 예: 0, 1, 34, -1, 33.55)
; 3. PHP 상수(예: E_ALL, M_PI)(php.ini 외부에서 사용할 수 없음[예: httpd.conf])
; 4. INI 상수(켜짐, 꺼짐, 예, 아니오, 없음)
; 5. 표현(예: E_ALL & ~E_NOTICE)
; [참고 1] "value"에서 "${AUTHOR}.log", ".:${USER}/pear/php"와 같은 환경 변수를 참조할 수 있습니다.
; [참고 2] "value"에서 이전에 설정된 지시어 값을 참조할 수 있습니다(예: "${open_basedir}:/new/dir").
표현식에서는 비트 연산자, 논리 부정, 괄호만 사용할 수 있습니다.
; | 비트 단위 OR
; ^ 비트 단위 배타적 OR (XOR)
; & 비트 단위 AND
; ~ 비트 단위 NOT
; ! 논리적 NOT
; 부울 플래그는 1, 켜짐, 참, 예를 사용하여 켜지고, 0, 꺼짐, 거짓, 아니오를 사용하여 꺼집니다.
; 빈 문자열은 등호 뒤에 아무것도 쓰지 않거나 None 키워드를 사용하여 표현할 수 있습니다.
; foo = ; foo를 빈 문자열로 설정합니다(권장)
; foo = None ; foo를 빈 문자열로 설정합니다.
; foo = "None" ; foo를 문자열 'None'으로 설정합니다.
; 지시문 값에서 동적 확장(PHP 확장 또는 Zend 확장)의 상수를 사용하려는 경우,
; 그런 다음 이러한 상수는 동적 확장 명령어 줄(extension 또는 zend_extension)을 로드한 후에만 사용할 수 있습니다.
;;;;;;;;;;;;;;;;;;;;;;;;;;
;; 프로덕션 환경과 개발 환경;;
;;;;;;;;;;;;;;;;;;;;;;;;;;
PHP는 프로덕션 및 개발 환경을 위한 두 가지 참조 구성을 제공합니다. php.ini-production과 php.ini-development입니다.
두 참조 구성의 차이점은 다음과 같습니다.
;표시_오류
; 기본값: 켜짐
; 개발 가치: 켜짐
; 제작 가치: 꺼짐
;디스플레이_시작_오류
; 기본값: 켜짐
; 개발 가치: 켜짐
; 제작 가치: 꺼짐
;오류 보고
; 기본값: E_ALL
; 개발가치: E_ALL
; 제작 가치: E_ALL & ~E_DEPRECATED & ~E_STRICT
;로그_오류
; 기본값: 꺼짐
; 개발 가치: 켜짐
; 제작 가치: 켜짐
;최대_입력_시간
; 기본값: -1 (무제한)
; 개발 값: 60(60초)
; 제작가치 : 60(60초)
;출력_버퍼링
; 기본값: 꺼짐
; 개발 가치: 4096
; 생산 가치: 4096
;register_argc_argv
; 기본값: 켜짐
; 개발 가치: 꺼짐
; 제작 가치: 꺼짐
;요청_순서
; 기본값: 없음
; 개발 가치: "GP"
; 제작 가치: "GP"
;세션.gc_divisor
; 기본값: 100
; 개발 가치: 1000
; 생산 가치: 1000
;세션.문자당 sid_bits
; 기본값: 4
; 개발 가치: 5
; 제작 가치: 5
;짧게_열기_태그
; 기본값: 켜짐
; 개발 가치: 꺼짐
; 제작 가치: 꺼짐
;변수_순서
; 기본값: "EGPCS"
; 개발 가치: "GPCS"
; 제작 가치: "GPCS"
;zend.exception_ignore_args
; 기본값: 꺼짐
; 개발 가치: 꺼짐
; 제작 가치: 켜짐
;zend.예외_문자열_매개변수_최대_길이
; 기본값: 15
; 개발 가치: 15
; 생산 가치: 0
;;=========================================================================================
;;=====================================구성 지침에 대한 자세한 설명===========================================
;;=========================================================================================
; 다음 각 지시어의 값은 PHP-8.0에 내장된 기본값과 동일합니다(PHP-7.2, PHP-7.3, PHP-7.4 버전도 고려).
; 즉, 'php.ini'가 존재하지 않거나 일부 줄을 삭제하더라도 기본값은 동일합니다.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; SAPI(서버 API) ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
[아파치2핸들러]
; 이 구성 섹션의 지시어는 PHP를 Apache2 핸들러 모듈(php_module)로 사용할 때만 의미가 있습니다.
; [팁] httpd.conf에서 php_value/php_flag 및 php_admin_value/php_admin_flag 지침을 사용하여 php.ini의 설정을 재정의할 수 있습니다.
엔진 = 켜짐
; PHP 파싱 엔진을 활성화할지 여부입니다. 일반적으로 디렉터리 또는 가상 호스트에 따라 PHP 파싱 엔진을 켜거나 끄는 데 사용됩니다.
마지막 수정 = 꺼짐
PHP 스크립트의 마지막 수정 시간을 "Last-Modified:" 응답 헤더에 넣을지 여부입니다.
xbithack = 꺼짐
; 실행 가능한 비트가 있는 한 확장자에 관계없이 파일을 PHP 스크립트로 구문 분석할지 여부입니다.
[fpm-fcgi]
; 이 구성 섹션의 지침은 FPM/FastCGI 모드에서 PHP를 사용할 때만 의미가 있습니다.
cgi.check_shebang_line = 켜짐
스크립트 맨 위에 #!로 시작하는 줄이 있는지 확인할지 여부(shebang).
; 이 shebang은 스크립트를 독립 실행형과 PHP CGI 모드로 모두 실행하는 데 필요합니다.
; On으로 설정하면 이 줄은 CGI 모드에서 자동으로 무시됩니다.
cgi.discard_path = 꺼짐
클라이언트가 .htaccess 보안 보호를 우회할 수 없도록 보안을 강화하기 위해 PHP CGI 디렉터리를 웹 디렉터리 트리 외부에 배치하는 것을 허용할지 여부입니다.
cgi.fix_pathinfo = 켜짐
CGI에 실제 PATH_INFO/PATH_TRANSLATED 값을 제공할지 여부(cgi 사양을 준수).
; 이전 동작은 PATH_INFO에 관계없이 PATH_TRANSLATED를 SCRIPT_FILENAME으로 설정하는 것이었습니다.
; 이 지시어를 켜면 PHP가 CGI 사양을 준수하도록 경로를 수정하고, 그렇지 않으면 이전의 비준수 동작을 계속 사용합니다.
; 이 지침을 켜고 PATH_TRANSLATED 대신 SCRIPT_FILENAME을 사용하도록 스크립트를 수정하는 것이 좋습니다.
; [팁] Nginx와 함께 PHP-FPM을 사용하더라도 이 지시어는 켜두어야 합니다(인터넷에 오래된 글이 많이 있습니다).
PATH_INFO에 대한 자세한 내용은 cgi 사양을 참조하세요.
cgi.force_redirect = 켜짐
; CGI 강제 리디렉션을 활성화할지 여부입니다. 보안 강화를 위해 활성화하는 것이 좋습니다.
; 참고: IIS에서 이 기능을 꺼야 합니다!
cgi.nph = 꺼짐
CGI 모드에서 모든 요청에 대해 "상태: 200" 상태 코드를 보내도록 할지 여부입니다.
cgi.redirect_status_env =
; cgi.force_redirect = On이고 Apache가 아닌 다른 것으로 PHP를 실행하는 경우,
; CGI 리디렉션 환경 변수 이름을 설정해야 할 수도 있으며, PHP는 이 환경 변수에 따라 실행을 계속할지 여부를 결정합니다.
; 이 변수를 설정하면 보안 취약점이 발생할 수 있으므로 설정하기 전에 해당 내용을 잘 알고 있는지 확인하세요.
cgi.rfc2616_headers = 꺼짐
; HTTP 응답 코드를 보낼 때 PHP가 사용해야 하는 상태 헤더를 지정합니다.
; Off로 설정하면 Apache 및 기타 웹 서버에서 지원되는 RFC3875 표준(예: "상태: 404 찾을 수 없음")을 준수하는 헤더를 사용하게 됩니다.
이를 On으로 설정하면 RFC2616 표준을 준수하는 헤더를 사용하게 됩니다(예: "HTTP/1.0 404 찾을 수 없음").
; 실제로 무엇을 해야 할지 모르는 한 항상 기본값을 Off로 유지하세요.
fastcgi.error_header =
; display_errors = Off이고 액세스된 PHP 스크립트에 구문 오류가 있는 경우
; 그러면 기본적으로 사용자는 "HTTP/1.1 500 내부 서버 오류"라는 상태 표시줄이 있는 빈 페이지를 받게 됩니다.
기본 상태 줄이 불합리하다고 생각되면 이 지시어를 사용하여 상태 줄을 사용자 지정할 수 있습니다(예: "HTTP/1.1 550 서버 폭발").
fastcgi.impersonate = 꺼짐
IIS의 FastCGI는 클라이언트 보안 토큰을 가장하는 기능을 지원하여 IIS가 런타임 요청의 기반이 되는 보안 컨텍스트를 정의할 수 있도록 합니다.
; 하지만 Apache는 이 기능을 지원하지 않습니다. IIS에서 실행 중이라면 이 기능을 On으로 설정해야 하고, 그렇지 않은 경우에는 Off로 설정해야 합니다.
fastcgi.logging = 켜짐
FastCGI 로깅을 활성화할지 여부.
fpm.config =
; FPM 구성 파일(php-fpm.conf)의 경로를 명시적으로 지정합니다.
[cli-서버]
; 이 구성 섹션의 지침은 PHP의 내장 CLI 웹 서버를 사용할 때만 유효합니다.
cli_server.color = 꺼짐
CLI 웹 서버에서 터미널 출력에 색상을 사용할지 여부입니다.
[클라이언트]
; 이 구성 섹션의 지침은 PHP 명령줄 모드를 사용할 때(실제로는 readline 모듈 설정)에만 의미가 있습니다.
cli.pager =
; 명령줄 출력을 표시하기 위한 외부 페이저.
cli.prompt = "\b \>"
; 대화형으로 사용할 경우 명령줄 프롬프트입니다.
;;;;;;;;;;;;;;;;;;;
;; 핵심;;
;;;;;;;;;;;;;;;;;;;
[핵심 언어]
short_open_tag = 켜짐
; "를 사용하는 것이 허용됩니까? "짧은 목표.
PHP 프로그램을 통제된 환경에서만 실행하고 개인적으로만 사용하는 경우가 아니라면 짧은 태그를 사용하지 마세요.
; XML과 함께 PHP를 사용하려면 이 옵션을 꺼서 직접 임베드를 용이하게 할 수 있습니다. ".
; 이 지시어는 약어 형식에 영향을 미치지 않습니다.=",它始终和"
정밀도 = 14
; 부동 소수점 데이터의 정밀도(유효 자릿수)를 표시합니다.
직렬화_정밀도 = -1
; float 및 double 데이터를 직렬로 저장할 때의 정밀도(유효 자릿수)입니다.
; 기본값인 -1은 자동으로 최상의 정밀도를 선택함을 의미하는데, 이는 역직렬화기가 부동 소수점 데이터를 디코딩할 때 데이터가 손실되지 않도록 보장하기에 충분한 수준입니다.
; 이 값은 json_encode()로 인코딩된 double 데이터의 정밀도에도 영향을 미칩니다.
비활성화_기능 =
; 이 지시어는 특정 함수를 비활성화하기 위해 쉼표로 구분된 함수 이름 목록을 허용합니다.
; 이 명령어는 내장 함수만 비활성화할 수 있고, 사용자 정의 함수는 비활성화할 수 없습니다.
비활성화_클래스 =
; 이 지시어는 특정 클래스를 비활성화하기 위해 쉼표로 구분된 클래스 이름 목록을 허용합니다.
expose_php = 켜짐
; PHP가 서버에 설치되어 있다는 사실을 공개할지 여부(http 헤더에 서명 추가).
; 직접적인 보안 위협은 아니지만, 클라이언트에게 서버에 PHP가 설치되어 있다는 사실을 알려줍니다.
하드 타임아웃 = 2
스크립트 실행 시간이 max_execution_time 제한에 도달하면 스크립트가 "부드럽고 안전하게" 종료됩니다.
; 이 명령어는 스크립트를 "부드럽고 안전하게" 종료하는 데 허용되는 최대 시간(초)을 설정합니다.
; 제한 시간(기본값은 2초)이 지나면 (해제되지 않은 리소스를 해제하지 않고) 대략적인 방식으로 종료됩니다.
zend.assertions = 1
; 어설션을 컴파일하는 방법:
; -1 전혀 컴파일하지 않음 (프로덕션 모드)
; 0 컴파일은 되지만 런타임에 건너뜁니다.
; 1 컴파일 및 실행(개발모드)
zend.exception_ignore_args = 꺼짐
예외로 인해 생성된 스택 추적에서 인수를 제외할지 여부입니다.
; 민감한 정보가 스택 추적에서 출력되는 것을 방지하기 위해 프로덕션 서버에서는 켜짐으로 설정하는 것이 좋습니다.
zend.exception_string_param_max_len = 15
; 스택 추적 매개변수에 허용되는 최대 문자열 길이(값 범위 = 0~1000000).
; zend.exception_ignore_args = Off인 경우에만 의미가 있습니다.
민감한 정보의 출력을 줄이려면 프로덕션 서버에서는 이 값을 0으로 설정하는 것이 좋습니다.
zend.multibyte = 꺼짐
; PHP 스크립트가 CP936, Big5, CP949, Shift_JIS와 같은 안전하지 않은 문자 인코딩을 사용하도록 허용할지 여부.
ISO-8859-1(UTF-8, EUC 등)과 호환되는 안전한 문자 인코딩은 이 지시어를 활성화할 필요가 없습니다.
; 이 기능을 사용하려면 mbstring 확장 모듈을 로드해야 합니다.
젠드.스크립트_인코딩 =
; PHP 스크립트의 첫 번째 줄에 "declare(encoding=...)" 문이 없는 경우 사용되는 기본 문자 인코딩입니다.
; 이 지시어를 설정하면 스크립트는 자동으로 mb_convert_encoding() 함수를 사용합니다.
; 모든 문자열을 zend.script_enconding에서 mbstring.internal_encoding으로 자동 변환합니다.
; zend.multibyte = On인 경우에만 의미가 있습니다.
스크립트가 ISO-8859-1과 호환되지 않는 문자 인코딩을 사용하는 경우 이 지시어를 명시적으로 설정하는 것이 좋습니다.
zend.detect_unicode = 켜짐
스크립트의 BOM(바이트 순서 표시)을 검사하여 스크립트에 다중 바이트 문자가 포함되어 있는지 감지할지 여부입니다.
; zend.multibyte = On인 경우에만 의미가 있습니다.
zend.signal_check = 꺼짐
; 종료 시 교체된 신호 처리기를 확인할지 여부(Unix 전용)
[핵심-자원 제한]
메모리 제한 = 128M
스크립트가 요청할 수 있는 최대 메모리(바이트)(K와 M을 단위로 사용 가능)(post_max_size 값보다 커야 함).
; 이렇게 하면 잘못된 스크립트가 서버의 모든 메모리를 소모하는 것을 방지할 수 있습니다. 이 값을 -1로 설정하면 메모리 제한이 해제됩니다.
; 이 지시어를 설정한 후 memory_get_usage() 함수를 사용할 수 있습니다.
[코어 성능]
실제 경로 캐시 크기 = 4M
; PHP에서 사용하는 realpath(정규화된 절대 경로 이름) 버퍼 크기를 지정합니다.
; 버퍼 크기 = 경로 문자열의 총 길이 + 캐시 항목 관련 데이터. 긴 경로를 주로 캐싱하는 경우 캐시 크기가 더 커야 합니다.
; 이 값은 캐시 경로 수를 직접 제어하지 않습니다. PHP가 많은 파일을 여는 시스템에서는 성능 향상을 위해 이 값을 늘려야 합니다.
; 참고: open_basedir이 활성화되면 realpath 캐시가 비활성화됩니다.
실제 경로_캐시_ttl = 120
; 실제 경로 캐시 유효 기간(초). 파일이 거의 변경되지 않는 시스템의 경우, 이 값을 늘려 성능을 향상시킬 수 있습니다.
[코어 데이터 처리]
arg_separator.output = "&"
; PHP에서 URL 출력의 매개변수를 구분하는 데 사용되는 구분 기호입니다.
; 또한 "&" 또는 "," 또는 ";" 등으로 설정할 수도 있습니다.
arg_separator.input = "&"
; PHP가 URL의 변수를 구문 분석할 때 사용하는 구분 기호 목록입니다. 문자열의 모든 문자가 구분 기호로 처리됩니다.
; 또한 ";,&" 등으로 설정할 수도 있습니다.
변수_순서 = "EGPCS"
; 어떤 초전역 배열을 등록해야 할까요? $_ENV, $_GET, $_POST, $_COOKIE, $_SERVER를 각각 E, G, P, C, S로 표현하세요.
이러한 배열을 등록하면 성능 저하가 발생하고 $_ENV는 일반적으로 사용되지 않으므로 $_ENV를 등록하지 않는 것이 좋습니다.
; [팁] FastCGI 모드에서 $_SERVER는 항상 환경 변수를 포함합니다(즉, S는 항상 ES와 동일함).
; "GPCS"로 설정하고 getenv()를 사용하여 환경 변수에 접근하는 것이 좋습니다.
요청_순서 =
; G, P, C 슈퍼글로벌 배열의 요소를 $_REQUEST 슈퍼글로벌 배열에 등록하는 방법.
; 이 설정은 G, P, C 중 어떤 것을 등록할 것인지를 결정할 뿐만 아니라, 등록할 때 덮어쓰기 순서도 결정합니다(나중 값이 이전 값을 덮어씁니다).
; [참고] 빈 값으로 설정하면 $_REQUEST를 비워두는 대신 variables_order의 값을 상속받습니다. "GP"로 설정하는 것이 좋습니다.
auto_globals_jit = 켜짐
$_ENV, $_REQUEST, $_SERVER 변수를 실제로 사용될 때만 생성할지 여부(스크립트가 시작될 때 자동으로 생성하는 것이 아님).
; 스크립트에서 이러한 배열을 사용하지 않는 경우 이 지시어를 켜면 성능이 향상됩니다.
register_argc_argv = 켜짐
; $argv 및 $argc 전역 변수를 등록할지 여부(GET 메서드의 정보를 포함할 수 있음).
; $argv 배열에는 스크립트에 전달된 모든 매개변수가 포함됩니다. $argc 변수는 매개변수의 개수를 저장합니다.
; 성능을 향상시키려면 이 지시어를 끄는 것이 좋습니다.
; [팁] CLI 모드의 경우 이 명령은 On으로 하드코딩됩니다.
enable_post_data_reading = 켜짐
; POST 데이터 읽기 허용 여부입니다. Off로 설정하면 $_POST와 $_FILES는 항상 비어 있게 됩니다.
POST 데이터를 가져오는 유일한 방법은 php://input 스트림 래퍼를 사용하는 것입니다.
; Off는 요청을 프록시하거나 메모리 효율적인 방식으로 POST 데이터를 처리하는 데만 적합합니다.
게시물_최대_크기 = 8M
; 허용되는 최대 POST 데이터 길이(바이트)입니다("0"은 무제한을 의미). enable_post_data_reading = On인 경우에만 유효합니다.
; 이 설정은 파일 업로드에도 영향을 미칩니다(upload_max_filesize 값보다 커야 함). POST 데이터가 제한을 초과하면 $_POST와 $_FILES가 비어 있게 됩니다.
메모리 제한이 활성화된 경우 이 값은 memory_limit 값보다 작아야 합니다.
자동_파일_추가 =
자동_추가_파일 =
; PHP 스크립트 앞/뒤에 자동으로 삽입할 파일 이름입니다. 이 기능을 사용하지 않으려면 비워 두세요.
; 지정된 파일은 include() 함수에 의해 포함되는 것처럼 포함되므로 include_path 지시어의 값이 사용됩니다.
; 참고: 스크립트가 exit()를 통해 종료되면 자동 접미사 처리가 수행되지 않습니다.
기본_mimetype = "text/html"
기본 문자셋 = "UTF-8"
; HTTP 헤더 "Content-Type:"의 기본값을 설정합니다. 두 값을 모두 비워 두면 "Content-Type:" 헤더가 출력되지 않습니다.
; 기본값은 "Content-Type: text/html; charset=UTF-8"을 출력하는 것을 의미합니다.
; default_charset을 빈 값으로 설정하는 것은 권장되지 않습니다.
입력_인코딩 =
; PHP 입력에 사용되는 문자 인코딩입니다. 이 값을 비워 두면 default_charset 값을 사용하게 됩니다.
출력_인코딩 =
; PHP 출력에서 사용하는 문자 인코딩입니다. 이 값을 비워 두면 default_charset 값을 사용하게 됩니다.
내부 인코딩 =
; PHP에서 내부적으로 사용하는 문자 인코딩입니다. 값을 비워두면 default_charset 값을 사용합니다.
[핵심 경로]
include_path = ".;/php/pear에 대한/경로"
require(), include(), fopen(), file(), readfile(), file_get_contents() ... 및 기타 함수에 대한 디렉토리 집합을 지정하여 파일을 찾습니다.
; 형식은 시스템의 PATH 환경 변수와 비슷합니다(UNIX에서는 콜론으로 구분하고 Windows에서는 세미콜론으로 구분).
; 유닉스: "/path1:/path2"
; 윈도우: "\path1;\path2"
현재 디렉토리를 기준으로 파일을 나타내기 위해 './path/to/file'을 직접 사용하는 것이 더 효율적인 방법입니다(이 명령에서 '.'을 사용하는 것은 권장되지 않습니다).
; 또한, 이 지시어를 비어두는 것은 파일 시스템에서 파일을 찾는 성능을 향상시키는 데 도움이 될 수 있습니다.
; 이 지시어의 값은 set_include_path()를 사용하여 런타임에 수정될 수 있습니다.
오픈_기반 디렉토리 =
; 보안을 강화하기 위해 PHP가 작동할 수 있는 모든 파일을 이 그룹 디렉토리 목록으로 제한합니다(비워 두면 모든 파일을 열 수 있음).
스크립트가 지정된 디렉토리 트리 외부의 파일을 열려고 하면 거부됩니다.
; 모든 심볼릭 링크는 해결되므로 심볼릭 링크를 사용하여 이 제한을 우회하는 것은 불가능합니다.
; 특수 값 '.'은 스크립트가 저장된 디렉토리가 기본 디렉토리로 사용된다는 것을 의미하지만, 이는 안전하지 않습니다(스크립트는 chdir()을 사용하여 작업 디렉토리를 변경할 수 있음).
공유 서버의 경우, httpd.conf에서 이 지시문을 다양한 가상 호스트나 디렉토리에 맞게 유연하게 설정하는 것이 매우 유용합니다.
Apache 모듈로 사용하는 경우 상위 디렉토리의 open_basedir 경로가 자동으로 상속됩니다.
; Windows에서는 세미콜론을 사용하여 디렉터리를 구분하고, UNIX 시스템에서는 콜론을 사용하여 디렉터리를 구분합니다. 이식 가능한 코드를 작성하려면 PATH_SEPARATOR 상수를 사용하는 것이 좋습니다.
; 참고: 이 기능을 활성화하면 실제 경로 캐싱이 비활성화됩니다.
문서 루트 =
; PHP의 "CGI 루트 디렉터리"입니다. 비어 있지 않은 경우에만 유효합니다.
실행 가능한 프로그램/스크립트를 웹 서버의 주 문서 디렉토리(예: "htdocs")에 두는 것은 안전하지 않은 것으로 간주됩니다.
; 예를 들어, 구성 오류로 인해 스크립트가 일반 HTML로 표시됩니다.
; 따라서 많은 시스템 관리자는 CGI를 통해서만 접근할 수 있는 주 문서 디렉토리 외부에 디렉토리를 설정합니다.
; 이 디렉토리의 내용은 분석만 되고 그대로 표시되지 않습니다.
; 이 지시어가 설정되면 PHP는 doc_root 디렉토리에 있는 파일만 해석합니다.
; 그리고 PHP 인터프리터가 디렉토리 외부의 스크립트를 실행하지 않도록 합니다(user_dir 제외).
PHP를 컴파일할 때 FORCE_REDIRECT가 지정되지 않은 경우 이 지시어를 설정해야 합니다.
IIS가 아닌 서버에서 CGI로 실행하는 경우, 매뉴얼의 보안 섹션을 꼭 읽어보세요.
; 안전한 대안은 cgi.force_redirect 지시어를 사용하는 것입니다.
사용자_디렉토리 =
; /~username으로 스크립트를 열 때 PHP가 어떤 디렉토리를 찾아야 하는지 알려줍니다. 이 값은 비어 있지 않을 때만 유효합니다.
; 즉, 사용자 디렉토리 아래에 있는 PHP 파일의 기본 디렉토리 이름을 사용합니다(예: "public_php").
user_ini.cache_ttl = 300
; .user.ini 파일을 다시 읽는 간격(초)(.user.ini 파일의 수명).
user_ini.filename = ".user.ini"
; 디렉터리별로 사용자 정의 php.ini 파일의 이름을 지정합니다(CGI/FastCGI 모드에서만 지원). 이 값을 비워 두면 이 기능이 비활성화됩니다.
; 이 기능을 활성화하면 기본 php.ini 외에도 실행되는 PHP 스크립트가 있는 디렉토리부터 웹 루트 디렉토리까지 검색합니다.
; 실행된 PHP 스크립트가 웹 루트 디렉토리 외부에 있는 경우, PHP 스크립트가 있는 디렉토리만 검사됩니다.
; .user.ini 파일에서는 PHP_INI_PERDIR 및 PHP_INI_USER 유형 지시어만 허용됩니다.
; 이 기능을 활성화하면 PECL htscanner 확장 기능이 더 이상 사용되지 않습니다.
확장_디렉토리 = "/phpext 경로"
; 확장 라이브러리(모듈)가 저장되는 디렉토리이며, PHP가 동적 확장 모듈을 찾는 데 사용하는 디렉토리이기도 합니다.
; Windows의 기본값은 "C:\php\ext"입니다.
; Unix의 기본값은 컴파일 타임 구성에 따라 달라집니다.
sys_temp_dir = "/경로/대/tmp"
; 임시 파일을 위한 임시 디렉터리입니다. 기본값은 시스템의 임시 디렉터리입니다(sys_get_temp_dir() 함수 참조).
;extension=PHP 모듈 이름(mbstring과 같이 접두사와 접미사 없음)
;zend_extension=Zend 모듈 이름(접두사 및 접미사 없음, 예: opcache )
extension_dir 디렉토리에 없는 모듈의 경우 모듈 파일의 전체 절대 경로를 직접 작성할 수 있습니다.
; [참고] Exif 모듈은 mbstring 이후에 로드되어야 합니다.
[코어 파일 업로드]
파일 업로드 = 켜짐
; HTTP 파일 업로드를 허용할지 여부입니다. upload_max_filesize, upload_tmp_dir, post_max_size 지침을 참조하세요.
업로드_임시_디렉토리 =
; 업로드된 파일을 저장하는 임시 디렉터리입니다(PHP 프로세스에서 쓰기 가능한 디렉터리여야 함). 이 값을 비워 두면 시스템 기본 임시 디렉터리를 사용합니다.
; 지정된 디렉토리에 쓸 수 없는 경우, 시스템 기본 임시 디렉토리가 자동으로 사용됩니다.
; open_basedir이 설정된 경우 시스템 기본 임시 디렉토리를 포함해야 합니다. 그렇지 않으면 업로드 기능이 작동하지 않습니다.
업로드_최대_파일 크기 = 2M
; 업로드가 허용되는 파일의 최대 크기(post_max_size 값보다 작아야 함).
최대 파일 업로드 = 20
; 한 번의 HTTP 요청에서 동시에 업로드할 수 있는 최대 파일 수.
[코어-윈도우]
windows.show_crt_warning = 꺼짐
; C 런타임 경고 메시지를 표시할지 여부(Windows 플랫폼에서만 사용 가능)
;;;;;;;;;;;;;;;;;;;;;
;; 핵심 확장;;
;;;;;;;;;;;;;;;;;;;;;
[날짜시간]
; 처음 네 가지 구성 옵션은 현재 date_sunrise() 및 date_sunset() 함수에서만 사용됩니다.
날짜.기본_위도 = 31.7667
; 기본 위도
날짜.기본_경도 = 35.2333
; 기본 경도
날짜.일출_천정 = 90.833333
; 기본 일출 천정
날짜.일몰_천정 = 90.833333
; 기본 일몰 천정
날짜.시간대 =
TZ 환경 변수가 설정되지 않은 경우 모든 날짜 및 시간 함수에 사용되는 기본 시간대입니다.
; 중국 본토에서는 "PRC" 또는 "Asia/Shanghai"를 사용해야 합니다.
시간대를 적용하는 우선순위는 다음과 같습니다.
; 1. date_default_timezone_set() 함수에 의해 설정된 표준 시간대(설정된 경우)
; 2. TZ 환경 변수(비어 있지 않은 경우)
; 3. 명령의 값(설정된 경우)
; 4. PHP는 스스로 추측합니다(운영 체제가 지원하는 경우)
; 5. 위의 방법이 모두 작동하지 않으면 "UTC"를 사용하세요.
[오류 처리]
오류 보고 = E_ALL
; 오류 보고서에 포함되어야 하는 내용(비트 필드 오버레이):
; 1 E_ERROR 치명적인 런타임 오류
; 2 E_WARNING 런타임 경고(치명적이지 않은 오류)
; 4 E_PARSE 컴파일 타임 구문 분석 오류
; 8 E_NOTICE 런타임 경고(일반적으로 버그이지만 의도적일 수도 있음)
; 16 E_CORE_ERROR PHP 시작 시 초기화 중 치명적인 오류가 발생했습니다.
; 32 E_CORE_WARNING PHP 시작 시 초기화 과정에서 발생하는 경고(치명적이지 않은 오류)
; 64 E_COMPILE_ERROR 컴파일 중 치명적인 오류가 발생했습니다.
; 128 E_COMPILE_WARNING 컴파일 타임 경고(치명적이지 않은 오류)
; 256 E_USER_ERROR 사용자 정의 치명적 오류
; 512 E_USER_WARNING 사용자 정의 경고(치명적이지 않은 오류)
; 1024 E_USER_NOTICE 사용자 정의 알림(종종 버그이지만 의도적일 수 있음)
; 2048 E_STRICT 인코딩 표준화 경고(향후 호환성을 위해 수정하는 방법에 대한 제안)
; 4096 E_RECOVERABLE_ERROR 치명적인 런타임 오류이며, 발견되지 않으면 E_ERROR로 처리됩니다.
; 8192 E_DEPRECATED 향후 버전에서 제대로 작동하지 않을 수 있는 코드에 대해 경고합니다.
; 16384 E_USER_DEPRECATED 사용자 정의 경고(향후 버전에서 제대로 작동하지 않을 수 있는 코드에 대한 경고)
; 32767 E_ALL 위의 모든 오류 및 경고
; [참고] 이러한 상수는 php.ini 외부에서 사용할 수 없습니다(숫자 값을 사용해야 함).
개발 환경을 2147483647(모든 이진 비트가 1)로 설정하여 현재 또는 미래에 나타날 수 있는 다양한 오류와 경고를 켤 수 있습니다.
; 운영 서버에서는 과도한 성능 손실을 방지하기 위해 E_ALL & ~E_DEPRECATED & ~E_STRICT로 설정하는 것이 좋습니다.
성능을 더욱 향상시키려면 E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR(오류만)로 설정하는 것을 고려하세요.
display_errors = 켜짐
오류 메시지를 출력의 일부로 표시할지 여부입니다.
최종 제작된 웹사이트에서는 이 기능을 끄고 대신 오류 로깅을 사용하는 것이 좋습니다.
최종적으로 게시된 웹사이트에서 이 기능을 활성화하면 일부 민감한 정보가 노출될 수 있습니다.
; 특수 값 STDOUT 및 STDERR은 CGI/CLI 모드에서만 사용할 수 있습니다(CLI 모드 기본값 = STDOUT).
display_startup_errors = 켜짐
; PHP가 시작될 때 오류를 표시할지 여부(PHP7 기본값 = Off).
; 이 매개변수를 끄면 display_errors = On인 경우에도 PHP 시작 시 오류가 표시되지 않습니다.
; 중요한 구성 정보의 유출을 방지하기 위해 프로덕션 서버에서는 이 기능을 끄는 것이 좋습니다.
log_errors = 꺼짐
error_log로 지정된 대상에 오류 정보를 기록할지 여부입니다.
; 운영 환경에서는 직접 출력하는 대신 로깅 오류를 사용하는 것이 좋습니다.
; 이를 통해 민감한 정보를 노출하지 않고도 무엇이 잘못되었는지 알 수 있습니다.
; FPM/FastCGI 모드의 기본값 = 켜짐
로그_오류_최대_길이 = 1024
; 오류 메시지에 허용되는 최대 길이(바이트). 이 값을 0으로 설정하면 길이에 제한이 없습니다.
ignore_repeated_errors = 꺼짐
; 반복되는 오류 메시지를 무시할지 여부.
; 오류 메시지는 반복된 것으로 간주되려면 동일한 스크립트의 동일한 줄에 나타나야 합니다(ignore_repeated_source = On이 아닌 경우).
ignore_repeated_source = 꺼짐
ignore_repeated_errors = On인 경우, 오류 메시지의 출처를 무시할지 여부(다른 코드에서 나오는 동일한 오류 메시지 무시).
report_memleaks = 켜짐
; 메모리 누수를 보고할지 여부입니다. 이 매개변수는 디버그 모드로 컴파일된 PHP에서만 작동합니다.
; 그리고 error_reporting 지시문에 E_WARNING을 포함해야 합니다.
report_zend_debug = 꺼짐
; 아직 문서가 없습니다(PHP7 Apache/FPM/FastCGI 모드 기본값 = 켜짐)
html_errors = 켜짐
; 오류 메시지에 HTML 태그를 사용할지 여부.
오류 로깅이 필요한 경우 이 기능을 사용하지 마세요!
; [팁] CLI 모드의 경우 이 명령은 Off로 하드코딩됩니다.
xmlrpc_errors = 꺼짐
; 오류 보고 형식을 XML-RPC 오류 메시지 형식으로 설정할지 여부(일반 오류 보고를 끕니다).
xmlrpc_error_number = 0
; XML-RPC faultCode 요소의 값(xmlrpc_errors = On인 경우에만 의미가 있음).
docref_root = ;"https://www.php.net/manual/zh/"
docref_ext = ;".php"
; html_errors = On이고 docref_root가 설정되어 있으면 PHP는 오류 메시지에 하이퍼링크를 표시합니다.
; 오류를 설명하는 페이지나 오류를 일으킨 기능에 대한 직접 링크입니다.
; PHP 매뉴얼을 다운로드한 후 docref_root 지시문을 로컬 매뉴얼이 있는 URL 디렉토리로 지정할 수 있습니다.
; 또한 파일 확장자를 지정하려면 docref_ext 지시어를 설정해야 합니다(반드시 '.'을 포함해야 함).
; [참고] 프로덕션 서버에서는 이 기능을 사용하지 마세요.
오류_전치_문자열 = ;""
오류_추가_문자열 = ;""
; 오류 메시지 앞뒤에 추가되는 문자열(일반적으로 색상을 추가하는 데 사용됨)
오류_로그 =
; 오류 로깅 대상을 설정합니다. 파일인 경우(권장) 쓰기 권한이 있어야 합니다.
; 시스템 로그에 기록하려면 syslog로 설정합니다(NT에서는 이벤트 로그, Unix에서는 syslog(3)).
; 빈 상태로 설정하면 Apache 오류 로그(apache2handler), 표준 오류(CLI), 로깅 없음(FPM)이 발생합니다.
; FPM/FastCGI 모드의 기본값="/var/log/php-fpm/www-error.log"(RHEL/CentOS)
syslog.facility = LOG_USER
; 시스템 로그(로그를 생성하는 하위 시스템)의 facility 필드 값입니다.
; error_log = syslog인 경우에만 의미가 있습니다.
syslog.filter = no-ctrl
; 로그 메시지에서 안전하지 않은 문자를 필터링합니다("\x???"로 이스케이프):
; ascii (ASCII 문자와 NL 문자만 허용됨)
; no-ctrl (제어 문자가 아닌 모든 문자 허용)
; 모두 (모든 문자 허용)
; raw (모든 문자를 허용하지만 줄바꿈에서 로그 메시지를 분할하지 않음)
; error_log = syslog인 경우에만 의미가 있습니다.
syslog.ident = php
; 시스템 로그의 ident 필드 값(로그 메시지 접두사[식별 문자열]).
; error_log = syslog인 경우에만 의미가 있습니다.
[파일스트림]
allow_url_fopen = 켜짐
; URL(예: http:// 또는 ftp://) 파일로.
allow_url_include = 끄기
; include/require URL(예: http:// 또는)을 허용할지 여부 ftp://).
사용자_에이전트 =
; PHP가 URL에 접근할 때 사용하는 "User-Agent" 문자열
기본_소켓_타임아웃 = 60
; 소켓 스트림의 기본 시간 초과(초)
에서 =
; 익명 FTP에 대한 비밀번호(이메일 주소)를 정의합니다.
자동 줄 끝 감지 = 끄기
; PHP가 줄 끝(EOL)을 자동으로 감지하도록 할지 여부입니다.
스크립트가 Macintosh 파일을 처리해야 하거나 Macintosh에서 실행하고 Unix 또는 Win32 파일을 처리해야 하는 경우
; 이 지시어를 켜면 PHP가 자동으로 EOL을 감지하여 fgets() 및 file() 함수가 제대로 작동할 수 있습니다.
; 하지만 Unix 시스템에서 항목 구분 기호로 캐리지 리턴(CR)을 사용하는 사용자에게는 호환되지 않는 동작이 발생할 수도 있습니다.
; 또한, 첫 번째 줄에서 EOL 규칙을 감지하면 성능이 약간 저하됩니다.
[필터]
;확장자=필터
; 신뢰할 수 없는 출처의 데이터를 확인하고 필터링합니다.
필터.기본값 = 안전하지 않음_원시
; 지정된 필터를 사용하여 $_GET, $_POST, $_COOKIE, $_REQUEST, $_SERVER 데이터를 필터링합니다(unsafe_raw는 필터링이 없음을 의미함).
원시 데이터는 filter_input() 함수를 통해 접근할 수 있습니다.
필터.기본_플래그 =
; 기본 필터 플래그.
[옵션정보]
assert.active = 켜짐
assert() 어설션 평가를 활성화할지 여부.
assert.bail = 꺼짐
; 실패한 어설션이 발생할 때 스크립트 실행을 중단할지 여부
assert.warning = 켜짐
; 실패한 각 어설션에 대해 경고를 발행할지 여부
assert.콜백 =
; 실패한 어설션이 발생할 때 실행되는 콜백 함수
assert.exception = 켜짐
; 어설션이 실패할 때 AssertionError 예외를 throw할지 여부
; PHP7 기본값 = Off
enable_dl = 켜짐
; dl() 함수 사용을 허용할지 여부입니다. dl() 함수는 PHP가 Apache 모듈로 설치된 경우에만 유효합니다.
dl() 함수를 비활성화하는 주된 이유는 보안상의 이유로, open_basedir 지시어의 제한을 우회할 수 있기 때문입니다.
; 이 기능은 향후 반드시 제거될 예정입니다. 끄기로 설정하는 것을 강력히 권장합니다.
최대 실행 시간 = 30
각 스크립트에 허용되는 최대 실행 시간(초), 0은 제한 없음을 의미합니다.
; 이 매개변수는 품질이 낮은 스크립트가 서버 리소스를 끝없이 차지하는 것을 방지하는 데 도움이 됩니다.
; 이 지시어는 스크립트 자체의 실행 시간에만 영향을 미칩니다. 스크립트 실행 외에 소요된 다른 시간은
예를 들어, system()/sleep() 함수, 데이터베이스 쿼리, 파일 업로드 등은 포함되지 않습니다.
; [팁] CLI 모드의 경우 이 명령은 "0"(제한 없음)으로 하드코딩됩니다.
; [팁] 이 지시어를 Apache의 Timeout 지시어보다 크게 설정하지 마세요(PHP 실행이 조기에 중단될 수 있습니다).
최대 입력 시간 = -1
각 스크립트가 입력 데이터(POST, GET, upload)를 수신하는 데 허용되는 최대 시간(초)입니다.
; -1은 무제한을 의미합니다. 운영 서버에서는 스크립트가 무기한 실행되는 것을 방지하기 위해 이 값을 명시적으로 지정해야 합니다.
사용자의 연결 속도가 느리고 큰 파일을 업로드해야 하는 경우 더 큰 값을 설정해야 합니다.
; [팁] CLI 모드의 경우 이 명령은 "-1"(제한 없음)로 하드코딩됩니다.
최대 입력 중첩 수준 = 64
; 입력 변수의 최대 중첩 깊이($_GET, $_POST, $_COOKIE ...)
최대 입력 변수 = 1000
; 입력 변수의 최대 총 멤버 수($_GET, $_POST, $_COOKIE ...).
; 이 지침은 해시 충돌을 통한 서비스 거부 공격의 가능성을 완화합니다.
; 한도를 초과하는 입력 변수는 잘리고 E_WARNING이 생성됩니다.
zend.enable_gc = 켜짐
; 순환 참조 카운터 수집기(가비지 수집)를 활성화할지 여부입니다. 이 지시어를 끄면 메모리 누수가 발생할 수 있습니다.
[우편]
mail.add_x_header = 끄기
; X-PHP-Originating-Script: 헤더에 "스크립트 UID + 파일 이름" 정보를 포함할지 여부
메일.강제_추가_매개변수 =
; mail() 함수의 다섯 번째 매개변수의 필수 사양입니다.
메일.로그 =
; mail() 함수 호출을 기록하는 방법입니다. 기록하지 않으려면 비워 두세요.
; 파일에 기록함을 나타내려면 파일 경로로 설정할 수 있고, 시스템 로그에 기록함을 나타내려면 syslog로 설정할 수 있습니다.
SMTP = "로컬호스트"
mail() 함수가 이메일을 보내는 데 사용하는 SMTP 서버의 호스트 이름 또는 IP 주소입니다(Windows 전용).
SMTP_포트 = 25
; SMTP 서버의 포트 번호(Windows 전용).
sendmail_from =
메일을 보낼 때 "보낸 사람:" 헤더에 이메일 주소를 입력합니다(Win32에만 해당).
; 이 옵션은 "Return-Path:" 헤더도 설정합니다.
sendmail_path = /경로/송신메일
; sendmail 프로그램의 경로(명령줄 인수 포함).
; 구성 스크립트는 이 프로그램을 찾아 기본값(보통 "/usr/sbin/sendmail -t -i")으로 설정하려고 하지만, 실패하면 여기에서 수동으로 설정할 수 있습니다.
sendmail을 사용하지 않는 시스템은 이 지시어를 sendmail 대체 프로그램(있는 경우)으로 설정해야 합니다.
; Windows 플랫폼에서 이 지시문의 기본값은 비어 있습니다.
; Windows 플랫폼에서 이 지시어가 설정되면 smtp smtp_port sendmail_from 지시어는 무시되고 여기에 지정된 명령이 실행됩니다.
[기타]
ignore_user_abort = 꺼짐
사용자가 요청을 중단하더라도 전체 요청을 완료할지 여부.
; 요청이 길어지면 사용자가 중단하거나 브라우저 시간이 초과될 수 있으므로 이 값을 켜짐으로 설정하는 것이 좋습니다.
하이라이트.댓글 = "#FF8000"
하이라이트.기본값 = "#0000BB"
하이라이트.html = "#000000"
하이라이트.키워드 = "#007700"
하이라이트.문자열 = "#DD0000"
; 구문 강조 모드에 대한 색상(일반적으로 .phps 파일을 표시하는 데 사용됨).
; 가능한 한 수락하시면 정상적으로 작동할 것입니다.
browscap = ;"c:/windows/system32/inetsrv/browscap.ini"
; 브라우저 기능 파일의 위치 및 파일 이름(이 설정은 PWS 및 IIS에만 필요합니다).
[출력제어]
출력 버퍼링 = 0
; 출력 버퍼 크기(바이트). 권장 값은 4096입니다. [ob_start() 함수로 제어할 수도 있습니다.]
; 출력 버퍼링을 사용하면 본문 내용을 출력한 후에도 HTTP 헤더(쿠키 포함)를 보낼 수 있습니다.
출력 버퍼링을 설정하면 전송되는 네트워크 패킷 수가 줄어들 수 있습니다(네트워크 성능 향상).
; 이 매개변수의 실제 이점은 사용하는 웹 서버와 스크립트 종류에 따라 크게 달라집니다.
; [TIP] CLI 모드의 경우 이 명령은 "0"(출력 버퍼링 비활성화)으로 하드코딩됩니다.
출력_핸들러 =
모든 스크립트 출력을 출력 핸들러 함수로 리디렉션합니다.
; 예를 들어, "mb_output_handler"로 설정하여 mb_output_handler() 함수로 리디렉션하는 경우 문자 인코딩이 지정된 인코딩으로 투명하게 변환됩니다.
; 여기에 출력 핸들러가 지정되면 출력 버퍼링이 자동으로 켜집니다(버퍼 크기 = 무제한).
; 참고 0: 여기서는 PHP 내장 함수만 사용할 수 있습니다. 사용자 정의 함수는 ob_start() 함수를 사용하여 스크립트에 지정해야 합니다.
; 참고 1: 이식 가능한 스크립트는 이 지시어에 의존해서는 안 되지만 ob_start() 함수를 사용하여 출력 처리 함수를 명시적으로 지정해야 합니다.
; 이 명령을 가볍게 사용하지 마십시오. 익숙하지 않은 스크립트에서 오류가 발생할 수 있습니다.
; 참고 2: 두 개의 출력 처리 함수 "mb_output_handler"와 "ob_iconv_handler"는 동시에 사용할 수 없습니다.
"ob_gzhandler" 출력 처리 함수와 "zlib.output_compression" 지시어는 동시에 사용할 수 없습니다.
; 참고 3: "zlib.output_compression = On"인 경우 이 지시어는 비어 있어야 합니다(대신 "zlib.output_handler"를 사용하세요).
implicit_flush = 꺼짐
; 각 출력 블록 후에 PHP 출력 계층에서 자동으로 데이터를 플러시할지 여부입니다.
; 이는 print(), echo(), HTML 블록마다 자동으로 flush() 함수를 호출하는 것과 같습니다.
; 이 옵션을 켜면 프로그램 실행 성능에 심각한 영향을 미치므로 디버깅에만 권장됩니다.
; [팁] CLI 모드의 경우 이 명령은 "On"(강제 자동 플래시)으로 하드코딩됩니다.
[PCRE]
pcre.백트랙_제한 = 1000000
; 최대 백트래킹 깊이.
pcre.재귀_제한 = 100000
; 최대 재귀 깊이. 이 값을 너무 높게 설정하면 프로세스 스택 공간이 부족해져 PHP가 충돌할 수 있습니다.
pcre.jit = 1
; PCRE 라이브러리의 JIT(Just-In-Time) 컴파일을 활성화할지 여부.
[파르]
;확장자=phar
; 배포를 단순화하기 위해 PHP 애플리케이션/라이브러리를 패키징합니다(다른 사람이 사용할 수 있도록 읽기 전용으로 설정).
phar.readonly = 켜짐
; Phar 읽기 전용 모드를 활성화할지 여부입니다. 프로덕션 환경에서는 이 명령을 반드시 활성화해야 합니다. 그렇지 않으면 심각한 보안 취약점이 발생할 수 있습니다.
phar.require_hash = 켜짐
; 모든 Phar 아카이브의 서명을 검증할지 여부(아카이브 내용의 변조 방지). 보안 강화를 위해 활성화하는 것이 좋습니다.
phar.cache_list =
; 서버 시작 시 분석할 Phar 아카이브 목록(성능 향상을 위해).
[세션]
세션.저장_핸들러 = 파일
; 세션 데이터를 저장하고 검색하는 스토리지 핸들러의 이름입니다. 기본값은 파일("files")입니다.
"user"로 설정하면 session_set_save_handler()를 사용하여 사용자 정의 스토리지 핸들러를 등록할 수 있습니다.
; 확장 모듈은 새로운 스토리지 핸들러를 등록할 수 있습니다. 등록된 모든 스토리지 핸들러는 phpinfo()를 통해 확인할 수 있습니다.
세션.저장_경로 =
; save_handler에 전달된 매개변수입니다. 파일 핸들러의 경우, 이는 세션 데이터 파일이 저장되는 디렉터리입니다(기본값은 시스템 임시 디렉터리입니다).
"N;[MODE;]/path" 모드를 사용하여 디렉토리를 정의할 수 있습니다. 여기서 선택 사항인 [MODE;]는 8진수로 표현된 데이터 파일 액세스 권한입니다(기본값은 "600").
; 정수 N은 많은 수의 세션에 대한 성능을 향상시키기 위해 동일한 디렉토리에 모든 데이터 파일을 저장하는 대신 N 레벨의 깊은 하위 디렉토리를 사용하는 것을 의미합니다.
; 참고: (1) "N;[MODE;]/path"를 둘러싼 큰따옴표는 생략할 수 없습니다(";"은 주석 문자이기 때문). (2) [MODE;]는 프로세스의 umask를 다시 쓰지 않습니다.
; (3) PHP는 이러한 디렉토리 구조를 자동으로 생성하지 않습니다(ext/session 디렉토리에서 mod_files.sh 스크립트를 사용할 수 있습니다).
; (4) 디렉토리(예: "/tmp")가 안전하지 않은 사용자에 의해 읽히거나 검색될 수 있는 경우 보안 취약점(세션 ID 또는 세션 데이터 유출)이 발생합니다.
; (5) N>0인 경우 자동 가비지 수집이 실패합니다(자세한 내용은 session.gc_* 지침 참조).
; (6) N>2로 설정하는 것은 (각 계층은 64개의 하위 디렉토리를 가지고, N=3은 64*64*64개의 하위 디렉토리를 만드는 것을 의미함) 세션 수가 엄청나게 많을 때만 필요할 수 있습니다.
; (7) 각 가상 호스트마다 다른 세션 저장 디렉토리를 설정하는 것이 좋습니다.
; FPM/FastCGI 모드의 기본값="/var/lib/php/session"(RHEL/CentOS)
세션 이름 = PHPSESSID
; 쿠키에 사용되는 세션 ID에는 문자와 숫자만 포함될 수 있습니다.
세션.자동_시작 = 꺼짐
클라이언트가 모든 페이지를 방문할 때 세션 엔진을 자동으로 초기화할지 여부입니다.
; 클래스 정의는 세션이 시작되기 전에 로드되어야 하므로 이 옵션이 켜져 있으면 객체를 세션에 저장할 수 없습니다.
세션.직렬화_핸들러 = php
; 데이터를 직렬화/역직렬화하는 데 사용되는 프로세서입니다. "php", "php_binary", "php_serialize"를 사용할 수 있습니다.
; 특정 제한과 결함을 피하기 위해 기존의 "php" 대신 새로운 "php_serialize"를 사용하는 것이 좋습니다.
; [참고] WDDX 지원이 활성화되면 "wddx"만 사용됩니다.
세션.gc_확률 = 1
세션.gc_divisor = 100
; 세션이 초기화될 때마다 가비지 수집기를 시작할 확률을 정의합니다.
; 수집 확률은 다음과 같이 계산됩니다: session.gc_probability/session.gc_divisor
; 세션 페이지 접근 빈도가 높을수록 확률은 낮아져야 합니다. 1/(1000~5000)으로 설정하는 것이 좋습니다.
세션.gc_maxlifetime = 1440
; 이 지시어에서 지정한 초가 지나면 저장된 데이터는 '가비지'로 간주되어 가비지 수집기에 의해 정리됩니다.
; 판단 기준은 데이터에 마지막으로 액세스한 시간입니다(FAT 파일 시스템의 경우 데이터가 마지막으로 새로 고쳐진 시간입니다).
; 여러 스크립트가 동일한 session.save_path 디렉토리를 공유하지만 session.gc_maxlifetime이 다른 경우,
; 그러면 모든 session.gc_maxlifetime 지시어의 최소값이 사용됩니다.
여러 수준의 하위 디렉터리를 사용하여 데이터 파일을 저장하는 경우 가비지 수집기가 자동으로 시작되지 않습니다.
가비지 수집을 수행하려면 사용자 정의 스크립트, 크론 작업 또는 기타 방법을 사용해야 합니다.
; 예를 들어, 다음 스크립트는 "session.gc_maxlifetime=1440"(24분)을 설정하는 것과 같습니다.
; cd /path/to/sessions; find -cmin +24 | xargs rm
세션.참조자_확인 =
; 요청 헤더의 "Referer:" 필드에 여기에 지정된 문자열이 포함되어 있지 않으면 세션 ID가 유효하지 않은 것으로 간주됩니다.
; 참고: 요청 헤더에 "참조자:" 필드가 전혀 없더라도 세션 ID는 여전히 유효한 것으로 간주됩니다.
; 기본값은 비어 있으며, 이는 어떠한 검사도 수행하지 않음을 의미합니다(모든 것이 유효한 것으로 간주됨).
세션.use_strict_mode = 0
; 엄격한 세션 ID 모드(초기화되지 않은 세션 ID 거부) 사용 여부. 엄격한 모드를 활성화하면 세션 고정 공격으로부터 서버를 보호할 수 있습니다.
"엄격 모드"는 브라우저가 초기화되지 않은 세션 ID를 보내면 서버가 새로 초기화된 세션 ID로 응답한다는 것을 의미합니다.
; 기본값 "0"은 엄격 모드 비활성화를 의미합니다. 이 기능을 활성화하려면 "1"로 설정하는 것이 좋습니다.
세션.쿠키 사용 = 1
클라이언트 측에서 세션 ID를 저장하기 위해 쿠키를 사용할지 여부("1"은 활성화, "0"은 비활성화).
세션.쿠키_전용_사용 = 1
; 클라이언트 측에서 세션 ID를 저장하기 위해 쿠키만 사용할지 여부("1"은 활성화, "0"은 비활성화).
이 기능을 활성화하면 URL에 세션 ID를 전달함으로써 발생하는 보안 문제를 방지할 수 있습니다.
보안을 강화하려면 이 옵션을 활성화하는 것이 좋습니다.
세션.쿠키_수명 = 0
; 세션 ID를 전달하는 쿠키의 유효 기간(초). "0"은 브라우저가 열려 있는 동안만 유효함을 의미합니다.
; [팁] 서버 시간과 클라이언트 시간이 엄격하게 일치하도록 보장할 수 없다면 이 기본값을 변경하지 마세요!
세션.쿠키_경로 = /
; 세션 ID를 전달하기 위한 쿠키 경로.
세션.쿠키_도메인 =
; 세션 ID를 전달하는 쿠키의 범위(도메인 이름).
; 기본값인 비어 있음은 호스트 이름이 쿠키 사양에 따라 생성됨을 의미합니다.
세션.쿠키_보안 = 0
; 보안 연결(https)을 통해서만 쿠키를 보낼지 여부("1"은 활성화, "0"은 비활성화).
세션.쿠키_httponly = 0
쿠키에 httpOnly 플래그(HTTP 프로토콜 접근만 허용)를 추가할지 여부("1"은 활성화를 의미하고, "0"은 비활성화를 의미).
; 이 기능을 활성화하면 클라이언트 스크립트(JavaScript 등)가 쿠키에 액세스하는 것을 방지할 수 있습니다.
이 지시어를 켜면 XSS 공격을 통한 세션 ID 하이재킹을 효과적으로 방지할 수 있습니다.
세션.쿠키_동일 사이트 =
; SameSite 속성 값을 쿠키에 추가합니다("Strict", "Lax", "None" 중 하나[따옴표를 꼭 유지해야 함]).
; 서버가 클라이언트에게 이 쿠키가 크로스 사이트 요청에 사용되어서는 안 된다고 선언할 수 있도록 하여 크로스 사이트 요청 위조를 방지하는 데 도움이 됩니다.
; 모든 브라우저가 이 기능을 지원하는 것은 아닙니다. 이 값을 비워 두면 SameSite 속성이 쿠키와 함께 전송되지 않습니다.
; "Strict"는 POST와 GET 모두 사이트 간에 쿠키를 보내는 것이 금지됨을 의미합니다.
; "Lax"는 POST가 사이트 간에 쿠키를 보내는 것을 금지하지만 GET은 사이트 간에 쿠키를 보내는 것을 허용한다는 의미입니다.
; 보다 https://tools.ietf.org/html/draft-west-first-party-cookies-07
session.cache_limiter = 캐시 없음
세션 페이지에 대한 캐시 제어 정책을 지정합니다(nocache|private|private_no_expire|public).
; nocache는 클라이언트와 프록시 서버 캐싱을 비활성화하는 것을 의미하고, public은 클라이언트와 프록시 서버 캐싱을 허용하는 것을 의미합니다.
; private은 클라이언트 캐싱은 허용되지만 프록시 서버 캐싱은 금지됨을 의미합니다.
; private_no_expire는 private과 동일하지만 "Expire:" 응답 헤더를 전송하지 않습니다(Mozilla와 같은 브라우저가 Expire 응답 헤더를 올바르게 처리하지 못할 수 있는 버그를 해결하기 위함).
; 빈 값으로 설정하면 캐시 정책과 관련된 응답 헤더를 전송하지 않습니다. 자세한 내용은 session_cache_limiter() 함수를 참조하세요.
세션.캐시_만료 = 180
; 클라이언트 캐시에 있는 세션 페이지의 만료 시간(분)을 지정합니다. session.cache_limiter = nocache인 경우 이 설정은 의미가 없습니다.
세션.사용_전송_시드 = 0
URL에 SID(세션 ID)를 일반 텍스트로 표시할지 여부("1"은 활성화됨, "0"은 비활성화됨을 의미).
URL 기반 세션 관리 기능은 쿠키 기반 세션 관리 기능보다 항상 위험하므로 비활성화해야 합니다.
세션.trans_sid_tags = "a=href,area=href,frame=src,form="
; SID를 포함하도록 다시 작성할 HTML 태그를 지정합니다(session.use_trans_sid = On인 경우에만 의미가 있음).
;