본문 바로가기

스터디/기타

세번째 시간! PHP 설정 어떤걸 수정해줘야 할까??

기본적으로 PHP를 서버에 설치하고 난 이후에 그냥 사용하여도 되지만, 어느정도 기능이 작동하기 위해선 기본적으로 PHP 설정을 살포시 수정해줘야 합니다.

 

아래는 기본적인 수정 사항입니다.

 

주로 사용하는 수정설정

max_execution_time 

초단위로 PHP실행시간입니다.

max_input_time  초단위로 업로드 실행 시간입니다.
post_max_size  파일은 보통 POST로 올라가기에 파일업로드를 고려하여 수정
upload_max_filesize  보통 post_max_size와 같은 사이즈로 수정해주면 문제가 없다.
default_charset  케릭터셋 설정
session.gc_maxlifetime  세션 유지시간 로그인 시간
session.cookie_lifetime 브라우저 꺼지면 세션종료
date.timezone PHP기본 시간
display_errors  에러표시유무

 

 

 



; safe_mode: php를 안전 모드에서 동작하도록 합니다.
; 물론 보안에 더 신경을 쓰시는 분들은 On을 권장하기도 합니다만,
; 대부분의 전문가들은 오히려 안전 모드에서 더 많은 취약점이 존재할 수 있다고 경고합니다.
; 또한 php6에서는 안전 모드를 지원하지 않게됩니다.
; 이유 여하를 막론하고 이 옵션은 Off로 설정 하세요!
safe_mode = Off

; open_basedir: 기본적으로 php 파일과 php 파일이 사용하는 디렉토리를 지정합니다.
; 이 설정은 보안상 매우 중요하지만, 설정이 까다롭고 오류 메시지 기록을 자주 확인하여
; 미처 빠진 디렉토리가 없는지 살펴봐야 합니다.
open_basedir = "C:/XAMPP/htdocs"

; Disable_functions: php에서 사용 금지할 함수들을 설정합니다.
; 이 설정 역시 상당한 수준의 보안을 가능하게 합니다.
; 기본적으로 저는 이러한 설정 값을 권장합니다.
disable_functions = "escapeshellarg, escapeshellcmd, exec, passthru, proc_close, proc_get_status, proc_nice, proc_open, proc_terminate, shell_exec, virtual, show_source, phpinfo"

; expose_php: php 버전 정보의 공개 여부를 설정합니다.
; 많은 분들이 이 설정을 놓칩니다.
; php 버전 보다는 apache의 버전을 더 가리는데 급급하기 때문에 오히려 공격자로 하여금
; 충동만 느낄 수 있게 하는 결과를 가져올 수도 있습니다.
; 따라서 반드시 이 설정은 특별한 경우를 제외하고 Off로 지정하시길 바랍니다.
expose_php = Off

; error_reporting: 오류 리포팅 기능을 설정합니다.
; 개발자나 디버깅을 원하지 않을 때는 이 설정을 꺼주는 편이 성능상 좋습니다.
; E_NONE 설정 값은 사용하지 않겠다는 의미입니다.
error_reporting  =  E_NONE

; display_errors: 화면에 오류 메시지를 그대로 출력할지 여부를 설정합니다.
; 많은 분들이 놓치는 또 하나의 설정입니다.
; 오류 메시지를 모든 외부 사용자가 볼 수 있다는 것은 오류를 그만큼 더 빨리 찾을 수 있지 않을까하는
; 착각에 당연히 켜두는 분들이 많습니다.
; 오류를 화면에 출력하지 않는 대신 서버 기록에만 남겨두는 더 좋은 방법이 있음에도 불구하고
; 이런 설정은 공격자로 하여금 더 빠른 공격 결과를 받아 볼 수 있게 합니다.
display_errors = Off

; log_errors: 오류 메시지가 존재하면 곧바로 서버 기록에 남기는 설정입니다.
; 위의 display_errors 설정과 함께 사용하길 권장합니다.
log_errors = On

; error_log: 오류 메시지를 기록할 파일의 위치를 설정합니다.
; 위의 log_errors 설정과 함께 사용하길 권장합니다.
; 파일의 위치 대신, syslog라고 입력하면 NT계열 운영체제에서 이벤트 로그에 기록이 남게됩니다.
error_log = "C:\XAMPP\apache\logs\phperror.log"

; register_globals: 전역 변수를 등록할 수 있는지에 대한 설정입니다.
; 최근에는 많은 분들이 기본적으로 꺼야 보안에 이롭다는 것을 알고 계십니다.
; 따라서 저도 Off를 권장합니다.
; 그러나 전역 변수 설정이 필요할 때도 있습니다. 이 점은 잊지 마셔야 할 것입니다.
register_globals = Off

; post_max_size: 최대 업로드(POST) 가능한 파일의 용량을 설정합니다.
; 기본적으로 16M로 지정되어 있고, 대용량의 파일을 업로드(POST) 해야 할 상황이 온다면
; 이 값을 늘려 주시면 됩니다.
post_max_size = 16M

