본문 바로가기

카테고리 없음

php.ini 환경설정 설명

* MissFlash의 리눅스 유용 명령어 목록

php 환경설정(php.ini) : [Language Options]

engine = On : Apache에서 PHP 스크립트 언어 엔진 적용(Off로 설정시 PHP파일을 보여주지 못하고 다운로드하게 됨) 
zend.ze1_compatibility_mode = Off : zend 엔진 버전1의 호환모드 설정 
short_open_tag = On : <? 태그 사용 허용(Off로 설정시 <?php, 와 <script> 태그만 인식) 
asp_tags = Off : ASP 스타일의 <%, %> 태그 사용여부 설정 
precision = 12 : 부동소수점의 유효 자리수 설정 
y2k_compliance = On : 2000년 호환모드로 설정 
output_buffering = Off : 모든 파일의 출력 버퍼링 활성화 여부 설정(구체적인 숫자 입력시 출력 버퍼링을 특정 사이즈로 제한) 
;output_handler = : 스크립트의 모든 출력을 특정 함수를 통해 할 수 있음 
zlib.output_compression = Off : zlib을 사용해 페이지를 압축할 것인지 설정 
;zlib.output_compression_level = -1 : 압축 레벨 설정 
;zlib.output_handler = : zlib.output_compression을 활성화할 경우, 추가 출력 핸들러를 지정할 수 없음 
implicit_flush = Off : On 설정시 print(), echo() 및 각 HTML 블록의 뒤에 flush()함수를 부르는 것과 동일하게 작용(성능저하 유발)

unserialize_callback_func = : unserialize 중에 정의되지 않은 클래스를 작성해야 할 경우, 콜백 함수를 호출(정의되지 않은 클래스를 작성해야 할 때마다 호출) 
allow_call_time_pass_reference = On : 함수 사용시 변수를 강제적으로 참조하는 것 금지


php 환경설정(php.ini) : [Safe Mode]

safe_mode = Off : 안전모드 사용여부 설정 
safe_mode_gid = Off : 파일이 열릴 때, UID 비교검사 수행(On 설정시 GID 비교검사 수행) 
safe_mode_include_dir = : 지정한 디렉토리 및 하위 디렉토리의 파일을 include 하는 경우, UID/GID 검사 미수행 
safe_mode_exec_dir = : (안전모드에서) system() 및 시스템 프로그램을 실행하는 함수의 경로(이 디렉토리에 없으면 함수를 실행할 수 없음) 
safe_mode_allowed_env_vars = PHP_ : (안전모드에서) 지정된 문자로 시작하는 환경변수만 변경 가능 
safe_mode_protected_env_vars = LD_LIBRARY_PATH : putenv()로 변경할 수 없는 환경변수 설정 
;open_basedir = : 안전모드와 관계없이 PHP가 열 수 있는 디렉토리 설정 
disable_functions = : 특정 함수 사용 금지 설정 
disable_classes = : 특정 클래스 사용 금지 설정 
;highlight.string = #DD0000 : 문법의 하이라이트 표시 설정(string, comment, keywork, bg, default, html 설정 가능) 
;ignore_user_abort = On : 클라이언트가 연결을 끊었을 때, 스크립트 수행을 중단한 것인지 설정(기본값은 스크립트 중단) 
;realpath_cache_siae = 16k : realpath 캐쉬 양 설정 
;realpath_cache_ttl = 120 : 캐쉬의 유효기간을 초단위로 설정 
expose_php = On : PHP가 해당 서버에 인스톨되고, 사용되고 있다는 내용 알림 설정(On 설정시 내용 알림)


php 환경설정(php.ini) : [Resource Limits]

max_execution_time = 30 : 스크립트 최대 실행시간(초단위) 설정 
max_input_time = 60 : POST, GET, 파일업로드 등의 입력 데이터를 받아들이는 최대시간(초단위) 설정 
memory_limit = 128M : 스크립트가 사용할 수 있는 최대 메모리양 설정


php 환경설정(php.ini) : [Error handling and logging]

