"PHP 메모리 부족"의 두 판 사이의 차이

(사용자 3명의 중간 판 32개는 보이지 않습니다)
1번째 줄: 1번째 줄:
;PHP 메모리 부족
;<nowiki>Fatal error: Allowed memory size of 134217728 bytes exhausted</nowiki>
;<nowiki>Fatal error: Allowed memory size of 134217728 bytes exhausted</nowiki>
;memory exhausted in ofc_scatter.php  
;memory exhausted in ofc_scatter.php  
;Open Flash Chart 2 메모리 부족
;Open Flash Chart 2 메모리 부족
*PHP의 메모리 제한 기본값은 128MB이다.
 
==문제 상황==
*PHP의 메모리 제한 기본값은 128MB<ref><math>128\times1024^2=134217728</math></ref>이다.
*데이터가 너무너무 많을 경우 PHP에서 다음과 같이 메모리 부족 메시지가 발생하더라.
*데이터가 너무너무 많을 경우 PHP에서 다음과 같이 메모리 부족 메시지가 발생하더라.
{{인용문|
{{인용문|
9번째 줄: 12번째 줄:


==설정값 확인==
==설정값 확인==
<source lang='dos'>
<source lang='console'>
[root@jmnote ~]# cat /etc/php.ini | grep memory_limit
[root@zetawiki ~]# cat /etc/php.ini | grep memory_limit
memory_limit = 128M
memory_limit = 128M
</source>
</source>
:→ 기본 설정은 128M로 제한되어 있다.
:→ 아래 문단과 같이 이 제한을 늘려서 해결가능한 경우가 많다.
:→ 다만 PHP 애플리케이션 자체의 문제로 인해 메모리를 과도하게 사용하는 경우에는 애플리케이션 수준의 근본적인 조치가 필요하다.


==조치방법 1==
==조치방법 1 (PHP 소스)==
PHP 소스에서 메모리 제한 늘리기
PHP 소스에서 아래 명령어를 수행하면 그 PHP 페이지 실행에 한하여 메모리 제한이 변경된다.
*메모리 제한 늘리기
<source lang='php'>
<source lang='php'>
ini_set('memory_limit','192M');
ini_set('memory_limit','512M');
</source>
</source>
 
*메모리 무제한으로 풀기
==조치방법 2==
PHP 소스에서 메모리 제한 풀기
<source lang='php'>
<source lang='php'>
ini_set('memory_limit','-1');
ini_set('memory_limit','-1');
</source>
==조치방법 2 (PHP 설정)==
PHP 설정파일에서 메모리 제한 수정하기. 모든 PHP 파일에 적용되며, 적용시 아파치 재시작이 필요하다.
<source lang='bash'>
vi /etc/php.ini
</source>
<source lang='ini'>
; Maximum amount of memory a script may consume (128MB)
; http://php.net/memory-limit
memory_limit = 128M
</source>
<source lang='ini' highlight='3'>
; Maximum amount of memory a script may consume (128MB)
; http://php.net/memory-limit
memory_limit = 512M
</source>
memory_limit를 찾아 파라미터를 적절한 값으로 수정하고 저장한다. 수정된 php.ini가 적용되려면 httpd 재시작이 필요하다.
<source lang='console'>
[root@zetawiki ~]# service httpd restart
Stopping httpd:                                            [  OK  ]
Starting httpd:                                            [  OK  ]
</source>
</source>


==같이 보기==
==같이 보기==
*[[오픈 플래시 차트]]
* [[오픈 플래시 차트]]
* [[PHP Fatal error]]
* [[PHP Fatal error:  Out of memory]]
 
==주석==
<references/>


[[분류: 오픈 플래시 차트]]
[[분류: 오픈 플래시 차트]]
[[분류: PHP]]
[[분류: PHP 오류]]

2018년 6월 25일 (월) 13:39 판

PHP 메모리 부족
Fatal error: Allowed memory size of 134217728 bytes exhausted
memory exhausted in ofc_scatter.php
Open Flash Chart 2 메모리 부족

1 문제 상황

  • PHP의 메모리 제한 기본값은 128MB[1]이다.
  • 데이터가 너무너무 많을 경우 PHP에서 다음과 같이 메모리 부족 메시지가 발생하더라.

Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 32 bytes) in /var/www/html/open-flash-chart/php-ofc-library/ofc_scatter.php on line 5

2 설정값 확인

[root@zetawiki ~]# cat /etc/php.ini | grep memory_limit
memory_limit = 128M
→ 기본 설정은 128M로 제한되어 있다.
→ 아래 문단과 같이 이 제한을 늘려서 해결가능한 경우가 많다.
→ 다만 PHP 애플리케이션 자체의 문제로 인해 메모리를 과도하게 사용하는 경우에는 애플리케이션 수준의 근본적인 조치가 필요하다.

3 조치방법 1 (PHP 소스)

PHP 소스에서 아래 명령어를 수행하면 그 PHP 페이지 실행에 한하여 메모리 제한이 변경된다.

  • 메모리 제한 늘리기
ini_set('memory_limit','512M');
  • 메모리 무제한으로 풀기
ini_set('memory_limit','-1');

4 조치방법 2 (PHP 설정)

PHP 설정파일에서 메모리 제한 수정하기. 모든 PHP 파일에 적용되며, 적용시 아파치 재시작이 필요하다.

vi /etc/php.ini
; Maximum amount of memory a script may consume (128MB)
; http://php.net/memory-limit
memory_limit = 128M
; Maximum amount of memory a script may consume (128MB)
; http://php.net/memory-limit
memory_limit = 512M

memory_limit를 찾아 파라미터를 적절한 값으로 수정하고 저장한다. 수정된 php.ini가 적용되려면 httpd 재시작이 필요하다.

[root@zetawiki ~]# service httpd restart
Stopping httpd:                                            [  OK  ]
Starting httpd:                                            [  OK  ]

5 같이 보기

6 주석

  1. [math]\displaystyle{ 128\times1024^2=134217728 }[/math]
문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}