PHP 프로그램을 실행할 때 일반적으로 "치명적인 오류: xxxxxx바이트의 허용 메모리 크기가 소진되었습니다."라는 오류가 발생합니다. 이는 PHP 스크립트가 너무 많은 메모리를 사용하고 시스템에서 설정한 최대 허용 메모리를 초과한다는 의미입니다.
이 문제를 해결하려면 먼저 프로그램이 너무 많은 메모리를 할당했는지 확인해야 합니다. 프로그램에 문제가 없다면 다음 방법을 통해 PHP의 메모리 제한(memory_limit)을 늘릴 수 있습니다.
php의 메모리 제한 값 확인
이 값을 확인하려면 view-php-info.php와 같은 빈 PHP 파일을 생성해야 합니다. 그런 다음 내부에 다음 코드를 붙여넣습니다.
<?php phpinfo(); ?>
이 스크립트를 웹 서버에 넣고 브라우저에서 호출하세요. 이때 아래와 같이 "memory_limit"에 관한 일부인 PHP 환경 구성에 대한 정보를 볼 수 있습니다.
참고: 이 방법을 사용할 수 있습니다. memory_limit뿐만 아니라 PHP의 다른 매개변수 설정도 확인하세요
memory_limit는 얼마로 설정해야 하나요?
이는 전적으로 애플리케이션 요구 사항에 따라 다릅니다. 예를 들어 WordPress에서는 핵심 코드를 실행하는 데 32MB가 필요합니다. Drupal 6에서는 이 값이 최소 16MB여야 하며 32MB로 설정할 것을 권장합니다. 플러그인, 특히 이미지 처리가 필요한 플러그인을 많이 설치하는 경우 128MB 이상의 메모리가 필요할 수 있습니다.
memory_limit 설정 방법
방법 1: php.ini
가장 간단하거나 가장 일반적인 방법은 php.ini를 수정하는 것입니다
1) 먼저 찾아보세요 당신을 위한 정답 웹사이트에 적용되는 php.ini 파일 PHP 매개변수를 설정할 수 있는 위치가 여러 곳이므로 올바른 구성 파일을 찾아 변경하는 것이 첫 번째 단계입니다. 구성 매개변수를 보기 위해 위의 방법을 사용하여 PHP 파일을 생성한 경우 "로드된 구성 파일" 항목을 찾을 수 있습니다. 다음은 예입니다.
Linux의 경우 users 의 경우 "php -i | grep Loaded Configuration File"을 실행하여 해당 구성 파일을 찾을 수 있습니다. Windows 사용자의 경우 PHP 설치 디렉터리에서 php.ini를 수정해 볼 수 있습니다.
2) php.ini 편집 php.ini에서 "memory_limit" 항목을 찾으세요. 그렇지 않은 경우 파일 끝에 이 매개변수를 직접 추가할 수 있습니다. 다음은 몇 가지 설정 예입니다.
memory_limit = 128M ; //可以将128M改为任何你想设置的值
파일 저장
3) 웹 서버가 Apache를 사용하는 경우 다음을 실행합니다.
httpd restart
어떤 경우에는 php.ini를 개인적으로 수정하는 것이 허용되지 않을 수도 있습니다. 예를 들어, 가상 호스팅 서비스를 구입했지만 서비스 공급자가 이 파일 수정을 허용하지 않는 경우입니다. 그런 다음 memory_limit 값을 늘리기 위해 다른 방법을 고려할 수 있습니다.
방법 2: .htaccess
참고: 이 방법은 PHP가 Apache 모듈과 함께 실행될 때만 적용됩니다. 웹사이트의 루트 디렉터리에서 ".htaccess" 파일을 찾으세요. 파일이 없으면 직접 만들 수 있습니다. 그런 다음 다음 구성을 입력합니다.
php_value memory_limit 128M ; //可以将128M改为任何你想设置的值
방법 3: 런타임 중 PHP의 메모리 설정 수정
다음 명령줄을 PHP 코드에 추가합니다.
ini_set('memory_limit','128M');
memory_limit 수정 실패
가상 호스트를 사용하는 경우 memory_limit 값 수정에 실패할 수 있습니다. 이 문제를 해결하는 방법을 알아보려면 서비스 제공업체에 문의해야 합니다. 일반적으로 설정할 수 있는 최대값이 제한되거나 수정이 전혀 허용되지 않습니다. 해당 환경이 실제로 귀하의 요구 사항을 충족할 수 없는 경우 다른 호스팅 공급자로 변경하는 것을 고려할 수 있습니다.