2009-11-25 4 views
0

PHP에서 더 많은 메모리를 확보하는 데 문제가 있습니다. 그러나내 PHP 리소스를 제한하는 요소는 무엇입니까?

Fatal error: Allowed memory size of 20971520 bytes exhausted (tried to allocate 82 bytes) in ... 

:

내가 32M에 php.ini 파일에서 memory_limit를 설정했습니다

memory_limit = 32M; 

나는 또한에 시도했습니다

는 오류 메시지입니다 실제 스크립트에서 수동으로 무시하십시오.

ini_set('memory_limit', '32M'); 

그리고 여기 - 내가 잃어버린 곳입니다 - phpinfo()를 통해이 php.ini 파일이 실제 사용되는 ini 파일이고, memory_limit가 올바르게 설정되어있는 것으로 확인되었습니다.

memory_limit 32M 32M 

그래서이 모든 것이 제대로 구성되어 있는지 보일 것입니다,하지만 난 단지 20,971,520 바이트 (~ 20M)를 받고 있어요 : memory_limit를에 라인이 있습니다.

이 제한 사항이 적용되는 위치를 알아 내야 할 곳은 어디입니까?

편집 : VPS의 우분투 9.04에서 nginx/fastcgi로 PHP를 실행하고 있습니다. php-cgi 프로세스는 약간 리소스가 부족한 것 같습니다 (RES = 25m, VIRT = 187m). 그러나 실제 메모리는 10m, 스왑 공간은 500m가됩니다.

답변

1

난 그냥 내가하고 있던 코드를 통해 논의한, 누군가는 설정 파일에이 하드 코딩했다 : 내가하고 있던 다른 모든 것들을 무시했다

ini_set('memory_limit', '20M'); 

. 아휴.

0

.htaccess 파일에서 설정을 시도해 볼 수 있습니다. 즉, 한 서버에서 작동하는 사이트를 얻으려면 어떻게해야합니까?

여기 내가 사용하는 설정입니다 :

php_value upload_max_filesize 50M 
php_value post_max_size 60M 
php_value memory_limit 128M 
+0

저는 이것을 fastcgi에서 nginx를 통해 실행하고 있습니다. 이 (관련성있는) 정보를 제공하기 위해 내 게시물을 업데이트했습니다. 감사! –

1

나의 첫번째 본능은 PHP가 다른 php.ini 파일을 읽고 추측하는 것입니다.

데비안 (우분투 일 가능성이 높습니다)의 각 PHP (cli, cgi 및 apache) 버전에는 자체의 php.ini 사본이 있습니다.

관련 문제