You cannot see this page without javascript.

php.ini 정리

APM 조회 수 628 추천 수 0 2014.05.17 17:00:21

1.

예전 버전 같으면 함수에러가 발생하면 어떤 함수 때문에 에러가 발생되었다고 나타나는데...

5.3 이후로는 http 500 내부 서버 오류를 출력하여 error_log 파일을 보지 않는한 알 수 없게 되었다.

서버 보안 때문인 듯 한데... 개발자 입장에서는 난감한 부분이다.

이를 해결하기 위해서는 php.ini에서 display_errors=Off 를 On으로 변경해야 한다.

2.

display_error=On으로 설정하게 되면 PHP Notice: Use of undefined constant DOCUMENT_ROOT - assumed...

이라는 notice 오류 메세지를 흔히 볼 수 있게 되었다.

배열에 대한 규제가 강화되어서 그런데... $_SERVER['DOCUMENT_ROOT'] 와 같이 []내부에 ''을 넣어 주면 해결된다.


3.

하지만 이러한 notice에러 출력은 빼고 싶다면

php.ini에서 error_reporting=E_ALL~E_NOTICE를 변경해 주면 된다.

0 : 모든 오류 보고를 끈다.

E_ERROR | E_WARNING | E_PARSE : 간단한 실행 오류만 보여준다.

E_ERROR | E_WARNING | E_PARSE | E_NOTICE : 간단한 실행 오류에 notice오류를 보여준다.

E_ALL ^ E_NOTICE : notice를 제외한 전체를 보여준다.

E_ALL : 모든 오류를 보고한다.


4.

Warning: date(): It is not safe to rely on the system’s timezone settings. 와 같은 에러 메세지는

php.ini에 timezone을 셋팅하지 않아서 생기는 문제이다.
php.ini에서 date.timezone="Asia/Seoul" 로 교체

5.
CentOS6 버전이라 그런지 yum을 통한 php-mcrypt가 설치 되지 않는다.
6. 기타
register_globals = On
register_long_arrays = On
short_open_tag = On

 

 

 

일반적인 설정

 

register_globals = Off     

입력 데이터(POST, GET, 쿠키, 환경 변수 외의 서버 변수) 관해서 이미 글로벌 변수로서 등록하지 않게 한다.

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

 

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() 함수를 사용하도록 한다.

 

allow_call_time_pass_reference = Off     ;

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

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

 

 

파일 업로드

 

file_uploads = On

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

 

upload_tmp_dir =

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

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

 

upload_max_filesize = 2M 

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

 

 

 

 

 

register_globals = On

POST나 GET 데이터, 쿠키, 각종 환경/서버 변수에 대해 글로벌 변수로 작동하지 않게 함

on 이라면 $_POST[var] 를 $var로 사용할 수 있다.

보안문제나 변수의 꼬임 등을 유발할 수 있기때문에 on을 추천한다.

display_errors = Off

화면상에 오류를 표시하지 않도록 함

서버상의 설정이나 db에 관한 정보가 출력될 수 있으므로 off를 추천한다.

※ 에러를 표시하고 싶을 경우 아래 코드를 소스의 상단에 넣으면 된다.

<?

error_reporting(E_ALL);

ini_set("display_errors", 1);

?>

short_open_tag = on

<?php 로 시작하는 php코드의 선언을 <?로 줄여서 사용할 수 있게 한다.

max_execution_time = 30

스크립트의 최대 실행 시간을 30초로 설정한다.

대량의 데이터를 다루는 경우라면 더 늘려서 설정하도록 한다.

memory_limit = 8M

스크립트의 최대 메모리를 설정한다.

대량의 데이터를 다루는 경우라면 더 늘려서 설정하도록 한다.



post_max_size = 8M
받아들일 수 있는 POST 데이터의 최대 사이즈

대량의 데이터를 다루는 경우라면 더 늘려서 설정하도록 한다.

upload_max_filesize = 2M

업로드 가능한 최대 파일 사이즈

대량의 데이터를 다루는 경우라면 더 늘려서 설정하도록 한다.

 

upload_max_size ,post_max_size, memory_limit 이 그 주인공들 이며 만일 10메가의 파일을 업로드 하고자 할경우 다음과 같이 적용해 주는것이 좋다.

upload_max_size[10M] < post_max_size[11메가] < memory_limit[12메가]

c-0001.png



아파치의 기본 설정은 대부분 10M 정도의 용량만 업로드 할 수 있도록
기본설정이 되어 있습니다.
프리하드를 통해 대용량 파일 ( 영화파일 같은 ) 을 업로드 하기 위해서는
php.ini 설정을 아래와 같이 변경후
웹서버를 재시작 해 주셔야 됩니다.
예를들어 2G 용량의 파일까지 업로드가 가능하도록 설정 하려면
post_max_size = 2046M
upload_max_filesize = 2045M
max_execution_time = 7200
max_input_time = 7200
위와같이 수정 하시고나서 저장후
웹서버를 재시작 하시길 바랍니다.
첨부
엮인글 :
List of Articles
번호 제목 글쓴이 날짜 조회 수
369 APM mariadb download origin address LynX 2019-06-19 1990
368 APM What one can and should optimize LynX 2019-06-03 1416
367 CentOS mariadb install LynX 2019-05-31 1180
366 CentOS init mode change LynX 2019-05-30 1289
365 APM ext zip install LynX 2019-02-19 1613
364 APM ext ImageMagick install LynX 2019-02-19 511
363 3D Printer Pronterface(PrintRun) install file LynX 2018-09-13 753
362 CentOS Grub UUID change LynX 2018-08-08 867
361 Linux letsencrypt wildcard LynX 2018-07-26 798
360 Printer cura usb connection LynX 2018-07-06 666
359 CentOS cli 무선랜 LynX 2018-06-07 446
358 APM 윈도우에 APM 페키지 설치 file LynX 2018-05-04 586
357 APM MySQLTuner 설치 LynX 2018-04-27 544
356 CentOS CentOS7 커널 업데이트 LynX 2018-04-23 699
355 HTML Tag CSS 여러가지 모양 만들기 LynX 2018-02-08 771
354 Linux wkhtmltopdf wkhtmltoimage install LynX 2018-01-31 602
353 APM LZ4_LIBS Not Found (CentOS7, MariaDB 10.1.29) LynX 2018-01-03 485
352 APM mysql ./configure LynX 2017-12-15 804
351 APM PHP-7.2.0 LynX 2017-12-12 3157
350 Linux libiconv LynX 2017-12-08 558

XE Login