반응형

AWS의 프리티어 혜택을 이용해 가상머신으로 무얼해볼까 생각하다보면

자연스레 짤방을 긁는 크롤러를 떠올리게 된다.


또, 구글링을 하다 자신의 블로그와 똑같은 스킨, 똑같은 디자인의 블로그를 심심찮케 발견했던 기억이나

이참에 설치형 블로그로 옮겨타볼까 하는 생각도 든다.


물론, 안그런 사람도 많겠지만 나는 그랬다.


가볍게 크롤러로 시작해서 점점 서버를 더 잘 활용해보고 싶은 욕구랄까..

서버를 놀려두는게 왠지 아깝다.

어차피 프리티어라 공짜면서도 말이다.


그래서 8월 PyCon2016 (파이콘)을 갖다 오면서 충만해진 의욕으로 

워드프레스도 설치해보고 Django(쟝고)도 설치해보면서 이런 저런 삽집을 해볼까 한다.


워드프레스 설치순서는 간단하다

공식사이트에서 제공하는 매뉴얼대로 진행한다.

https://help.ubuntu.com/lts/serverguide/wordpress.html


정작 중요하고 삽질하고 시간 잡아먹은 곳은 테마와 플러그인을 설치하기 위해 EC2에서 설정해야 하는 것들이다.

테마와 플러그인을 설치하기 위해 Admin 페이지에서 인스톨 하는 방법이 가장 간단하지만 

admin 페이지에서 ec2 서버로 ftp 통신을 위한 인증과

테마와 플러그인을 설치하기 위해 wp-content(wordpress content) 디렉토리에 대한 접근 권한 문제로 정상동작 하지 않았다.



@수동으로 WordPress의 Theme(테마)와 Plugin(플러그인) 설치 하기.


- 위의 매뉴얼에 WordPress 설치 path (/usr/share/wordpress 와 /usr/share/wordpress/wp-content)가 있다.

다운로드 받은 테마와 플러그인의 zip 파일은 압축을 풀어서 폴더채로 wp-content/theme와 wp-content/plugin에 두자.




하지만 admin 페이지에서 손가락 몇번 클릭하면 될 일을 

언제까지 일일이 수동으로 설치할 수도 없는 일이다.


@WordPress Theme(테마)와 Plugin(플러그인) 적용시 FTP 에러 상황에서...

ec2에서 WordPress를 설치하기 위해 ssh 접속을 하면서 ubuntu계정 즉, 관리자 계정으로 설치하게 되면 

WordPress 디렉토리의 소유자와 그룹은 root 로 설정된다.

이 상태에서 admin 로 테마와 플러그인을 설치하게 되면 권한 문제로 에러가 발생하게 되는 것이다.


그리고 ec2에서 ubuntu를 설치하고나면 ftp 서버가 설치되어 있지 않다.

ftp 서버를 설치하고 데몬을 띄우는 것(우분투 기준. vsftpd)은 구글링을 해보도록 하자. 

검색해서 설치하도록 하자. =>검색


아, 그전에 EC2 에서 Security Group에서 21번 포트를 열도록 하는 것도 잊지 말도록하자.

21번 포트로 통신을 FTP 통신을 할 것이고 패시브 모드가 동작하도록 설정하자.

패시브 모드 설정은 /etc/vsftpd.conf 파일에서 pasv_enable=YES, pasv_min_port, pasv_max_port를 아래와 같이 설정하자.



패시브 모드에서 1024-1048 범위의 포트를 이용한다고 설정한 것인데,

그렇다면 당연히 EC2 인스턴스에 걸려있는 Security Group에서도 1024-1048 영역의 포트로 통신이 가능하도록 수정하자.

이렇게.



테마랑 플러그인 설치하는데 관리자 계정 정보를 막쓰기도 찝찝하니까

만약 사용자 계정이 없고 관리자 계정밖에 없다면 

사용자 계정도 하나 만들어 두도록 하자. adduser 혹은 useradd.


admin 페이지에서 테마와 플러그인을 설치할 때,
apache2 서버가 ftp 통신으로 리소스를 다운로드받고 서버에 일련의 설치 과정을 진행한다.
이때, apache2 서버가 사용하는 계정이 root 계정 권한에 막혀서 발생하는 문제다.
(위의 'admin 로 테마와 플러그인을 설치하게 되면 권한 문제로 에러')

근본적으로 root 권한으로 설치했던 Wordpress를 
사용자 계정에서도 read, write, execute가 가능하게 된다면 문제는 해결된다.
이때는 /usr/share/ 에서 ls -al 명령어로 wordpress 디렉토리의 소유자와 그룹을 확인할 수 있다.
root root로 되어 있다면 apache2가 사용하는 계정과 그룹으로 설정하면 된다.

그럼 apache2 서버가 사용하는 계정을 확인하기 위해 /etc/apache2/apache2.conf 를 살펴보면 
다음과 같음을 확인할 수 있다.


그래서 www-data 인 것도 확인했으니 
/usr/share/에 있는 WordPress 디렉토리를 리커시브 하게 
소유자와 그룹을 www-data로 바꾸도록 하자.
(참고 블로그 : http://dezang.net/600)

이때 사용하는 명령어는 chown -R 소유주:소유그룹 으로 실행하면 된다. =>chown
실행하고 실제로 Admin페이지에서 테마와 플러그인을 설치해보록 하자.


하. 그래도 이렇게 포스팅하나 했네.
설치 과정과 트러블 슈팅과정을 거치고 이 과정을 다시한번 떠올리면서 
더 친밀해지는 계기가 되었다.

이 과정을 잊어먹지 않을수야 없겠지만 잠재의식에 알게모르게 스케치가 되었기를.


반응형