error_reporting = E_ALL & ~E_NOTICE : E_NOTICE를 제외한 모든 에러 출력(다음의 항목들이 사용 가능함, E_ALL[각주:1], E_ERROR[각주:2], E_RECOVERABLE_ERROR[각주:3], E_WARNING[각주:4], E_PARSE[각주:5], E_NOTICE[각주:6], E_CORE_ERROR[각주:7], E_CORE_WARNING[각주:8], E_COMPILE_ERROR[각주:9], E_COMPILE_WARNING[각주:10], E_USER_ERROR[각주:11], E_USER_WARNING[각주:12], E_USER_NOTICE[각주:13])

display_errors = On : 에러 표시 설정(보안상 이 기능 대신 error_log를 사용할 것을 권장) 
display_startup_errors = Off : PHP 시작시 에러 미표시 설정 
log_errors = Off : 로그파일에 에러로그 기록여부 설정 
ignore_repeated_errors = Off : 반복된 에러의 기록여부 설정(Off 설정시 반복 에러 기록 안함) 
track_errors = Off : $php_errormsg에 마지막 에러/경고 메시지 저장 여부 설정 
;html_errors = Off : 에러 메세지에 HTML 태그 추가여부 설정(Off 설정시 HTML 태그 미추가) 
;error_prepend_string = "<font color=ff0000>" : 에러 메세지 앞에 출력하는 라인 설정 
;error_append_string = "</font>" : 에러 메세지의 뒤에 출력하는 라인 설정 
;error_log = filename : 지정된 파일에 에러 기록 
;error_log = syslog : syslog에 에러 기록


php 환경설정(php.ini) : [Data Handling]

;arg_separator.output = "&amp;" : PHP가 생성한 URL 인자를 구분하는 구분자 설정 
;arg_separator.input = ";&" : PHP가 URL에서 변수를 분리하는데 사용하는 구분자 설정 
variables_order = "EGPCS" : EGPCS[각주:14] 변수의 파싱순서 설정(GP로 설정시 GET 변수는 같은 이름의 POST 변수에 덮어씌워짐) 
register_globals = Off : 입력 데이터의 글로벌 변수 등록여부 설정(Off 설정시 $var 대신 $_REQUEST["var"], $_GET["var"], $_POST["var"] 등으로 써야 함 - 권장) 
register_long_arrays = On : $HTTP_*_VARS 형태의 예약변수 등록 여부 설정(Off 설정시 $HTTP_GET_VARS 대신 $_GET 등의 자동 전역배열을 사용함 - 권장) 
register_argc_argv = On : argc 및 argv 변수의 사용여부 설정 
post_max_size = 8M : POST 데이터가 허용하는 최대 사이즈 설정(큰 파일 업로드시 post_max_size가 upload_max_filesize보다 커야함) 
magic_quotes_gpc = On : GET/POST/Cookie의 입력 데이터에 포함된 작은 따옴표, 큰 따옴표, 역슬래쉬, NULL은 자동으로 역슬래쉬로 이스케이프할지 설정 
magic_quotes_runtime = Off : DB나 텍스트 파일에 포함된 작은 따옴표, 큰 따옴표, 역슬래쉬, NULL을 자동으로 역슬래쉬로 이스케이프할지 설정 
magic_quotes_sybase = Off : 작은 따옴표를 \' 대신 ''로 변환할지 설정(On 설정시 ''로 변환) 
auto_prepend_file =, auto_append_file = : PHP 문서 전후에 추가할 파일 설정 
default_mimetype = "text/html", default_charset = "utf-8" : Content-type: 헤더로 출력할 문자 인코딩 설정 
;always_populate_raw_post_data = On : 항상 $HTTP_RAW_POST_DATA 변수를 선언할지 설정

 

php 환경설정(php.ini) : [Paths and Directories]

;include_path = ".:/php/includes" : require(), include(), fopen_with_path() 함수가 파일을 찾는 디렉토리 목록 설정 
doc_root = : PHP 루트 디렉토리 설정(안전모드 설정시 루트 디렉토리 밖의 파일은 사용할 수 없음) 
user_dir : PHP 파일을 사용하는 유저의 홈 디렉토리(public_html) 이름 설정 
extension_dir = "/usr/local/server/php/modules" : 확장모듈 디렉토리 설정 
extension = mysqli.so ; : PHP가 시작할 때 읽어들일 모듈 설정 
enable_dl = On : dl() 함수를 유효하게 할 것인지 설정 
; cgi.force_redirect = 1 : 대부분의 웹서버에서 PHP를 CGI로 사용할 때 보안을 위해 설정(기본값 On) 
; cgi.redirect_status_env = ; : ? 
;cgi.rfc2616_headers = 0 : PHP가 HTTP 응답코드를 보낼때 사용할 헤더 설정(0 설정시 Status: 헤더를, 1 설정시 RFC 2616 호환 헤더 전송)

 

