Wordpress FTP 인증 생략

FTP 인증 생략

wp-config.php 파일을 열어 아래 코드를 추가한다.

define(‘FS_METHOD’, ‘direct’);

필요한 폴더에 권한 부여

업데이트나 설치는 모두 파일을 쓰는 것이다. 폴더를 읽을 수 있는 권한도 당연히 필요하겠지. 권한이 필요한 폴더는 다음과 같다.

  1. wordpress 폴더
  2. wp-content/
  3. wp-content/plugins/
  4. wp-content/upgrade/ (워드프레스 코어 업그레이드 필요)

권한을 변경하는 명령어는 다음과 같다.

$ sudo chmod 755 [폴더명]

소유자 확인

 

웹서버 서비스 계정 확인

$ cat /etc/issue
Ubuntu 14.04.1 LTS \n \l
$ vim /etc/apache2/apache2.conf
# These need to be set in /etc/apache2/envvars
User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}
$ cat /etc/apache2/envvars
export APACHE_RUN_USER=www-data
export APACHE_RUN_GROUP=www-data

소유자 변경

소유자를 변경하는 명령어는 다음과 같다.

sudo chown [계정명]:[그룹명] [파일명]

예를들어 wp-content/ 의 소유자를 변경한다면 아래와 같이 입력한다.

sudo chown www-data:www-data wp-content

그러면 그 폴더의 소유자만 쏙 바뀐다. 그런데… 이거 상당히 귀찮다. 그냥 워드프레스 폴더와 그 내부 모든 파일의 소유자를 www-data로 바꿀 수는 없을까? 있다. 바로 -R옵션을 사용하는 것이다.

sudo chown -R www-data:www-data wordpress

그러면 워드프레스 이하 모든 폴더와 파일의 소유자가 바뀐다. 이제 755 접근권한을 가진 폴더나 파일에 워드프레스가 접근 할 수 있다. 정확히는 아파치를 사용하여 동작하는 모든 서비스가 접근 할 수 있는 것이지만 거기까지는 생각하지 말자. 자 이제 워드프레스에 접속해서 테마와 플러그인을 설치든 업데이트든 마음껏 해보자. 제대로 따라오기만 했다면 인증없이 그리고 접근 오류 따위도 없이 완료될 것이다.

작은 문제점

완벽한 것 같지만 이렇게하면 작은 문제점이 발생한다. 바로 내 계정으로 FTP에 접속하여 파일을 업로드하거나 다운로드 할 수 없다는 것이다… SSH로 접속하면 sudo 명령어를 통해 루트 권한을 잠깐 부여받아 뭐든 수행할 수 있지만 FTP는 다르다. 그럼 이 문제는 어떻게 해결해야 할까?

두 가지 방법이 있다.

[yourId]:[www-data] 775

하나는 폴더의 소유자는 자신의 계정으로 하고, 워드프레스가 파일쓰기가 필요한 폴더의 접근권한을 775로 바꾸는 것이다. 즉 www-data 그룹의 계정은 쓰기가 가능하도록 하는 것이다.

www-data 그룹에 사용자 계정 추가

이건 내가 사용하고 있는 방법인데 일단 전체적으로는 소유자와 그룹 모두 www-data로 해놓고, www-data 그룹에 나의 계정을 추가하고 내가 FTP로 접속하여 파일을 업/다운로드 할 폴더만 775 권한을 주는 것이다.

그룹에 사용자를 추가하는 명령어는 다음과 같다. 기존 그룹을 변경하는 것이 아니라 보조 그룹에 넣는 방법이다.

$ sudo usermod -G [userId]:[group]

처음에 설명한 파일의 접근권한과 소유자에 대한 이해만 확실히 하고 있다면 자신의 입맛대로 골라서 문제를 해결 할 수 있을 것이다. 번거롭게 느껴질지 몰라도 파일 하나 하나에 대한 소유권과 접근권한을 사용자가 강력하게 통제할 수 있는 장점 덕분에 대부분의 서버가 유닉스/리눅스 기반이지 않을까? 생각한다.

참고 문헌

워드프레스 FTP 인증 오류 해결 방법

Advertisements

글쓴이: Hong Jin-Seob

Developer

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Google+ photo

Google+의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

%s에 연결하는 중