WP CLI: 설치 및 설정 | 워드프레스에서 WP CLI를 사용하는 이유

공정위 광고 문구 Ver 2.0

워드프레스 사이트를 관리할 때, 리눅스 서버에 직접 SSH로 접속할 수 있고 root 권한까지 보유하고 있다면, WP CLI의 필요성을 크게 체감하지 못 할 수 있습니다.

리눅스의 기본 Command Line Interface는 이미 모든 기능을 제공할 정도로 편리하지만, 워드프레스 사이트를 운영하면서 가끔 씩 WP CLI가 언급됩니다. 자주 언급되는 이유는 단순한 명령어의 대체가 아닌 워드프레스에 특화된 자동화와 효율성 측면을 생각할 수 있습니다.

1️⃣ WP CLI란 무엇인가?

  • WP CLI는 [워드프레스의 명령 줄 인터페이스]입니다.

워드프레스 대부분의 작업은 워드프레스 관리자 인터페이스를 통해서 진행됩니다. WP-CLI를 사용하면 여러가지 큰 이점을 가질 수 있습니다.

WP-CLI는 워드프레스 대시보드 없이 워드프레스 작업을 하는 것을 의미하며, WooCommerce 쇼핑몰이라면, 1천 개, 또는 1만 개의 페이지를 삭제해야 하는 등의 일괄 작업에 적절하게 활용할 수 있습니다.

일반 블로그라면 여러 개의 플러그인을 정해진 시간에 일괄 업데이트 할 수 있습니다. 실제 플러그인 업데이트를 하는 시간은 보통 1~2분 이내 짧은 시간이 소요되지만 그 이상 걸리는 경우도 있습니다.

플러그인이 업데이트 되는 동안 구글 검색 등을 통해 유입된 일반 방문자는 [사이트 점검 중]이라는 워드프레스의 기능 중 하나인 안내 문구를 확인할 수 있습니다. 플러그인 페이지에서 신뢰하는 플러그인을 자동 업데이트 설정을 했더라도 이는 불편함을 감수해야 합니다. 심지어 캐시 플러그인의 업데이트 시 캐시가 초기화 되어 방문자가 몰리는 시간에는 사이트의 속도 저하와 방문자 경험이 하락할 수 있습니다.

2️⃣ WP-CLI를 설치하는 방법

  • 리눅스 사용자를 위한 권장 설치 방법
WP-CLI 설치 (권장 방법)
  ├─ Phar 빌드 다운로드
└─ Java JAR 파일과 유사한 아카이브

  ├─ 실행 가능하게 설정
└─ chmod +x wp-cli.phar

  └─ PATH에 추가
      └─ mv wp-cli.phar /usr/local/bin/wp

🔲 다운로드

root 사용자 권한을 사용할 예정이기 때문에 외부 도구나 커스텀 앱 설치 용 디렉터리인 /opt에 설치를 진행하겠습니다.

curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
# 또는
wegt https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
 opt]# curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 6975k  100 6975k    0     0  17.2M      0 --:--:-- --:--:-- --:--:-- 17.2M
 opt]# ll -a
합계 6980
drwxr-xr-x.  4 root root      48  8월 14 07:40 .
dr-xr-xr-x. 19 root root    4096  6월  8 14:58 ..
drwxr-xr-x.  3 root root      17  3월  3  2024 aws
drwxr-xr-x.  3 root root      20  5월 31  2024 remi
-rw-r--r--   1 root root 7142777  8월 14 07:40 wp-cli.phar
 opt]# 

두 명령어 중 하나로 다운로드를 진행할 수 있습니다.

WP-CLI의 권장 설치 방법은 워드프레스 공식 웹 사이트의 WP-CLI 설치 방법 페이지에서 확인할 수 있습니다.

WP-CLI를 설치하는 데 권장되는 방법은 Phar 빌드(Java JAR 파일과 유사한 아카이브, 자세한 내용은 이 문서 참조 )를 다운로드하고, 실행 가능하게 표시한 다음 PATH에 추가하는 것입니다.

WP-CLI의 권장 설치 방법 공식 웹페이지

🔲 기본 권한 설정

744+x
 opt]# chmod 744 /opt/wp-cli.phar
 opt]# chmod +x /opt/wp-cli.phar
 opt]# ll
