WP CLI: 설치 및 설정 | 워드프레스에서 WP CLI를 사용하는 이유
ℹ️이 콘텐츠에는 광고가 포함되어,판매 발생 시 수익이 발생합니다.(네이버 쇼핑 커넥트, 아마존 어필리에이트, 애드센스 등)워드프레스 사이트를 관리할 때, 리눅스 서버에 직접 SSH로 접속할 수 있고 root 권한까지 보유하고 있다면, WP CLI의 필요성을 크게 체감하지 못 할 수 있습니다.
리눅스의 기본 Command Line Interface는 이미 모든 기능을 제공할 정도로 편리하지만, 워드프레스 사이트를 운영하면서 가끔 씩 WP CLI가 언급됩니다. 자주 언급되는 이유는 단순한 명령어의 대체가 아닌 워드프레스에 특화된 자동화와 효율성 측면을 생각할 수 있습니다.
1️⃣ 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의 권장 설치 방법 공식 웹페이지
🔲 기본 권한 설정
 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]# 🔲 전역 설정
파일을 이동 시키면서 파일 명을 동시에 변경해 줍니다.
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 명령어를 입력할 때 자동 완성 기능을 제공하는 스크립트를 적용합니다.
📌 적용 대상
| 
 항목 39351_5f3b38-bc> | 
 설명 39351_d3f3a7-ef> | 
|---|---|
| 
 셸 종류 39351_7a16cd-78> | 
 Bash, Zsh 등 39351_001e2d-95> | 
| 
 사용자 39351_43ba8b-db> | 
 루트 또는 일반 사용자 모두 가능 39351_e8f961-14> | 
| 
 적용 방식 39351_151b8d-2d> | 
 .bashrc, .zshrc에 source /경로/wp-completion.bash 등록 39351_1caac3-13> | 
| 
 작동 조건 39351_341ca1-5b> | 
 WP-CLI가 전역 명령어로 등록되어 있어야 함 (/usr/local/bin/wp) 39351_50b025-00> | 
먼저 공식 스크립트를 다운로드 받습니다.
 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 --:--:-- --:--:-- --:--:--  1853echo "source /opt/wp-completion.bash" >> ~/.bashrc
source ~/.bashrc여기까지 진행 후 root 사용자도 명령어를 사용할 수 있지만 경고 메시지를 받게 됩니다. WP-CLI의 철학이
“워드프레스는 웹 서버 사용자 권한으로 실행되어야 한다. 루트는 마지막 수단이다.”
WP-CLI는 루트 실행을 막지는 않지만, 강력하게 경고하고 –allow-root 옵션을 요구합니다.
root 사용자 적용을 위해 추가로 다음 명령을 실행합니다.
echo "alias wp='wp --allow-root'" >> ~/.bashrc
source ~/.bashrc3️⃣ 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.04️⃣ WP CLI 명령어
🔲 –path=경로 옵션 vs 디렉터리 이동 후 명령어 실행
명령어는 어느 경로에서 사용하든 문제 없지만, 해당 사이트에 속하는 워드프레스에 WP-CLI를 사용하기 위해서는 –path= 입력 또는 해당 디렉터리로 이동해야 합니다.
| 
 구분 39351_6380b3-4a> | 
 –path=경로 옵션 사용 39351_cd41e8-53> | 
 디렉터리 이동 후 실행 39351_073015-65> | 
|---|---|---|
| 
 사용 방식 39351_3d5367-fc> | 
 명령어에 –path=/경로를 직접 입력 39351_d16547-ff> | 
 cd /경로로 이동 후 명령어 실행 39351_1ad0d9-a4> | 
| 
 장점 39351_ecef6a-ce> | 
 한 줄로 실행 가능<br>스크립트 자동화에 유리 39351_98a846-9f> | 
 직관적이고 경로 기억 안 해도 됨 39351_367f4a-79> | 
| 
 단점 39351_d61c3f-9b> | 
 매번 경로 입력 필요<br>타이핑 실수 가능 39351_491142-76> | 
 여러 사이트 관리 시 이동 번거로움 39351_342d10-6b> | 
| 
 추천 상황 39351_6a516d-e8> | 
 자동화, 배치 작업, 다중 사이트 관리 39351_add182-0f> | 
 단일 사이트 수동 관리, 테스트용 39351_6629bf-34> | 
| 
 예시 39351_635a9a-df> | 
 wp plugin list –path=/home/user1/www/ –allow-root 39351_95b184-a1> | 
 cd /home/user1/www/ 39351_4c316c-1a> | 
–path= 경로는 뒤에 일일이 입력하기가 번거롭기 때문에 워드프레스가 설치된 루트 폴더로 이동해서 사용할 수 있습니다.
루트 폴더에는 다음과 같은 파일이 위치해 있어야 각각의 명령어가 정상 실행됩니다.
워드프레스가 제대로 설치된 루트 디렉터리에는 다음과 같은 핵심 요소들이 있어야 합니다:
| 
 항목 39351_5db58e-ad> | 
 설명 39351_41cbec-a0> | 
