1. 들어가며
새삼스럽지만 가상서버호스팅(VPS)을 이용 시 워드프레스 설치법을 정리하는 이유는 가상서버호스팅(VPS)에 입문하면서 했던 삽질을 기록으로 나며보고 싶어서이고 혹 모를 누구에게 조금은 도움이 되거나 또는 내가 도움을 받을 수 있을 것이라는 믿음이 있기 대문이다.
거의 반년전에 가상서버호스팅(VPS)을 검토해 VULTR이 나름 경쟁력이 있다고 판단되어 VULTR에서 블로그를 운영하기로 했다.
일반 웹호스팅에서는 그 유명한 5분세팅이 가능할 정도로 단순하지만 가상서버호스팅(VPS)을 이용하면 조금 복잡한 과정을 거쳐야 한다.
처음에 서버에 접속해 서버 세팅을 하고 보면 너무도 많은 폴더에 질려서 감을 잡을 수가 없었다. 처음에 그 헤매었던 기억을 되살려 왕초보의 입장에서 정리해 혹 모를 누군가에게 도움이 되었으면 하는 마음뿐이다.
아래에서는 서버를 어느정도 세팅(?)한 후 (세팅이래야 필요한 기본 프로그램을 설치한 정도?) 원래 목표였던 워드프레스를 설치하는 과정을 간략히 정리해 보았다.
한번 해보면 그 다음부터는 넘 쉬운 일이지만 생소한 분야에서 생소한 것들을 잡고서 진행하려다보니 여간 어렵기만하고 도대체 진척이 되지 않았었다. 그럴때면 옆에서 차근차근 알려주는 사람이 있었으면 얼마나 좋을까라는 마음에 정리해보는데..
이런것을 뻘짓이라고 부르는데.. 난 이런 뻘짓에서 벗어나지 못하는지?
1. 워드프레스 설치를 위한 기본 작업
여기에서는 워드프레스를 설치하기위하 기반 공사에 해당하는 작업들이다.
워드프레스를 설치할 장소가 어디이고, 설치할 장소를 서버가 인식할 수 있도록 조치를 취하는 것, 원활히 작동할 수 있도록 권한 부여 등등의 작업이 진행될 것이다.
1.1. 루트를 어디로 정할것이냐?
제가 설치한 ubuntu 16.04의 경우 document root 디렉토리는 /usr/share/nginx/html/이죠.. (아마 ubuntu 14.02도 마찬가지)
이 루트 디렉토리는 nginx의 기본 파일들을 사용하므로 깨끗하게 루트를 유지하고 싶은 사람들은 별도 root를 지정해 사용한다.
어떤 사람은 /home/사용자계정에 폴더를 형성해 사용하기도하고(/home/사용자 계정/www)
어떤 사람은 ‘/usr/share/nginx/html/‘ 를 그대로 사용하기도 하고 또 var 아래에 만드는 경우도 있는 것 같다. ‘/var/www/html/ ‘
결국 위치는 사용자 맘인듯…
운영 체제에서 정해준 위치를 사용하지 않는 이유는 Nginx 패키지 버전에 따라 루트 디렉토리가 변경되는 경우가 있으므로 이를 방지코자 함이라고 한다. 그 어떤 위치를 선정했다해도 Symbolic Link로 쉽게 연결해주면 사용가능하니 이를 이용해서 자기가 관리하기 쉬운 위치에 운영하는 것 같다.
처음에는 이런 내용을 잘 몰라서 도대체 어디에다 설치해야하는 거야라고 엄청 혼란스러워 했죠.
설치 위치로 VULTR의 가상호스트 document root를 /home/사용자 계정에 설치하기로 했다.
이는 별도 폴더를 만들 필요가 없다는 귀차니즘이 가장 큰 이유였고 자꾸 디렉토리를 만들고 싶지는 않아서.
1.2. Nginx 가상호스트 설정 파일을 생성, 작성
이번에는 Nginx 가상호스트 설정 파일에 이 새로 만든 document root 위치를 반영 시켜주는 것이다.
이 설정은 우분투 버젼에 따라서 /etc/nginx/sites-available라는 폴더 또는 /etc/nginx/conf.d라는 폴더에 있는 default 파일에서 수정 가능하다.
그 내용을 보면
server_name localhost ;
root /usr/share/nginx/html ;
로 여기서 가상호스트 서버 네임은 대개 기본으로 localhost로 되어 있는데 이를 자신의 도메인주소로 바꾸면 된다.
기본 설정 파일에는 document root가 기본으로 /usr/share/nginx/html 로 설정되어 있습니다.
여기에 새로 정한 디렉토리 주소를 풀로 적어준다.
/home/사용자 계정/www 등등
아래는 현재 운영하고 있는 내용이다.
server_name happist.com www.happist.com;
root /home/happist;
1.3. 가상호스트를 활성화해준다.
다음에 해야할 일은 새로 변경한 document root 위치를 nginx가 알수 있도록 연결해 준다.
위에서처럼 document root 위치를 변경해 주었다면 이를 연결해 주어야 하는데 이 작업을 하지 않으니 502 Bad Gateway가 뜨면서 연결이 안된다.
그래서 고민끝에 심볼릭링크로 연결해 해결했다.
nginx 설정파일에서 document root 위치 지정만으로는 작동하지 않는다.
ln -s [/usr/share/nginx/html] [새로만든 document root 위치 ]
ln -s /usr/share/nginx/html/ /home/happist
1.4. 새로운 root 폴더의 권한을 변경해 준다
새로 변경한 document root 위치를 nginx가 사용할 수 있도록 권한을 부여해 주어야 한다.
명령어는 chown, chmod를 사용.
아래는 사용자 계졍아래 별도로 www라는 폴더를 만든 경우의 사용하는 명령으로 가능하면 full directory를 적어주는 게 좋은 것 같다.
chown -R www-data:www-data /home/happist
chmod -R 755 /home/happist
이러한 명령이 때에 따라서는 제대로 작동하지 않는 경우도 있는 것 같다.
워드프레스에서 권장하는 권한은 폴더의 경우는 755 파일들은 644이며 wp-config.php파일은 매우 중요한 정보를 담고 있으므로 660으로 제한하고 있으미 참고해야 한다.
- All files should be 664 or 660
- All folders should be 775 or 770
- wp-config.php should be 660
터미널에서 아래와 같은 명령어로 퍼미션을 변경한다.
find . -type f -exec chmod 644 {} +
find . -type d -exec chmod 755 {} +
chmod 660 wp-config.php
1.5. nginx 서버 재시작
위에서 Document root 등이 변경되고 설정 내용이 변경되었으므로 nginx 서버를 재가동시키는 명령을 주어야 한다.
systemctl reload nginx.service
2. 워드프레스 설치
위에서의 작업을 토대로 워드프레스를 설치하는 과정을 짚어보도록 하자
- 여기에서는 워드프레스에서 상요할 DB를 생성하기
- 워드프레스 설치 파일을 받기
- 워드프레스 설치 및 설정 등
2.1. 워드프레스 설치를 위한 DB 생성
우선 워드프레스가 사용할 DB 생성이 필요하다.
아래는 Maria DB에 접속해서 DB를 생성하는 과정을 간략히 정리한 것이다.
MariaDB에 접속
mysql -u root -p
DB 생성
CREATE DATABASE wp;
DB사용자 계정 생성
CREATE USER happist@localhost;
사용자 계정 패스워드 설정
SET PASSWORD FOR 사용자@localhost= PASSWORD(“password”);
사용자가 wp라는 DB에 접근할 권한 부여.
GRANT ALL PRIVILEGES ON wp.* TO 사용자@localhost IDENTIFIED BY ‘password’;
설정값을 적용
FLUSH PRIVILEGES;
2.2. 워드프레스 파일 받아 설치하기
서버에 워드프레스 설피 파일을 올리는 방법은 FTP로 파일을 올리거나 서버에서 바로 다운로드 받는 방법이 있다.
VULTR의 경우 국내에서 접속 시 생각보다 ftp 속도가 느려서 서버에서 다이렉트로 워드프레스서버로부터 받는게 훨씬 빠르다.
먼저 워드프레스 최신 한국 버젼을 받을 수 있는 곳으로 가자.
워드프레스 한국 버젼은 워드프레스의 공홈이라하 할 수 있는 https://ko.wordpress.org에서 다운 받을 수 있다.
여기에서 최신 버젼의 링크주소를 복사한다.
2017년 3월 11일 현재 최신은 4.7.3으로 링크 주소를 확인하니 아래와 같다. https://ko.wordpress.org/wordpress-4.7.3-ko_KR.tar.gz
cd /home/happist # 설치할 디렉토리로 이동
https://ko.wordpress.org/wordpress-4.7.3-ko_KR.tar.gz # 워드프레스 최신 버전의 링크주소
tar -xzf https://ko.wordpress.org/wordpress-4.7.3-ko_KR.tar.gz # 압축을 푼다.
그 다음에는 폴더를 조정하든지 취향에 따라 조정하면 된다.
이 경우 자동으로 wordpress라는 폴더가 만들어지고 이 아래에폴더 및 파일들이 만들어지므로 root에 설치하고 싶은 경우는 조금 느리드라도 ftp로 바로 올리는 것도 한 방법이다.
아니면 명령을 통해 파일 및 폴더를 복사하는 것도 한 방법이다.
보사 명령은
cp -r 원본폴더/ 목적지폴더/
cp -r /home/happist/wordpress /home/happist # wordpress의 파일을 위 폴더로 복사
rm -rf /home/happist/wordpress # wordpress 폴더 삭제
2.3. 워드프레스 설치
워드프레스 설치파일을 /home/사용자계정/www에 올려놓았다면 인터넷상에서 사이트 주소를 치면 바로 워드프레스 설치화면으로 들어간다.
여기까지왔다면 거의 성공한 것이나 마찬가지이다.
여기서부터는 그 유명한 5분 설치가 가능하다.
기존에 준비했던 정보들을 입력하면서 진행하면 된다.
워드프레스에 오신 것을 환영합니다.
처음으로 나오는 화면
데이타베이스 연결 설정
위 장면에서 let’s go를 누르면 아래 화면이 나온다.
여기에서 데이타베이스 연결을 위한 세팅을 한다.
- db name
- db user
- 비밀번호
- 데이타베이스 호스트 대개 그냥 localhost를 사용한다.
- 데이타베이스 접두어, wp를 대부분 사용하는 듯
데이타베이스 설치과정 완료
데이타베이스 세팅이 완료되면 아래와 같이 설치과정을 마쳤다는 메세지가 나온다.
정말로 간단하게 설치가 끝난 것이다.
워드프레스 5분 설치과정에 오신 것을 환영합니다.
위에서 데이타베이스 설정이 끝나면 바로 본격적인 워드프레스 설치과정이 시작된다.
이 단계가 너무 쉽고 간단하기때문에 워드프레스에서는 5분 워드프레스 설치 과정이라고 홍보하고 있다.
여기에서는 관리자가 필요한 항목들을 입력하고 춰드프레스 설치하기를 누른다.
- 사이트제목
- 사용자명
- 비밀번호
- 이메일주소
워드프레스 설치 완료
그러면 몇분 걸리지 않아 워드프레스가 설치되고 데시보드 화면이 나타난다.
이제부터는 정상적으로 워드프레스로 사이트를 운영하면 된다.
3. 가끔 나오는 에러들
3.1. FTP 증명서를 입력하세요.
워드프레스 설치 후 플러그인을 지운다든지 뭐가 영향을 미치는 행동을 할 시 아래와 같은 메세지가 나오면서 진행이 안되는 경우가 있다.
요청한 작업을 수행하려면, 워드프레스는 웹 서버에 접속해야 합니다. 계속 진행하기 위해 FTP 증명서를 입력하세요. 증명서가 기억나지 않는다면 웹 호스트에게 연락하세요.
이는 서버가 이 폴더에 대한 권한이 없기 때문이므로 nginx가 이 폴더를 소유할 수 있도록 변경하면 된다.
앞에서도 설명한 내용인데 어떤 연유로 working이 안되는 상황이니 다시 설정한다.
여기서 사용하는 명령어는 chown이며 하위 폴더까지 전부 적용하라는 옵션으로 -R을 사용한다.
아래는 /home/사용자 계정/www 및 그 콘텐츠의 그룹 소유권을 www 그룹으로 변경한다는 명령이다.
chown -R www-data:www-data /home/happist/ (사용자 계정)
chmod -R 755 /home/happist/ (사용자계정)
앞에서 비슷한 권한을 주었는데 full directory를 적어주지 않아서인지 제대로 작동하지 않아 위와 같이하니 작동 되었다..
3.2. 403 error
나름 제대로 세팅했다고 생각하고 인터넷에서 주소를 입력하면 403에러가 뜨면서 연결이 아예 안되는 경우가 있다.
이에 대한 여러 이유가 있는데 그중 하나가 index.php파일 없을 때도 뜬다고 한다.
워드프레스 파일을 올리는 과정에서 이 파일만 빠지거나 언떤이유로 삭제되어서 발생하는 경우이다.
한번은 403 에러가 떠서 몇시간을 고생했는데 다시 확인해보니 index.php이 빠져있어 허탈해 한적이 있다.
파일들이 제댈 전부 복사되었는지도 한번 체크해 보자.