php 환경설정(php.ini) : [File Uploads]

file_uploads = On : 파일 업로드 허가여부 설정 
;upload_tmp_dir = : HTTP로 파일 업로드시 임시 작업 디렉토리 설정(미 지정시 시스템 디폴트 디렉토리[각주:15]가 사용됨) 
upload_max_filesize = 2M : 업로드 파일의 최대 사이즈 설정

 

php 환경설정(php.ini) : [Fopen wrappers]

allow_url_fopen = Off : 파일 액세스시 외부사이트 파일을 불러올 수 있는지여부 설정(보안상 Off로 설정할 것을 권장함) 
;from="admin@myhome.com" : 익명 FTP의 패스워드 설정 
;user_agent = "PHP" : PHP가 전송하는 유저에이전트 설정 
default_socket_timeout = 60 : 소켓기반 스트림의 기본 시간제한 설정 
;auto_detect_line_endings = Off : fget(), file()로 읽은 데이터의 줄바꿈 방식 선택여부 설정(On 설정시 유닉스, MS-DOS, 매킨토시 방식 중 어떤 것을 사용할 것인지 검사)




1. short_open_tag = On
Tells PHP whether the short form (<? ?>) of PHP's open tag should be allowed


2. memory_limit = 256M
스크립트 마다의 최대 메모리 소비량
크기를 memory_limit > post_max_size > upload_max_filesize 순으로 설정


3. error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
Common Values:
http://php.net/error-reporting


4. display_errors = On
옵션을 off으로 설정하면 php 스크립트 error가 발생하여도 웹상에서는 보이지 않습니다.


5. post_max_size = 100M
PHP 가 받아들이는 일을 할 수 있는 POST 데이터의 최대 사이즈


6. upload_max_filesize = 100M
업로드 할 수 있는 최대 파일 크기
post_max_size보다 작거나 같게 설정합니다. post_max_size보다 크게 주는 건 의미가 없습니다.


7. max_file_uploads = 100
단일 요청을 통해 업로드 할 수있는 최대 파일 수


8. sql.safe_mode = On
SQL 관련 함수를 위한 것으로 안전모드를 사용 할 것인지를 지정


9. allow_url_fopen = Off
allow_url_fopen 비적용


10. PHP 시간대 설정 ( 일본 Asia/Tokyo )
date.timezone = "Asia/Seoul"
http://byseob.blogspot.kr/2009/11/phpini-환경에서-datetimezone-관련-warning.html
https://zetawiki.com/wiki/PHP_시간대_설정 


11. expose_php = Off
HTTP 헤더 아파치 버전 숨기기
http://jeonghyun.tistory.com/121
https://zetawiki.com/wiki/아파치_PHP_버전_숨기기 


12. session.gc_maxlifetime = 3600
사용되지 않는 것으로 보이는 세션 데이터를 삭제한다.
; 1440 = 60초 x 24분 = 24분
; 3600 = 60초 x 60분 = 1시간
; 86400 = 60초 x 60분 x 24시간 = 1일
http://unabated.tistory.com/entry/세션-설정-phpini


13. disable_functions = system,exec,passthru,proc_open,popen,curl_exec,curl_multi_exec,parse_ini_file,show_source
함수를 비활성화
http://php.net/manual/kr/ini.sect.safe-mode.php


14. variables_order = "EGPCS"
수퍼 전역(super-global) 변수의 형태로 등록할 수 있는 입력을 정의하는데 사용
GPCS는 GET, POST, Cookie, Environment and Built-in variables를 의미
http://couplewith.blog.me/60006529101
http://cafecola.tistory.com/22


15. register_globals = off
php.ini 마지막에 추가 ( vi 에디터에서 $G 를 누릅니다. )
PHP 5.3.0부터 배제되어, PHP 5.4.0부터 제거됩니다.