|---|---|
| 
 wp-config.php 39351_7dcd61-7d> | 
 데이터베이스 연결 및 사이트 설정 파일 39351_ef9548-5a> | 
| 
 wp-content/ 39351_69ef4c-21> | 
 테마, 플러그인, 업로드 파일 등이 저장되는 폴더 39351_0041a4-72> | 
| 
 wp-includes/ 39351_606590-50> | 
 워드프레스 핵심 기능을 구성하는 내부 코드 39351_adb268-0e> | 
| 
 wp-admin/ 39351_89428e-74> | 
 관리자 대시보드 관련 파일들 39351_43ee65-20> | 
| 
 index.php 39351_c78c1f-12> | 
 사이트의 기본 진입점 39351_eca3f7-c7> | 
| 
 .htaccess (선택적) 39351_d6b9ef-4e> | 
 아파치 웹 서버 설정 파일 39351_81ae11-81> | 
| 
 license.txt, readme.html 39351_0dcd03-25> | 
 워드프레스 기본 문서들 39351_0a0151-16> | 
🔲 기본 명령어
| 
 명령어 39351_10823b-c7> | 
 설명 39351_94ab16-e0> | 
|---|---|
| 
 wp core version 39351_f0afc7-6b> | 
 워드프레스 버전 확인 39351_ad0a43-16> | 
| 
 wp core update 39351_a76913-70> | 
 워드프레스 업데이트 39351_cf5174-2e> | 
| 
 wp plugin list 39351_e76344-20> | 
 설치된 플러그인 목록 확인 39351_8314ba-23> | 
| 
 wp plugin install 플러그인명 39351_bc843f-d8> | 
 플러그인 설치 39351_1e884d-b5> | 
| 
 wp plugin activate 플러그인명 39351_255f7a-86> | 
 플러그인 활성화 39351_001cf7-95> | 
| 
 wp plugin update –all 39351_afd23a-54> | 
 모든 플러그인 업데이트 39351_bb9bc5-bf> | 
| 
 wp theme list 39351_43c5e1-53> | 
 설치된 테마 목록 확인 39351_3ec835-55> | 
| 
 wp theme install 테마명 39351_613a4a-0c> | 
 테마 설치 39351_331fd6-5d> | 
| 
 wp theme activate 테마명 39351_2ee46f-98> | 
 테마 활성화 39351_098f82-d6> | 
| 
 wp post list 39351_7825ca-11> | 
 게시글 목록 출력 39351_46ceb2-97> | 
| 
 wp post create –post_title=”제목” 39351_6df1de-2a> | 
 새 게시글 생성 39351_542d78-db> | 
| 
 wp user list 39351_c609ac-20> | 
 사용자 목록 확인 39351_b46718-92> | 
| 
 wp user create 아이디 이메일 39351_17bd6b-d6> | 
 새 사용자 생성 39351_9ab2e6-a5> | 
| 
 wp db export 39351_bbd2a7-fd> | 
 데이터베이스 백업 39351_ce369b-ce> | 
| 
 wp db import 39351_8eff79-1f> | 
 데이터베이스 복원 39351_b7a80a-8a> | 
| 
 wp db optimize 39351_be111c-9a> | 
 데이터베이스 최적화 39351_c10523-74> | 
| 
 wp search-replace 찾을값 바꿀값 39351_cbe55f-02> | 
 DB 내 문자열 일괄 변경 39351_76e82d-d1> | 
| 
 wp option get 옵션명 39351_631cd9-da> | 
 특정 옵션 값 확인 39351_bfcafc-19> | 
| 
 wp cron event list 39351_4d6183-36> | 
 예약된 크론 이벤트 목록 39351_c39887-be> | 
| 
 wp cache flush 39351_f0b6de-97> | 
 캐시 초기화 39351_e466f4-05> | 
워드프레스 루트 폴더로 이동 후 명령어 중에 예약된 크론 이벤트 목록을 보면 밴엔드 작업 스케줄을 한 눈에 볼 수 있습니다.
5️⃣ 결론
WP CLI는 워드프레스 운영을 위한 강력한 명령 줄 도구로, 관리자 대시보드로는 접근하기 어려운 기능들을 빠르고 효율적으로 수행할 수 있습니다.
특히 다음과 같은 상황에서 효율적인 운영을 할 수 있습니다.
- 여러 사이트를 직접 운영하며 반복 작업이 많을 때
 - 루트 사용자로 서버를 직접 관리하는 환경에서
 - 자동화, 백업, 대량 콘텐츠 처리가 필요한 경우
 - 예약 작업(Cron), 캐시, DB 최적화 등 백엔드 관리가 필요한 경우
 
WP CLI는 단순한 대시보드 대체가 아니라, 워드프레스에 특화된 서버 운영 도구로서의 역할을 수행한다고 볼 수 있습니다.