
WordPress 유료 플러그인이나 테마등은 기능이 다채로워서 시스템 리소스를 많이 필요로 하곤하므로 서버의 제한을 조정해야 할 때가 있습니다. 이는 대부분은 PHP 설정을 변경하는 것이고 일부는 워드프레스 설정파일을 수정해야하기도 하는데요. 그런 요구치를 충족시키기위해 PHP 설정파일인 php.ini 설정값을 바꾸는 방법을 알아보겠습니다.
참고로 아마존 라이트세일같은 VPS에서는 자신이 서버 컴퓨터의 모든 권한을 가지고 있기때문에 PHP 설정을 마음대로 할 수 있지만 하나의 컴퓨터를 여러 사용자와 나눠쓰는 웹호스팅을 사용하면 root권한을 가질 수가 없어서 변경할 수 없을 텐데요. 그런경우는 자신이 사용하는 웹호스팅 서비스사의 고객센터 문의를 통해 설정변경을 요청해야할 수 있습니다.
- php.ini 파일 위치와 PHP-FPM, 웹서버 재시작하기
- LEMP 스택에서 php.ini 위치와 PHP-FPM 재시작 방법
- Bitnami 스택에서 php.ini 위치와 PHP-FPM 재시작 방법
- 설정값 변경: php.ini 및 wp-config.php 파일 수정
- 업로드 파일 사이즈 변경 Max Upload Size (upload_max_filesize)
- HTTP 업로드 사이즈 변경 PHP Max Post Size (post_max_size)
- Max Input Vars
- Max Execution Time (max_execution_time)
- 메모리 제한 값 변경 Memory Limit (memory_limit)
참고지식
– 서버접속 및 제어에 대한 개념
– $과 # 그리고 리눅스 명령어 sudo
– 리눅스 nano editor 사용방법
워드프레스 오류 및 에러 메시지
워드프레스를 사용하다보면 여러가지 오류 메시지를 만나곤 하는데 워드프레스 메모리 리밋 변경이나 php.ini 설정값을 변경함으로써 해결되곤 합니다.
- 테마나 플러그인을 업로드해서 설치할 때
- The uploaded file exceeds the upload_max_filesize directive in php.ini.
- The link you followed has expired.
- 500 에러
- fatal error: maximum execution time exceeded
- 504 Gateway Time-out
- HTTP 오류
PHP 설정파일 php.ini의 위치와 PHP-FPM 재실행방법
1) LEMP스택(nginx 웹서버)에서의 php.ini 위치와 서비스 재시작
제 연재작인 LEMP 스택에 설치한 워드프레스라면 디폴트 위치에 Nignx를 사용하게 되는데 php.ini 파일의 위치는 아래와 같습니다.
- /etc/php/7.2/fpm/php.ini
- /etc/php/7.2/cli/php.ini
참고: /cli/ 폴더에 있는 php.ini는 CLI 에서 php 스크립트를 동작시킬 때의 설정파일로, nginx 웹서버처럼 PHP-FPM을 통한 php 실행영향을 받지 않는다고 하네요.
참고로 위에서 중간 경로에있는 /7.2/ 폴더는 자신의 리눅스 서버에 설치한 php 버전의 번호에 맞춰서 다를 겁니다. 위의 경우 PHP 7.2버전을 설치한 서버라서 경로가 저렇게 되었습니다.
php 엔진 재시작 방법
php.ini 파일을 수정하고 나면 PHP FPM을 재시작ㄱ 해줘야하는데 php-fpm과 웹서버(nginx) 재시작 명령어는 아래와 같습니다.
- php-fpm 재시작버전
sudo service php-fpm restart
또는sudo systemctl restart php-fpm
는- 참고로 위 명령어에서 php7.2-fpm 처럼 중간에자신의 php버전을 포함해야하는 경우도 있습니다.
- nginx 웹서버 재시작
- 먼저
sudo nginx -t
를 입력했을 때 O.K 메시지가 나오면 sudo service nginx restart
로 재시작. (참고)- 도는
sudo systemctl restart nginx
- 먼저
우분투 서버는 sudo service 애플리케이셔이름 동작사항 과 같은 형식으로 여러가지 프로세스에 명령어를 내리므로 외워두면 도움이 됩니다.
2) 비트나미 스택 워드프레스일 때 php.ini 파일의 위치와 재시작 방법
아마존 라이트세일에 준비된 워드프레스 설치방법은 비트나미(Bitnami) 스택을 기반으로 한 워드프레스이고 php설치위치가 /opt/bitnami/ 이라서 php.ini 파일 위치는 아래와 같습니다.
- /opt/bitnami/php/etc/php.ini
비트나미 스택에서 php 엔진 재시작 방법
- php-fpm 재시작
sudo /opt/bitnami/ctlscript.sh restart php-fpm
- 아파치 웹서버 재시작
sudo /opt/bitnami/ctlscript.sh restart apache
비트나미 스택에서는 /opt/bitnami/ctlscript.sh 스크립트 파일로 거의 모든 애플리케이션를 리로드, 재시작하므로 외워두면 좋습니다.
PHP 설정파일(php.ini) 및 워드프레스 사용 메모리 설정 변경
PHP 설정은 모두 php.ini에서 설정되므로 텍스트 에디터에서 php.ini파일을 열고 해당 변수를 찾아 수정하면됩니다.
CLI에서는 아래 명령어를 사용해서 nano 에디터로 수정가능합니다.
- LEMP 스택: nano 에디터로 php.ini 파일 수정 명령어
-
sudo nano /etc/php/7.2/fpm/php.ini
- 참고: LEMP 스택에서의 php.ini 파일수정은 전에 작성했던 워드프레스 파일 업로드 사이즈 변경하기 글을 참고해보세요.
-
- Bitnami 스택: nano 에디터로 php.ini 파일 수정 명령어
-
sudo nano /opt/bitnami/php/etc/php.ini
-
참고로 CLI의 텍스트에디터가 불편하다면 FTP 클라이언트로 접속해 수정하는 방법도있지만 php.ini 파일 편집권한은 root 사용자의 권한 하에 있으므로 그전에 파일 권한을 777로 변경하고 수정해야할 것입니다.
CLI에서 php.ini 파일을 nano 편집기를 열었다면 nano 편집기의 단어 찾기 기능을 이용해 해당 변수를 찾아 값을 변경해줍시다. 워드프레스 사용을 위해서 대략 권장되는 값은 아래와 같습니다.
file_uploads = On
post_max_size = 64M
upload_max_filesize = 64M
- post_max_size 와 upload_max_filesize 는 업로드가능한 미디어 파일 크기와 테마나 플러그인 설치용 zip파일 업로드 크기에 제한을 줍니다.
max_input_vars = 3000
max_input_time = 300
max_execution_time = 300
- max_input_time과 max_execution_time은 보통 300이면 충분하지만, 유료 테마의 경우 템플릿을 다운로드 받아야할 때 인터넷 접속이 느린 경우 더 많은 시간을 필요로 할 수 있습니다.
memory_limit = 128M
- php 메모리제한 값. 워드프레스에서는 추가로 wp-config.php에 설정을 해줘야합니다. 아래 참고.
php.ini 파일을 수정하고나면 nano 편집기를 저장하면서 종료해주고 PHP-FPM과 웹서버를 재시작해주세요.
워드프레스 메모리 사용 제한 값 변경하기
php.ini 파일의 memory_limit 값 설정은 php를 사용하는데 있어서 최대 제한 값일 뿐, 이 값을 올려도 워드프레스 워드프레스의 기본 설정치는 40MB로 정해져있는데요.
워드프레스가 사용할 수 있는 최대 메모리값을 변경하려면 wp-config.php 파일을 열어서 define문을 추가해 설정해줘야합니다.
wp-config.php 파일은 워드프레스 루트 폴더에 있고, 그 루트폴더는 자신이 워드프레스를 어디에 설치했느냐에 따라 다릅니다. 아래처럼 CLI에서 nano 편집기를 이용해 열어봅시다.
참고: wp-config.php 파일 수정은 root가 아니어도 되니, CLI에서의 편집이 불편하다면 FTP 프로그램을 열어 수정해도 될겁니다.
1) LEMP스택 워드프레스에서 wp-config.php 파일위치 및 수정하기
LEMP 스택에 설치한 워드프레스라면 /var/www/html/ 하위에 있을 겁니다. 아래처럼 /폴더경로/wp-config.php 를 적어서 nano 편집기로 열어줍니다.
sudo nano /var/www/html/wp-config.php
2) Bitnami 스택 워드프레스에서 wp-config.php 위치 및 수정하기
아마존 라이트세일에서 설치한 비트나미 워드프레스라면 /opt/bitnami/apps/wordpress/htdocs/ 폴더가 워드프레스의 루트폴더입니다. 아래처럼 /폴더경로/wp-config.php 를 적어서 nano 편집기로 열어줍니다.
sudo nano /opt/bitnami/apps/wordpress/htdocs/wp-config.php
wp-config.php 파일이 열렸다면 아래 그림처럼 /* That’s all, stop editing!…*/ 이라고 쓰인 주석문을 찾아 그 위에 작성해주면 됩니다.
define( 'WP_MEMORY_LIMIT', '128M' );
그 전에 WP_MEMORY_LIMIT 상수가 이미 작성되어있는지 찾아서 확인해보고 있다면 뒷부분에 128M 부분만 변경해줍니다.
파일수정이 완료되면 wp-config.php 파일을 저장하고 닫아줍니다. wp-config.php 만 수정했을 때든 웹서버를 재시작 하지 않아도 됩니다.
메모리 제한은 몇으로 해야할까?
자신의 서버사양이 높다면 서버가 사용중인 애플리케이션, 프로세스에따라서 메모리 제한은 더 늘려도 될텐데요. 하나의 워드프레스는 128M이면 거의 모든 플러그인,테마의 요구를 충족시키는데 충분할 겁니다.
자신의 서버 메모리가 512MB이라고 할 때, PHP나 워드프레스뿐만 아니라 운영체제인 리눅스자체가 사용하는 메모리도 있고, MySQL, 웹서버등이 필요로 하는 메모리도 있는데요. 컴퓨터는 메모리 스왑, 예약을 통해서 당장 쓰이지 않더라도 일정공간을 가지고 있게됩니다.
그런 과정에서 제한치를 넘어가버린다면 메모리 부족 에러가 발생해 서버가 다운될 수 있으므로 자신의 서버 사양에 너무 근접하지 않게 설정해야 하겠습니다.
안녕하세요
wp-config.php에서 메모리 제한을 올려도 워드프레스 사이트에서 확인해보면 40MB로 그대로인데요,
어떤 부분이 문제인걸까요?