PHP: memory_limits > 1024M 설정이 작동하지 않음
좋지 않은 이유로 디렉토리에 대해 memory_limits를 1GB보다 크게 설정해야 하는데, 예를 들어 2048M을 사용하면 PHP 5.2.17에서 php.ini 기본값(256M)만 표시됩니다.
PHP는 Apache 모듈로 실행되며 phpinfo는 다음을 제공합니다(디렉토리용).
memory_limit 1024M 256M
suhosin.memory_limit 0 0
Apache 모듈 또는 PHP 설정으로 인해 제한이 있습니까?서버의 RAM은 4GB밖에 없는 것으로 알고 있습니다.그냥 특별한 대본이에요.
메모리 제한을 설정하려면 어떻게 해야 합니까?phpinfo()는 현재 PHP 예약 메모리 제한을 나타냅니다.이것은 php.ini가 메모리 제한으로 설정되어 있기 때문에 사용할 수 있는 것입니다.
서버가 .htaccess를 통한 PHP 명령 설정을 지원하는 경우 스크립트 디렉토리의 Apache .htaccess 파일에 이 파일을 쓰는 것이 작동할 수 있습니다.
php_value memory_limit 2048M
PHP 값을 설정하기 위한 .htaccess 명령어가 꺼질 수 있기 때문입니다.그리고 PHP 코드에서 이것을 시도할 수도 있습니다.
ini_set('memory_limit', '2048M');
이것이 동작하지 않고 .htaccess도 동작하지 않는 경우는, 서버 관리자에게 문의해 주세요.
4GB의 RAM을 사용하기 위해 PHP 스크립트가 필요한 것과 같은 문제가 있었습니다.이유는 중요하지 않다.목표는 PHP에서 4GB 제한을 설정하는 것이었습니다.
당초의 생각은,ini_set('memory_limit', '4096M');
근데 이게 안 되더라고요.솔직히 말하면 어떻게 해야 할지, 왜 해야 할지 모르겠지만 그때는 그게 중요하지 않았어요.32GB의 RAM을 탑재한 시스템을 사용하고 있으며, 이것이 가능해야 합니다.
1MB를 적게 설정하는 것이 실제로 효과가 있다는 것을 알게 되었고, 이 솔루션은 저에게 효과가 있었습니다.
ini_set('memory_limit', '4095M'); // 4 GBs minus 1 MB
실제로 실제로 사용해 본 적은 없지만, 시스템에서 이 값을 사용하면 메모리 제한이 완전히 해소되는 것 같습니다.시스템에서 제공하는 RAM의 용량을 최대한으로 늘릴 수 있습니다.
ini_set("memory_limit",-1);
일반적으로 제한을 제거합니다.
Hardened-PHP - Configuration에서 설명한 바와 같이 Suhosin에서는 스크립트가 시작된 값보다 큰 값을 설정할 수 없습니다.
suhosin.memory_limit을 2048M으로 설정하면 메모리 사용량을 늘릴 수 있습니다.
의 한계
ini_set('memory_limit', '4095M'); // 4 GBs minus 1 MB
는 운영체제(OS)와 관련되어 있습니다.32비트 OS에서는 이 최대 제한을 사용해야 합니다.
이 회피책을 사용하여 오늘 memory_limit 문제를 해결했습니다.
더 높은 제한을 사용하면 PHP에서 이상한 동작이 발생합니다.클래스가 인스턴스화되었을 때 일부 퍼블릭비정적 메서드클래스에서 소진된 메모리를 반환하지만 (문제를 테스트하기 위해) __construct 메서드에 die()를 넣습니다.
언급URL : https://stackoverflow.com/questions/9276212/php-settings-memory-limits-1024m-does-not-work
'programing' 카테고리의 다른 글
Big Decimal - new 또는 value Of를 사용합니다. (0) | 2022.11.07 |
---|---|
Mariadb Docker 컨테이너가 데이터베이스 스키마를 사용한 초기화를 거부함 (0) | 2022.11.07 |
슈퍼클래스 컨스트럭터를 명시적으로 호출해야 하는 경우는 언제입니까? (0) | 2022.11.07 |
jQuery - 여러 $(문서)입니다.준비됐어? (0) | 2022.11.07 |
MySQL에서 ONLY_FULL_GROUP_BY만 활성화하는 방법 (0) | 2022.11.07 |