합계 6976
drwxr-xr-x. 3 root root      17  3월  3  2024 aws
drwxr-xr-x. 3 root root      20  5월 31  2024 remi
-rwxr--r--  1 root root 7142777  8월 14 07:40 wp-cli.phar

🔲 작동 확인

 opt]# php wp-cli.phar --info
OS:	Linux 5.14.0-427.16.1.el9_4.x86_64 #1 SMP PREEMPT_DYNAMIC Thu May 9 18:15:59 EDT 2024 x86_64
Shell:	/bin/bash
PHP binary:	/usr/bin/php
PHP version:	8.3.22
php.ini used:	/etc/php.ini
MySQL binary:	/usr/bin/mariadb
MySQL version:	mariadb from 11.3.2-MariaDB, client 15.2 for Linux (x86_64) using  EditLine wrapper
SQL modes:	STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
WP-CLI root dir:	phar://wp-cli.phar/vendor/wp-cli/wp-cli
WP-CLI vendor dir:	phar://wp-cli.phar/vendor
WP_CLI phar path:	phar:///opt/wp-cli.phar
WP-CLI packages dir:	
WP-CLI cache dir:	/root/.wp-cli/cache
WP-CLI global config:	
WP-CLI project config:	
WP-CLI version:	2.12.0
 opt]# 

🔲 전역 설정

  • WP 명령어로 실행되는 전역 명령어 등록

파일을 이동 시키면서 파일 명을 동시에 변경해 줍니다.

opt]# mv wp-cli.phar /usr/local/bin/wp
 opt]# wp --info
OS:	Linux 5.14.0-427.16.1.el9_4.x86_64 #1 SMP PREEMPT_DYNAMIC Thu May 9 18:15:59 EDT 2024 x86_64
Shell:	/bin/bash
PHP binary:	/usr/bin/php
PHP version:	8.3.22
php.ini used:	/etc/php.ini
MySQL binary:	/usr/bin/mariadb
MySQL version:	mariadb from 11.3.2-MariaDB, client 15.2 for Linux (x86_64) using  EditLine wrapper
SQL modes:	STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
WP-CLI root dir:	phar://wp-cli.phar/vendor/wp-cli/wp-cli
WP-CLI vendor dir:	phar://wp-cli.phar/vendor
WP_CLI phar path:	phar:///usr/local/bin/wp
WP-CLI packages dir:	
WP-CLI cache dir:	/root/.wp-cli/cache
WP-CLI global config:	
WP-CLI project config:	
WP-CLI version:	2.12.0
 opt]#

전역 설정 테스트까지 정상적으로 마무리 되었습니다.

🔲 자동 완성 스크립트 적용

개별 사용자가 명령어를 실행하기 위해 Bash나 Zsh 셸에서 wp 명령어를 입력할 때 자동 완성 기능을 제공하는 스크립트를 적용합니다.

📌 적용 대상

항목

설명

셸 종류

Bash, Zsh 등

사용자

루트 또는 일반 사용자 모두 가능

적용 방식

.bashrc, .zshrc에 source /경로/wp-completion.bash 등록

작동 조건

WP-CLI가 전역 명령어로 등록되어 있어야 함 (/usr/local/bin/wp)

먼저 공식 스크립트를 다운로드 받습니다.

 opt]# curl -O https://raw.githubusercontent.com/wp-cli/wp-cli/main/utils/wp-completion.bash
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   495  100   495    0     0   1860      0 --:--:-- --:--:-- --:--:--  1853
echo "source /opt/wp-completion.bash" >> ~/.bashrc
source ~/.bashrc

여기까지 진행 후 root 사용자도 명령어를 사용할 수 있지만 경고 메시지를 받게 됩니다. WP-CLI의 철학이

“워드프레스는 웹 서버 사용자 권한으로 실행되어야 한다. 루트는 마지막 수단이다.”

WP-CLI는 루트 실행을 막지는 않지만, 강력하게 경고하고 –allow-root 옵션을 요구합니다.

root 사용자 적용을 위해 추가로 다음 명령을 실행합니다.

echo "alias wp='wp --allow-root'" >> ~/.bashrc
source ~/.bashrc

3️⃣ WP CLI 업데이트

지금과 같은 Phar 방식을 사용하여 WP-CLI를 설치한 경우, 언제든지 다음 명령어를 실행해서 업데이트 할 수 있습니다.

 opt]# wp cli update