; doc_root: 기본 웹 서비스 디렉토리를 지정합니다.
; 이 설정은 서버를 컴파일 할 때, Force_Redirect가 가능하도록 설정을 하였다면 비워도 됩니다.
; 만약 컴파일 설정을 하지 않았을 경우, 이 설정을 비우게되면
; 심각한 보안 문제가 발생합니다. cgi 파일일 경우에 한합니다.
doc_root = "C:\XAMPP\htdocs"

; user_dir: 사용자 계정별 디렉토리의 시작 페이지를 설정합니다.
user_dir =

; file_uploads: 파일 업로드(Upload)에 대한 설정입니다.
; 기본적으로 활성화 되어 있고, 업로드(Upload)가 필요없는 특별한 상황이라면 꺼주는게 좋습니다.
file_uploads = On

; upload_tmp_dir: 업로드(Upload)시 사용될 tmp 디렉토리를 설정합니다.
upload_tmp_dir = "C:\XAMPP\tmp"

; upload_max_filesize: 최대 업로드(Upload) 파일에 대한 최대 용량을 설정합니다.
upload_max_filesize = 32M

; allow_url_fopen: URL을 이용하여 파일을 열 수 있는지에 대한 설정입니다.
; 예전에는 보안상 기본적으로 꺼두는 것이 좋았지만,
; 최근에는 많은 웹 서비스들이 이 설정을 사용하기 때문에 켜두는 것도 나쁘지 않습니다.
allow_url_fopen = On

; allow_url_include: URL을 이용하여 파일을 참조할 수 있는지에 대한 설정입니다.
; 반드시 꺼주어야 합니다.
allow_url_include = Off

; user_agent: 사용자 에이전트를 설정합니다.
; 기본적으로 주석처리 되어 있어 비활성 상태입니다.
; user_agent="PHP"

; default_socket_timeout: 소켓기반 스트림에 대한 시간제한을 설정합니다.
; 반드시 이 설정 값이 존재해야 합니다.
default_socket_timeout = 60

; session.referer_check: 세션에 대한 레퍼러가 설정된 값과 다르면 거부합니다.
; 세션에 대한 설정은 이보다 더 많지만, 그나마 사용하기에 까다로움이 없는
; 레퍼러 설정을 해주게 되면 보안상 좋습니다.
; 레퍼러는 특별한 경우를 제외하고 서버의 도메인 네임으로 설정하는 것이 일반적입니다.
; 기본적으로는 아무런 설정 값이 없으며, 이 것은 레퍼러에 대한 검사를 하지 않는다는 의미입니다.
session.referer_check =

; session.hash_function: 세션을 암호화 할 때 사용하는 해쉬 함수에 대한 설정입니다.
; 이 설정이 얼마나 향상된 보안을 가져다 줄 것인지는 저도 잘 모릅니다만,
; 기본적으로 0(MD5)가 설정되어 있습니다.
; MD5는 키의 길이가 128bit로 짧고, SHA1은 160bit로 조금 깁니다.
; 키의 길이 뿐 아니라, 보안시장에서도 MD5보다 차세대 해쉬로 SHA를 사용하는 방법을
; 더 권장하는 추세입니다.
; 정보: 키의 길이가 길면, 아무리 암호화된 키 값이지만 그 속에 특정한 패턴이 나타날 수 있으므로
; 오히려 더 위험할 수 있습니다. 하지만, SHA 해쉬 같은 대표적인 해쉬 함수를 만들 때
; 이 문제를 전문가들이 고려하지 않은 것은 절대로 아니므로 안심하셔도 됩니다.
session.hash_function = 1

; zend_optimizer.enable_loader: 젠드 옵티마이저(최적화)를 사용한다면 이 설정을 반드시 1로 설정합니다.
; 이 밖에도 많은 젠드 옵티마이저(최적화) 설정이 존재하고, 다 같이 사용되어야만 합니다.
zend_optimizer.enable_loader = 1

; eaccelerator.enable: eAccelerator를 사용한다면 이 설정을 1로 설정합니다.
eaccelerator.enable = "1"

; eaccelerator.optimizer: eAccelerator를 사용하면서 최적화 기능을 사용하려면 1로 설정합니다.
eaccelerator.optimizer = "1"

; eaccelerator.compress: eAccelerator를 사용하면서 압축 기능을 사용하려면 1로 설정합니다.
; 이 밖에도 더 많은 설정들이 존재하고, 기본적으로 다 같이 사용됩니다.
eaccelerator.compress = "1"

 

 

(참조 : http://blog.naver.com/nicegass)

'스터디 > 기타' 카테고리의 다른 글

[IOS 유용기능] 빠른 QR코드체크인 방법  (0) 2020.12.21
[MySQL] SQL 기본 문법 잡기 (CRUD)  (0) 2020.12.02