태그 Archives: php.ini

php.ini 에서 업로드 파일 사이즈를 지정하는 옵션

post_max_size 는 upload_max_filesize 보다 20% 크게 지정해야 한다.
통신 비트는 일반적으로 8bit 후 2bit의 별도의 패리티비트(오류정정)가 포함된다

upload_max_filesize /  post_max_size
.              10M                     12M
.              20M                     24M
.              40M                     48M
.              60M                     72M
.              80M                     96M
.             100M                    120M

post_max_size 사이즈가 만약 100M 를 넘어 간다면 memory_limit(기본값 128M)를 최소 40M 가량 더해 적용한다.
이외에도 업로드 되는 파일의 사이즈가 매우 크다면 네트워크 속도를 고려하여 max_execution_time, max_input_time 을 늘려 PHP 실행시간 제한을 늘려야 한다.

 

memory_limit, max_execution_time, 는 PHP_INI_ALL 이기 때문에 php함수인 ini_set() 혹은 .htaccess 에서 php_value 로 설정이 가능하다.
post_max_size, upload_max_filesize, max_input_time 의 경우 PHP_INI_PERDIR, PHP_INI_SYSTEM 의 가변성을 가지기 때문에 php함수인 ini_set() 혹은 .htaccess 에서 php_value 로 선언할 수 없다.

각 php.ini 설정값의 가변성 여부는 http://php.net/manual/kr/ini.list.php 에서 확인할 수 있다.

php 5.5 혹은 php 5.6 일때 php.ini 설정.

# 호환성이나 개발환경을 고려하여 킨다.
short_open_tag = On

# 보안상 끈다.
expose_php = Off
allow_url_fopen = Off

# 자세한 설명은 생략한다 – -!
error_reporting = “E_ALL & ~E_DEPRECATED & ~E_STRICT & ~E_NOTICE”

# GET => POST => COOKIE => ENV => SERVER
variables_order = EGPCS

# post 사이즈는 패리티 비트를 포함하는 통신 규격상
파일 업로드 크기보다 20% 높게 지정해야 한다. 8bit=>10bit 전송관련.
post_max_size = 25M
upload_max_filesize = 20M

# 5.5 이전까지는 주석 처리 되었으나 5.6 부터 UTF-8로 고정된다.
걍 그대로 쓰는것을 추천하지만. euc-kr 문서 깨지는 것을 방지하기 위해서는 아래와 같이 한다.
default_charset = “”

OP캐시는 php 5.5 부터 추가된 php 가속&캐싱 확장모듈이다.
아래는 웹호스팅용 으로 편집한 값이며 대상 목표 사이트는 약 200개 이다.
zendguard 를 도입할경우 zendguard배포본에 포함된 opcache.so 파일로 대체를 하고
익스텐션 로딩 순서는 ioncube -> zendguard -> opcache 순으로 불러와야 한다.

 

php 5.4 paser error

php 5.4 이후부터는 php.ini 에서 E_ALL 을 설정하더라도 paser fatal 오류를 표기 하지 않는다.

보안적인 측면이라고 생각된다. 다만 이부분은 php 개발자를 괴롭힐 것이다 ‘ㅅ’a

 

이때 php.ini 를 수정하거나 php 문안에 ini_set 을 넣어도 동작하지 않는다.
(php.ini 직접 설정은 기본적으로 표시하지 않도록 되었고,
php문서에서의 ini_set 설정은 fatal 에러시 입력한 ini_set역시 무시되기 때문.)

아래와 같은 내용을 .htaccess 파일에 넣으면 fatal 오류를 볼수 있다.

모든 에러표시는 위와 같이 설정한다.

E_ALL  (32767)

 

일반적인 서비스제공용 설정의 설정값은 22519이다.

E_ALL & ~E_STRICT & ~E_NOTICE & ~E_DEPRECATED
E_ALL  (32767) – E_STRICT (2048) – E_NOTICE (8) – E_DEPRECATED(8120) = 22519

 

아래는 Error Level Constants 별 번호 이다.
E_WARNING(2)
E_NOTICE(8)
E_STRICT(2048)
E_DEPRECATED(8192)
E_ERROR(1)

E_PARSE(4)
E_CORE_ERROR(16)
E_CORE_WARNING(32)
E_COMPILE_ERROR(64)
E_COMPILE_WARNING(128)
E_USER_ERROR(256)
E_USER_WARNING(512)
E_USER_NOTICE(1024)
E_RECOVERABLE_ERROR(4096)
E_USER_DEPRECATED(16384)
계산기 : http://www.bx.com.au/tools/ultimate-php-error-reporting-wizard