back to top
-7.8 C
New York
일요일, 12월 22, 2024

Buy now

워드프레스 메모리 부족 문제 해결 방법 4가지

워드프레스에서 종종 볼 수 있는 메모리 부족 문제를 해결하기 위해 워드프레스 메모리 부족 문제 해결 방안을 주제를 살펴 보았습니다. 워드프레스 메모리 부족은 필연적으로 php 메로리 설정과 연계되기에이를 포함한 4가지 방법에 살펴 봤습니다.

우리나라에서 사용하는 CMS 중에서 워드프레스가 많은 메모리를 사용하는 것으로 악명(?)이 높죠. 그러다보니 가장 흔하게 접하는 에러 메세지 중의 하나는 허용 메모리 제한을 초과했다는 것입니다. Allowed memory size of 268435456 bytes exhausted와 같은…

이번에 서버를 우분투 20.04에 php 8을 적용하면서 어떤 문제가 있는지 살펴보고 있는데 아래와 같은 메모리 제한 이슈가 종종 발생하고 있었습니다. php에서 메모리 제한(memory_limit)는 128M인데요. 보통 256M 정도 설정해 사용하곤 합니다.

워드프레스 메모리 부족 문제 발생

그런데 이 설정하에서 메모리 제한 문제가 종종 발생합니다. 에러 로그들을 살펴보니 아래와 같은 문제가 있었다고 기록되어 있습니다.

FastCGI sent in stderr: "PHP message: PHP Fatal error:  Allowed memory size of 268435456 bytes exhausted (tried to allocate 61440 bytes) in /home/happist/wp-includes/wp-db.php on line 2056" while reading response header from upstream, client: 13.66.139.121, server: happist.com, request: "GET /post-sitemap1.xml HTTP/1.1", upstream: "fastcgi://unix:/var/run/php/php8.0-fpm.sock:", host: "happist.com"Code language: PHP (php)
FastCGI sent in stderr: "PHP message: PHP Fatal error:  Allowed memory size of 268435456 bytes exhausted (tried to allocate 20480 bytes) in /home/happist/wp-content/plugins/query-monitor/classes/Backtrace.php on line 97" while reading response header from upstream, client: 13.66.139.70, server: happist.com, request: "GET /post-sitemap.xml HTTP/1.1", upstream: "fastcgi://unix:/var/run/php/php8.0-fpm.sock:", host: "happist.com"Code language: PHP (php)
FastCGI sent in stderr: "PHP message: PHP Fatal error:  Allowed memory size of 268435456 bytes exhausted (tried to allocate 61440 bytes) in /home/happist/wp-includes/wp-db.php on line 2056" while reading response header from upstream, client: 13.66.139.121, server: happist.com, request: "GET /post-sitemap1.xml HTTP/1.1", upstream: "fastcgi://unix:/var/run/php/php8.0-fpm.sock:", host: "happist.com"Code language: PHP (php)

참고로 워드프레스 메모리 제한 문제가 발생 시 나오는 에러 메세지는 아래와 같습니다. 설정한 메모리 제한(memory_limit)에 따라 조금씩 다른 메세지를 냅니다. 메모리 사이즈를 바이트 단위로 표시해 주기 때문에 이를 MB로 환산하면 되는데요.

이 에러 메세지로 사용자 워드프레스에서 적용되고 있는 메모리 제한(memory_limit) 크기를 알 수가 있습니다.

  • PHP: Fatal Error: Allowed Memory Size of 8388608 Bytes Exhausted – 8 MB
  • PHP: Fatal Error: Allowed Memory Size of 16777216 Bytes Exhausted – 16 MB
  • PHP: Fatal Error: Allowed Memory Size of 33554432 Bytes Exhausted – 32 MB
  • PHP: Fatal Error: Allowed Memory Size of 67108864 Bytes Exhausted – 64 MB
  • PHP: Fatal Error: Allowed Memory Size of 134217728 Bytes Exhausted – 128 MB
  • PHP: Fatal Error: Allowed Memory Size of 268435456 Bytes Exhausted – 256 MB
  • PHP: Fatal Error: Allowed Memory Size of 536870912 Bytes Exhausted – 512 MB
  • PHP: Fatal Error: Allowed Memory Size of 1073741824 Bytes Exhausted – 1 GB

