워드프레스는 기본적으로 PHP 어플리케이션 언어를 통해 구동되며, PHP 스크립트가 얼마나 많은 메모리를 할당 받을 수 있는지에 제한을 두고 있습니다. 기본 제한 값은 5.9 브랜치 기준 40M이며, 멀티사이트 구성의 경우 64M으로 제한 됩니다.
포스트를 작성하거나, 특정 테마나 플러그인을 사용할 때 이보다 더 많은 메모리 사용이 필요한 경우가 있습니다. 하지만 테마나 플러그인에서 전역 설정값을 추가하기도 하지만 정상 동작하지 않고 에러만 발생 하는 경우가 있습니다.
이때, 전역 설정을 담당하는 wp-config.php 파일에 WP_MEMORY_LIMIT, WP_MAX_MEMORY_LIMIT 설정을 통해 직접 제한값 조절이 가능합니다.
해당 설정값은 웹서버에 전역 설정되어 있는 php.ini의 php memory limit 값에 제약을 받게 되며, WP_MEMORY_LIMIT 값이 더 크게 설정되어도 php.ini 의 제한 값으로 동작합니다.
워드프레스 설정 내 메모리 사용 제한값, .htaccess 파일을 통해 memory limit 설정을 변경 하는 방법을 안내 합니다.
포스트를 작성하거나, 특정 테마나 플러그인을 사용할 때 이보다 더 많은 메모리 사용이 필요한 경우가 있습니다. 하지만 테마나 플러그인에서 전역 설정값을 추가하기도 하지만 정상 동작하지 않고 에러만 발생 하는 경우가 있습니다.
Fatal error: Out of memory (allocated 12345678) (tried to allocate 2345678bytes)
in /USERID/www/wp-includes/plugin.php on line 1000
이때, 전역 설정을 담당하는 wp-config.php 파일에 WP_MEMORY_LIMIT, WP_MAX_MEMORY_LIMIT 설정을 통해 직접 제한값 조절이 가능합니다.
해당 설정값은 웹서버에 전역 설정되어 있는 php.ini의 php memory limit 값에 제약을 받게 되며, WP_MEMORY_LIMIT 값이 더 크게 설정되어도 php.ini 의 제한 값으로 동작합니다.
워드프레스 설정 내 메모리 사용 제한값, .htaccess 파일을 통해 memory limit 설정을 변경 하는 방법을 안내 합니다.
a. WP_MEMORY_LIMIT - 프론트엔드에서 PHP 스크립트 구동에 대한 최대 메모리 할당량을 지정 (기본 64M)
b. WP_MAX_MEMORY_LIMIT - 백엔드 대시보드 에서 사용 가능한 메모리 할당량 (기본 256M)
c. 두 설정값은 php.ini에서 정의한 memory_limit 값을 넘지 못하므로 .htaccess 파일로 조정 필요
d. 기본 값은 wp-includes/default-constants.php 코어 설정 파일애서 확인 가능
b. WP_MAX_MEMORY_LIMIT - 백엔드 대시보드 에서 사용 가능한 메모리 할당량 (기본 256M)
c. 두 설정값은 php.ini에서 정의한 memory_limit 값을 넘지 못하므로 .htaccess 파일로 조정 필요
d. 기본 값은 wp-includes/default-constants.php 코어 설정 파일애서 확인 가능
## wp-includes/default-constants.php if ( ! defined( 'WP_MEMORY_LIMIT' ) ) { if ( false === wp_is_ini_value_changeable( 'memory_limit' ) ) { define( 'WP_MEMORY_LIMIT', $current_limit ); } elseif ( is_multisite() ) { define( 'WP_MEMORY_LIMIT', '64M' ); } else { define( 'WP_MEMORY_LIMIT', '40M' ); } } if ( ! defined( 'WP_MAX_MEMORY_LIMIT' ) ) { if ( false === wp_is_ini_value_changeable( 'memory_limit' ) ) { define( 'WP_MAX_MEMORY_LIMIT', $current_limit ); } elseif ( -1 === $current_limit_int || $current_limit_int > 268435456 /* = 256M */ ) { define( 'WP_MAX_MEMORY_LIMIT', $current_limit ); } else { define( 'WP_MAX_MEMORY_LIMIT', '256M' ); } }
.htaccess 파일의 php memory_limit 설정 변경 방법
- phpinfo() 함수를 통해 현재 계정에서 사용 가능한 php memory limit 값을 확인 합니다.
- phpinfo() 함수를 사용한 테스트 파일 생성
## edit info.php
<?
phpinfo();
?> - 브라우저로 파일 접근하여 memory limit local value값 확인
- phpinfo() 함수를 사용한 테스트 파일 생성
- FTP / SSH 를 통해 서버 접근을 합니다. ( 본문에서는 SSH를 통한 방법으로 안내 합니다. )
- www 폴더 최상단의 .htaccess 파일을 편집기로 엽니다.
- 하단에 php memory_limit 설정 값을 넣습니다.
## edit .htaccess
PHP_FLAG register_globals ON
PHP_VALUE mysql.default_charset UTF8
PHP_VALUE memory_limit 256M - 저장후 브라우저에서 phpinfo() 함수를 통해 변경된 local value 값을 확인합니다.
- 관리자 패널 > 도구 > 사이트 건강 > 정보 페이지에서도 확인 가능합니다.
wp-config.php 파일로 WP_MEMORY_LIMIT, WP_MAX_MEMORY_LIMIT 값 변경 방법
- FTP / SSH 프로토콜을 통해 서버에 접근합니다.
- www 폴더 바로 밑의 wp-config.php 전역 설정파일을 편집기로 엽니다.
- 하단에 WP_MEMORY_LIMIT, WP_MAX_MEMORY_LIMIT 설정값을 정의합니다.
## edit wp-config.php /** Absolute path to the WordPress directory. */ if ( ! defined( 'ABSPATH' ) ) { define( 'ABSPATH', __DIR__ . '/' ); } /** Sets up WordPress vars and included files. */ require_once ABSPATH . 'wp-settings.php'; define( 'WP_MEMORY_LIMIT', '256M' ); define( 'WP_MAX_MEMORY_LIMIT', '512M');
- 저장 후 메모리 부족에러가 발생했던 작업을 다시 진행 해 봅니다.
.htaccess 파일을 수정 하는 경우 구문 오류가 없도록 조심 해야 합니다.
오타가 있거나 잘못된 규칙이 입력된 경우 홈페이지 접근시 에러가 발생 할 수 있습니다. 수정 후에는 항상 브라우저 테스트를 진행해 주시기 바랍니다.
오타가 있거나 잘못된 규칙이 입력된 경우 홈페이지 접근시 에러가 발생 할 수 있습니다. 수정 후에는 항상 브라우저 테스트를 진행해 주시기 바랍니다.
FTP/SFTP, SSH, MYSQL 접속 방법은 아래 가이드 문서를 참고 바랍니다.
1. FTP / SFTP 접속 방법
2. SSH 접속 방법
3. MYSQL 접속 방법