Success: WP-CLI is at the latest version.
 opt]# wp --info
OS:	Linux 5.14.0-427.16.1.el9_4.x86_64 #1 SMP PREEMPT_DYNAMIC Thu May 9 18:15:59 EDT 2024 x86_64
Shell:	/bin/bash
......생략	
WP-CLI version:	2.12.0

4️⃣ WP CLI 명령어

🔲 –path=경로 옵션 vs 디렉터리 이동 후 명령어 실행

명령어는 어느 경로에서 사용하든 문제 없지만, 해당 사이트에 속하는 워드프레스에 WP-CLI를 사용하기 위해서는 –path= 입력 또는 해당 디렉터리로 이동해야 합니다.

구분

–path=경로 옵션 사용

디렉터리 이동 후 실행

사용 방식

명령어에 –path=/경로를 직접 입력

cd /경로로 이동 후 명령어 실행

장점

한 줄로 실행 가능<br>스크립트 자동화에 유리

직관적이고 경로 기억 안 해도 됨

단점

매번 경로 입력 필요<br>타이핑 실수 가능

여러 사이트 관리 시 이동 번거로움

추천 상황

자동화, 배치 작업, 다중 사이트 관리

단일 사이트 수동 관리, 테스트용

예시

wp plugin list –path=/home/user1/www/ –allow-root

cd /home/user1/www/

–path= 경로는 뒤에 일일이 입력하기가 번거롭기 때문에 워드프레스가 설치된 루트 폴더로 이동해서 사용할 수 있습니다.

루트 폴더에는 다음과 같은 파일이 위치해 있어야 각각의 명령어가 정상 실행됩니다.

워드프레스가 제대로 설치된 루트 디렉터리에는 다음과 같은 핵심 요소들이 있어야 합니다:

항목

설명

wp-config.php

데이터베이스 연결 및 사이트 설정 파일

wp-content/

테마, 플러그인, 업로드 파일 등이 저장되는 폴더

wp-includes/

워드프레스 핵심 기능을 구성하는 내부 코드

wp-admin/

관리자 대시보드 관련 파일들

index.php

사이트의 기본 진입점

.htaccess (선택적)

아파치 웹 서버 설정 파일

license.txt, readme.html

워드프레스 기본 문서들

🔲 기본 명령어

명령어

설명

wp core version

워드프레스 버전 확인

wp core update

워드프레스 업데이트

wp plugin list

설치된 플러그인 목록 확인

wp plugin install 플러그인명

플러그인 설치

wp plugin activate 플러그인명

플러그인 활성화

wp plugin update –all

모든 플러그인 업데이트

wp theme list

설치된 테마 목록 확인

wp theme install 테마명

테마 설치

wp theme activate 테마명

테마 활성화

wp post list

게시글 목록 출력

wp post create –post_title=”제목”

새 게시글 생성

wp user list

사용자 목록 확인

wp user create 아이디 이메일

새 사용자 생성

wp db export

데이터베이스 백업

wp db import

데이터베이스 복원

wp db optimize

데이터베이스 최적화

wp search-replace 찾을값 바꿀값

DB 내 문자열 일괄 변경

wp option get 옵션명

특정 옵션 값 확인

wp cron event list

예약된 크론 이벤트 목록

wp cache flush

캐시 초기화

워드프레스 루트 폴더로 이동 후 명령어 중에 예약된 크론 이벤트 목록을 보면 밴엔드 작업 스케줄을 한 눈에 볼 수 있습니다.

WP CLI-wp cron event list 명령어로 예약된 크론 이벤트 목록 확인_

5️⃣ 결론

WP CLI는 워드프레스 운영을 위한 강력한 명령 줄 도구로, 관리자 대시보드로는 접근하기 어려운 기능들을 빠르고 효율적으로 수행할 수 있습니다.

특히 다음과 같은 상황에서 효율적인 운영을 할 수 있습니다.

  • 여러 사이트를 직접 운영하며 반복 작업이 많을 때
  • 루트 사용자로 서버를 직접 관리하는 환경에서
  • 자동화, 백업, 대량 콘텐츠 처리가 필요한 경우
  • 예약 작업(Cron), 캐시, DB 최적화 등 백엔드 관리가 필요한 경우

WP CLI는 단순한 대시보드 대체가 아니라, 워드프레스에 특화된 서버 운영 도구로서의 역할을 수행한다고 볼 수 있습니다.

