워드프레스에서 FTP 연결 정보를 요구하는 원인과 해결법
플러그인이나 테마를 설치·업데이트하려는데 갑자기 아래와 같은 화면이 뜬 적이 있으신가요?
“To perform the requested action, WordPress needs to access your web server.” (요청한 작업을 수행하려면 워드프레스가 웹 서버에 접근해야 합니다.) Hostname / FTP Username / FTP Password…
당황스럽지만 사실 이는 흔한 문제이며, 원인만 알면 대부분 간단히 해결됩니다. 이 글에서는 왜 이런 메시지가 나타나는지, 그리고 FTP 정보 없이도 해결할 수 있는 방법들을 정리했습니다.
1. 이 메시지가 뜨는 근본 원인
워드프레스는 플러그인·테마를 설치하거나 업데이트할 때 서버의 wp-content 폴더에 파일을 직접 쓰기(write) 작업을 합니다. 이때 **워드프레스를 구동하는 PHP 프로세스의 소유자(owner)**와 파일/폴더의 소유자가 다르면, 워드프레스는 “내가 이 폴더에 안전하게 쓸 권한이 있는지” 스스로 판단하지 못합니다.
권한이 불확실하다고 판단되면 워드프레스는 안전을 위해 직접 파일을 수정하는 대신, FTP·SSH·SSH2 같은 별도 인증 수단을 통해 파일을 쓰도록 요청합니다. 즉, 파일 시스템 소유권/권한 불일치가 근본 원인입니다.
주로 발생하는 상황
- 웹 호스팅 이전 후 파일 소유자가 바뀐 경우
- FTP나 SFTP로 수동 업로드한 파일과 PHP 실행 계정이 다른 경우
- 서버를 직접 구축(VPS, AWS EC2 등)하면서 권한 설정을 하지 않은 경우
wp-content폴더의 권한이 너무 제한적으로(예: 644, 755이 아닌 값) 설정된 경우- SELinux, open_basedir 등 서버 보안 설정이 접근을 막는 경우
2. 해결 방법 1: 폴더 소유권 및 권한 수정 (가장 근본적인 해결책)
서버에 SSH로 접속할 수 있다면, PHP(웹서버)를 실행하는 사용자에게 wp-content 폴더의 소유권을 넘겨주는 것이 가장 확실한 해결법입니다.
# 예: Apache/Nginx가 www-data 사용자로 실행되는 경우
sudo chown -R www-data:www-data /var/www/html/wp-content
# 폴더 권한 755, 파일 권한 644로 재설정
sudo find /var/www/html/wp-content -type d -exec chmod 755 {} \;
sudo find /var/www/html/wp-content -type f -exec chmod 644 {} \;
실행 사용자를 모른다면
ps aux | grep php나ps aux | grep apache,ps aux | grep nginx명령으로 확인할 수 있습니다. 공유 호스팅이라면 보통 계정 아이디와 동일한 경우가 많습니다.
이렇게 소유권을 맞춰주면 워드프레스가 직접 파일 쓰기 권한이 있다고 판단해 FTP 정보를 더 이상 요구하지 않습니다.
3. 해결 방법 2: wp-config.php에 파일시스템 방식 명시하기
SSH 접근이 어렵거나 공유 호스팅을 사용 중이라면, wp-config.php 파일에 아래 코드를 추가해 워드프레스가 직접 파일에 접근하도록 강제할 수 있습니다.
wp-config.php 파일을 열어 /* That's all, stop editing! */ 문구 바로 위에 다음 줄을 추가하세요.
define('FS_METHOD', 'direct');
이 설정은 워드프레스에게 “FTP를 거치지 말고 서버 파일시스템에 직접 접근하라”고 지시합니다. 단, 이 방법이 통하려면 앞서 설명한 폴더 소유권/권한이 이미 적절하게 설정되어 있어야 합니다. 그렇지 않으면 “Permission denied” 오류가 대신 발생할 수 있습니다.
4. 해결 방법 3: 정말 FTP 정보를 입력해야 하는 경우
권한 수정이 불가능한 공유 호스팅 환경이라면, 요구하는 대로 FTP 정보를 입력하는 것도 방법입니다.
| 입력 항목 | 설명 |
|---|---|
| Hostname | 보통 ftp.도메인이름.com 또는 서버 IP |
| FTP Username / Password | 호스팅 업체에서 발급한 FTP 계정 정보 |
| Connection type | FTP, FTPS(SSL), 또는 SSH2 중 서버가 지원하는 방식 |
이 정보를 매번 입력하기 번거롭다면 wp-config.php에 아래처럼 저장해둘 수도 있습니다. (단, 보안상 신뢰할 수 있는 서버 환경에서만 권장합니다.)
define('FTP_HOST', 'ftp.yourdomain.com');
define('FTP_USER', 'your_ftp_username');
define('FTP_PASS', 'your_ftp_password');
define('FS_METHOD', 'ftpext');
비밀번호를 코드에 평문으로 저장하는 것은 보안 위험이 있으므로, 가능하다면 방법 1(권한 수정)을 우선 시도하는 것을 권장합니다.
5. 해결 방법 4: 호스팅 관리 패널(cPanel 등) 활용
Cafe24, 가비아, cPanel 기반 호스팅 등을 사용 중이라면 파일 관리자(File Manager)에서 wp-content 폴더를 직접 선택해 권한을 755(폴더)/644(파일)로 변경할 수 있습니다. 대부분의 관리 패널은 우클릭 → “권한 변경(Change Permissions)” 메뉴를 제공합니다.
6. Docker 환경에서 발생하는 경우
Docker Compose로 워드프레스를 운영 중이라면, 컨테이너 내부 www-data 사용자와 마운트된 볼륨의 소유권이 맞지 않아 같은 문제가 발생할 수 있습니다. 이 경우 컨테이너 내부에서 아래 명령으로 소유권을 맞춰주면 해결됩니다.
docker exec -it wordpress_app chown -R www-data:www-data /var/www/html/wp-content
7. 요약: 어떤 방법을 선택해야 할까?
| 상황 | 권장 해결법 |
|---|---|
| SSH 접속 가능 (VPS, 클라우드 서버) | 방법 1: 소유권/권한 직접 수정 |
| 권한 수정 후에도 계속 발생 | 방법 2: FS_METHOD ‘direct’ 지정 |
| 공유 호스팅이라 권한 수정 불가 | 방법 3: FTP 정보 입력 |
| cPanel 등 관리 패널 사용 | 방법 4: 파일 관리자에서 권한 변경 |
| Docker 환경 | 컨테이너 내부에서 소유권 재설정 |
가장 안전하고 근본적인 해결책은 파일 소유권과 권한을 올바르게 맞추는 것입니다. FTP 정보를 입력하는 것은 임시방편에 가까우며, 서버 설정 자체를 손보는 것이 장기적으로 훨씬 안정적입니다.