2012-01-27
php.ini 파일에는 php관련 각종 설정들이 정의되어 있는 파일이다. 그래서 이 파일에 나와 있는 설정들에 대해서 적어볼까 하는데.. 설정들이 많다 보니 한번에 다 적기는 힘들고, 필자가 사용하는것들만, 사용할때 마다 하나씩 적어 볼 생각이다.
만약 자신이 php.ini를 건드릴수 없는 상황이라면 아래의 링크를 참조하기 바란다.
참조 : http://b1ix.net/8


주석처리( ; )
php.ini 파일에서 맨 앞에 ; 붙은 내용은 주석이다.
;;;;;;;;;;;;;;;;;;;
; About php.ini   ;
;;;;;;;;;;;;;;;;;;;


에러관련
Notice: Undefined variable.... 라는 식으로 에러가 뜰경우, 즉 선언되지 않은 변수에 대한 오류 메세지가 뜨는것은 보통 E_ALL 로 설정되어 있어서 모든 에러가 뜨는것이다. 그럴경우엔 아래와 같이 E_ALL & ~E_NOTICE 라고 해주면 된다.
error_reporting = E_ALL & ~E_NOTICE
;error_reporting  =  E_ALL


$_POST, $_GET, $_REQUEST 전역 변수 설정
$_POST, $_GET, $_REQUEST 관련 변수들을 $_POST[a] 라고 하지 않고 $a 라고 해도 인식하게 하려면 해당 설정을 On으로 하면 된다.
호스팅업체들중 이 설정이 On으로 되어 있는 곳이 많다. 그래서 그런 환경에 맞추어 POST방식으로 넘어온 변수들을 무심코 전역변수처럼 써버리게 되면, 서버 이전작업후 환경이 다르게 되면 난감하게 될수도 있다.
register_globals = Off


fopen url로 되어 있는 파일 열기
fopen함수에서 url주소로도 파일을 열고 싶다면 이설정이 On으로 하면 된다.
이설정은 보안상 php.ini에서만 수정가능하며 ini_set으로는 변경할수 없다.
allow_url_fopen = On
다른 방법으로는, 해당 호스팅업체에서 .htaccess파일 설정을 적용시키게 해놓았다면 .htaccess파일에 php_flag allow_url_fopen 1 을 추가하면 된다.


//-------- 2014.3.19 추가
get, post, cookie 를 사용하여 넘어온 값들중에 quotes(', ", \, null 등)가 있으면 자동으로 역슬래쉬(\)를 붙여준다.
magic_quotes_gpc = On
이 기능이 활성화 되면 sql injection에 대해서 안전하게 되는 효과도 볼 수 있다.


//-------- 2014.4.3 추가
이름 그대로 사용 메모리의 크기를 정해주는 설정.
해당 설정의 크기가 작으면 변수나 상수에 들어가는 내용의 용량에도 영향을 받는다.
memory_limit = 128M


//-------- 2014.6.18 추가
post로 넘어가는 모든 자료들의 최대 크기를 설정해주는 post_max_size와 단순히 파일 업로드의 최대 크기를 설정해주는 upload_max_filesize 설정.
post_max_size = 500M 
upload_max_filesize = 100M
해당 설정들도 ini_set으로는 설정할 수 없는 것들이며, .htaccess 파일에서 php_value post_max_size 500M 로 추가 시켜주면 적용 가능하다.


//-------- 2014.10.10 추가
기본 타임 지역을 설정. 주로 date(): It is not safe to rely on the system's timezone settings. 와 같은 에러가 표시 될때 설정해놓아야 할 필요를 느끼는 설정이다.
date.timezone = Asia/Seoul
적당히 서울 시간으로 설정해 놓으면 된다.


//-------- 2015.08.18 추가
<?phpphp ?>식으로 시작되는 php소스의 시작을 부분을 <?php ?>으로 짧게 써도 인식하게 해주는 옵션.
short_open_tag = On
기본은 Off로 되어 있어서 <?php ?>식으로 짧게 썼다면 모두 오류가 뜨게 된다.