우선 시스템 상황 확인

우선은 에러 메세지를 통해서 현재 적용된 메모리 제한 크기를 알 수 있지만 보다 확실하게 알기 위해서 시스템 사양을 확인할 필요가 있습니다.

다행스러운 것은 워드프레스가 5.0 이상으로 업그레이드 되면서 시스템 상태에 대한 정밀한 정보 제공과 더불어 나름 시스템 상황을 체크해 준다는 것인데요. 샐각보다 유용합니다.

예전에는 이런저런 수동적인 명령을 사용해 시스템 상황을 파악해야 했는데 이제는 주제별로 아주 일목요욘하게 시스템 상황을 알 수 있고, 워드프레스 자체적으로 문제가 없는지도 진단해 주고 있습니다.

이 기능을 이용하려면 워드프레스 대시보드 도구 메뉴 아래에 있는 사이트 상태로 이동해 확인할 수 있습니다.

아래는 제 사이트 상태 정보인데요. 워드프레스 메모리 제한은 서버 카테고리에서 PHP 메모리 제한이란 항목에서 확인 가능합니다. 에러 메세지가 알려주는대로 256M가 적용되어 있습니다.

워드프레스 메모리 부족 문제 해결 방법 4가지 1

워드프레스 메모리 부족 문제 해결 방법 4가지

그러면 어떻게 이 워드프레스 메모리 제한 문제를 해결할까요? 여기에는 크게 몇가지 해결 방향이 있습니다.

  • 하나는 워드프레스가 사용할 수 있는 메모리를 늘리는 것입니다.
  • 두번째는 메모리를 많이 사용하는 프로그램이 무엇인지 찾아서 꼭 필요한지 아니면 다른 것으로 대체 가능한지 등을 점검해 볼 수 있습니다.
  • 세번째는 매우 고난이도 작업으로 불필요하게 메모리를 사용토록 프로그램된 부분이 있는지를 점검해 보는 것입니다. 이는 전문가 영역으로 초보가 하기에는 역부족인듯 싶습니다,

여기에서는 첫번째 방법인 워드프레스에서 사용 가능한 메모리를 늘리는 방법 4가지에 대해서 살펴 보도록 하겠습니다.

1. 워드프레스 메모리 확대 방법 1 – php.ini

워드프레스 메모리제 제한은 바로 php 메모리 제한의 영향을 받습니다. 그래서 가장 효율적인 방법은 php.ini에서 메모리 제한을 높이는 것입니다.

이 파일은 우분투 20.04의 경우 /etc/php/8.0/fpm 폴더에 있습니다. 저는 php 8을 사용하고 있으니 이런 폴더가 나오는 것이구요. 아직 php 7.4사용하고 있다면 /etc/php/7.4/fpm라는 폴더를 접속하면 됩니다.

그런데 내 시스템에서 php.ini 파일이 어디에 있는지 모르겠다면 아래 명령으로 위치를 찾을 수 있습니다.

php -i | grep 'php.ini'Code language: PHP (php)
nano /etc/php/8.0/fpm/php.iniCode language: PHP (php)

그러면 php 8.0 기준으로 430번째 줄에 memory_limit 값을 발견할 수 있습니다.

이 값을 적절한 값으로 조정합니다. 저는 256M 사용하다고 메모리 제한 문제를 발생했기 때문에 512M으로 올려 사용해 보기로 했습니다.

  • memory_limit 기본 값은 128M
  • 만약 php 메모리 제한을 두지 않겠다고 하면 -1값을 사용할 수 있습니다.
; Maximum amount of memory a script may consume
; http://php.net/memory-limit
memory_limit = 512M
Code language: PHP (php)

2. 웹서버 설정에서 변경

두번째 방법은 아파치나 NGIX와 같은 웹서버 설정에서 변경하는 것입니다.

