[wordpress] 플러그인, 테마 설치, 이미지 업로드 시 FTP 에러 처리 방법

Published on: 2013. 11. 14. 13:08 by louis.dev
워드프레스를 개인 서버에 올려 사용할때 몇가지 문제가 있었습니다. 그중에 워드프레스 운영페이지 상에서 플러그인 업데이트(혹은 설치)나 테마 설치, 이미지 업로드 등 FTP를 사용하는 기능들이 제대로 수행이 되지 않는 문제가 가장 큰 문제였는데요.

To perform the requested action, WordPress needs to access your web server. Please enter your FTP credentials to proceed. If you do not remember your credentials, you should contact your web host.
위와 같은 에러를 뿌리면서 계속 ftp의 hostname, username, password를 물어봅니다. 그래서 제대로 ftp 내용을 제대로 입력을 하면 그 다음 화면은 흰 화면만 나오고 아무것도 동작을 하지 않게 됩니다. 위의 에러메세지로 구글링을 하면 대부분 wp-config.php에 아래의 내용을 입력하라는 솔루션이 대부분이었습니다.
define('FTP_BASE', '/httpdocs/');
define('FTP_CONTENT_DIR', '/httpdocs/wp-content/');
define('FTP_PLUGIN_DIR ', '/httpdocs/wp-content/plugins/');
define('FTP_USER', '<FTP_Username>');
define('FTP_PASS', '<FTP_Password>');
define('FTP_HOST', 'localhost');
하지만 위와 같은 내용을 입력을 해도 FTP를 사용하는 모든 기능들이 제대로 동작하지 않았습니다. 다양한 솔루션중 또 눈에 많의 띄는게 아파치의 user:group과 wordpress directory의 user:group이 맞지 않아 발생되는 문제라는 의견도 있더라구요. 그래서 apache의 user:group와 wordpress의 user:group을 동일하게 세팅했습니다. apache의 데몬은 root권한으로 apachectl을 실행해서 로드 되지만, 실제 apache 데몬의 user:group은 root가 아닙니다. 아파치 데몬의 user:group을 확인하려면 ${apache 디렉토리}/conf/httpd.conf에 선언되어 있는 User, Group에 따라 데몬의 user, group이 설정됩니다.
<IfModule unixd_module>
User apache
Group apache
</IfModule>
즉  apache 라는 그룹의 apache 라는 사용자가 아파치 데몬의 user라는 사실을 확인했습니다. 그 후 wordpress가 설치되어 있는 디렉토리의 user를 아파치 데몬의 user와 동일하게 맞춰줬습니다.
# chown -R apache:apache ${wordpress 디렉토리}
위와같이 소유자를 변경하니 FTP 정보를 물어보던 창이 없어지고 제대로 동작하는 것을 볼수 있었습니다. 저 처럼 설치형 wordpress를 사용하실 때 FTP 기능이 되지 않는다면 wordpress 디렉토리의 소유자를 아파치와 동일하게 맞추어 사용하시면 되겠습니다.