워드프레스 플러그인 업데이트를 FTP 대신 SSH/SCP 로 하기
Wordpress 관리자 화면에서 plugin 설치와 update를 수행할 수 있다.
설치와 업데이트시 FTP 를 사용하려면 vsftpd 나 기타 ftp 서버를 설치해야 하며 보안때문에 SFTP 를 사용할 경우 SSL 설정도 해야 하는 번거로움이 있다.
서버가 리눅스라면 기본적으로 SSH/SCP 를 지원하므로 업데이트를 SCP 를 이용해서 안전하게 하는 방법을 알아 보자.
플러그인 설치
- 먼저 SSH SFTP Updater Support 을 다운로드한다. 현재 버전은 0.4 이다.
- 다운로드한 파일을 서버의 워드프레스 설치 경로(Ex: /var/www/wordpress/wordpress-3.9.1/wp-content/plugins) 에 이동한다.
압축을 해제한다.
unzip ssh-sftp-updater-support.0.4.zip
- 워드프레스 관리자 기능으로 들어간다.
- Plugins 메뉴에서 SSH SFTP .. 를 선택한후 Activate 를 클릭한다.
SELinux 설정
SElinux 를 사용한다면 httpd 는 ssh 에 연결하지 못하므로 플러그인이 정상 동작하지 않는다. SELinux 에 신규 정책을 추가(추천)해 주거나 httpd 가 네트웍에 연결 가능하게 설정해야 한다.(비추)
신규 정책 추가
다음 파일을 http-wordpress.te 로 저장한다.
module http-wordpress 1.0; require { type httpd_t; type ssh_port_t; class tcp_socket name_connect; } #============= httpd_t ============== #!!!! This avc is allowed in the current policy allow httpd_t ssh_port_t:tcp_socket name_connect;
checkmodule 로 policy module 을 컴파일한다.
checkmodule -M -m -o http-wordpress.mod http-wordpress.te
모듈을 패키징한다.
semodule_package -o /etc/selinux/targeted/modules/active/modules/http-wordpress.pp -m http-wordpress.mod
패키징한 모듈을 설치한다.
semodule -i http-wordpress.pp
아파치 웹서버를 재구동한다.
service httpd restart
httpd 네트웍 허용
다음 SELinux boolean 을 설정한다.
setsebool -P httpd_can_network_connect on
- 아파치를 재구동한다.
사용
- 관리자 기능으로 로그인한후에 Plugin 메뉴로 들어간다.
- 설치할 플러그인을 선택한 후에 Install Now 를 클릭한다.
- 서버의 정보와 계정을 넣고 하단의 Conenction Type 을 SSH2 로 선택하고 Proceed 를 클릭한다.
- Proceed 를 클릭한다.