아파치의 htaccess에서 아래와 같은 명령어를 추가하는 방법인데요. 아래와 같이 IfModule mod_php8.0를 이용하는 것입니다.

<code><IfModule mod_php8.0>     </code>
<code>php_value memory_limit 64M </code>
<code></IfModule></code>Code language: PHP (php)

3. 워드프레스 wp-config.php 파일 편집

다음으로 생각해 볼 방법은 워드프레스 설정 파일인 wp-config.php 파일에서 워드프레스 사용 메모리를 정의해 주는 것입니다.

워드프레스 루트에 있는 wp-config.php 파일을 열고 적절한 위치, 예를 들어 다른 define 명령 다음에 define(‘WP_MEMORY_LIMIT’, ‘512M’);와 같은 명령을 추가하는 것입니다.

/**
 * For developers: WordPress debugging mode.
 *
 * Change this to true to enable the display of notices during development.
 * It is strongly recommended that plugin and theme developers use WP_DEBUG
 * in their development environments.
 *
 * For information on other constants that can be used for debugging,
 * visit the documentation.
 *
 * @link https://wordpress.org/support/article/debugging-in-wordpress/
 */
define( 'WP_DEBUG'false );
define('WP_MEMORY_LIMIT', '512M');
Code language: PHP (php)

cPanel 같은 서버 대시보드에서 변경

많은 서버 호스팅 업체들은 사용자 경험을 강화하기 위해서 cPanel과 같은 대시보드를 제공합니다. 여기에서는 서버 터미널에서 제어할 수 있는 중요 변경을 아주 쉽게 할 수 있는데요.

서버 호스팅 업체에서 cPanel과 같은 대시보드 기능을 제공하는 경우 이를 이용해 변경하는 것도 좋은 방법입니다. 아래 이미지는 How to increase the PHP Memory Limit in cPanel라는 글에서 가져온 것으로 cPanel에서 메모리 변경 방법을 간단히 알려 주고 있습니다.

씨패널에서 워드프레스 PHP 메모리 제한 변경 방법, cPanel Software Select PHP Version, Image from chemicloud
씨패널에서 워드프레스 PHP 메모리 제한 변경 방법, cPanel Software Select PHP Version, Image from chemicloud

참고로 cPanel과 같은 기능을 예전에는 무료로 제공하는 업체가 많았지만 cPanel 사용 가격이 점점 오르면서 이제는 cPanel 사용 가격을 별도로 받는 업체들이 늘고 있습니다. 최근 2020년 12월 가격 인상된 것으로 보니 결코 저렴하지는 않네요.

CPanel Gereral Pricing은 아래와 같습니다.

  • For 5 accounts – $20/month
  • For 30 accounts – $30/month
  • For 100 accounts – $45/month + $0.20 for each additional account

마치며

여기에서 워드프레서 메모리 부족 문제를 풀기 위해 워드프레스 가용 메모리 증대 방안 4가지를 살펴 보았습니다.

여러가지 방법이 있기는 하지만 궁극적으로는 php.ini에서 제어하는 것이 가장 확실합니다. 여기에서 변경되지 않으면 워드프레스 설정 파일, wp-config.php 파일이나 아파치와 같은 웹서버에서 조정은 전혀 작동하지 않습니다. 제 경험 상..

따라서 가능하면 php.ini에서 변경할 수 있도록 하고, 호스팅의 경우 php.ini 파일 접근이 불가능하도록 되어 있을 가능성이 매우 높기 때문에 업체에 연락해 조정해 달라고 요청해야 합니다.

참고

우분투 20.04와 PHP 8 기반 워드프레스 설치 방법

가상 서버를 운영하고픈 勇者에게 전하는 가상 서버 운영 입문 노하우 – Vultr 가상서버호스팅(VPS)를 중심으로

워드프레스 최적화를 위한 18개월간의 고민, 그 노하우를 담다.

도쿄 리젼과 비교해 본 Vultr 서울 리젼 사용기

가성비가 뛰어난 Vultr 가상서버호스팅(클라우드호스팅,VPS) 사용기

spot_img

Latest articles

Related articles

spot_img