Similar Posts

  • 워드프레스 점유율 43%: 전 세계 웹사이트에서 가장 많이 쓰이는 CMS

    W3Techs의 월드 와이드 웹 기술 설문조사에 따르면 워드프레스 점유율은 2025년 3월 43.4%입니다. 전 세계의 웹 사이트 43.4%가 워드프레스 CMS로 만들어 졌다는 걸 의미입니다. 시장 점유율은 61.1%로 확인되며, 2위가 쇼피파이, 3위가 윅스, 4위가 스퀘어스페이스, 5위 줌라로 확인되고 있습니다. 1~5위 순위는 오랜 시간 변동 없이 이어질 것으로 보입니다. 1. 워드프레스 점유율이 높은 이유 워드프레스는 출시…

  • [WP] 워드프레스 사이트 건강 필수 모듈 imagick 설치하기

    워드프레스 필수 플러그인 사이트 건강에서 사이트 건강 상태를 확인할 때 “하나 이상의 필수 모듈을 누락했습니다.”와 같은 글을 확인할 수 있습니다. ‘필수 모듈 imagick’는 미디어 업로드에 더 나은 이미지 품질을 제공합니다. 1. 필수 모듈 imagick 사이트 건강에서 권장 사항 중 모듈이 누락되었다는 안내가 확인 되었을 경우입니다. 워드프레스 서버 환경 안내 페이지에서 해당 내용을 확인할…

  • Cloudways 호스팅 사용 후기(2023)

    fastcomet에서 Cloudways 호스팅으로 이전을 했습니다. Cloudways 호스팅 사용 후기는 기대했던 것 이하였습니다. 이전 이유는 깔끔한 인터페이스와 Memcached/Redis Object 캐시 활용 가능성이었습니다. Varnish 캐시도 사용할 수 있다는 점과 부가 기능들이 마음에 들어 사용하게 되었습니다. 1️⃣ 서버 이전 신청 무료 마이그레이션(서버 이전)은 fastcomet과 동일하게 진행할 수 있습니다. 서버 이전 후 3일 정도는 서울의 데이터 센터로 옴겼고…

  • [WP] Gzip 압축 vs Brotli 압축: 2개 압축 알고리즘 차이점

    워드프레스 CMS를 비롯한 웹 사이트를 빠르게 만들기 위해, 서버에서 데이터를 압축하는 설정을 하는 것이 유용합니다. 이렇게 하면 웹 서버와 브라우저 간에 전송되는 데이터를 더욱 빠르게 로딩할 수 있으며, 웹 사이트의 속도를 더 빠르게 만들어 줍니다. 이는 웹사이트를 운영하는 관리자들이 많이 고려하는 요소 중 하나입니다. gzip 압축은 많이 사용되고 있으며, 많은 웹 서버에서 gzip에서…

  • [WP] 워드프레스 크론을 리눅스 크론으로 교체하기

    워드프레스 크론을 말하기 전에 먼저 크론(cron)에 대해 확인해 보겠습니다. 크론은 자동화 된 예약 시스템입니다. 정해진 시간에 작업을 수행하게끔 지정된 프로그램입니다. 리눅스에서 항상 실행중인 프로그램을 뜻 하는 데몬(daemon)은 백그라운드에서 여러가지 작업을 합니다. 데몬 중에 크론이 있다고 보면 됩니다. 1. 워드프레스 크론[wp-cron] 워드프레스 크론 즉, wp-cron은 워드프레스 코어 그리고 테마와 플러그인이 업데이트 되었는지 확인하는 작업에…

  • [WP] 워드프레스 글 페이지 차이

    워드프레스를 처음 후 운영하게 되면 글(Post)과 페이지(Page) 차이가 어려워 혼동을 겪는 경우가 많습니다. 워드프레스 글 페이지 차이가 무엇인지 명확히 알아 보도록 하겠습니다. 워드프레스 포스트(글)은 워드프레스에서 제공하는 가장 기본적인 글 형식입니다. 동적인 콘텐츠이며 반대로 페이지는 정적인 콘텐츠입니다. 1. 워드프레스 글(Post) 조금 더 자세히 말하자면 포스트는 티스토리 or 네이버 블로그나 각종 커뮤니티 사이트에서 게시되는 글들을…

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

Prove your humanity: 1   +   4   =