서버/Web & Blog

우분투 + APMariaDB에 워드프레스 설치하기

날개 2013. 12. 25. 19:07

워드 프레스 설치하는것도 사실 여기저기 많이 나옵니다.


그런데 설치 하다 보니 이런저런 손댈 부분이 있어서, 정리가 좀 필요할 것 같네요.


환경은, 가상서버에 우분투리눅스와 아파치, PHP, MariaDB를 설치한 상태입니다. 


MariaDB는 캐릭터셋을 UTF-8로 설정해 놓은 상태이고요.


즉, 가상서버의 root 권한이 있으므로, 서버 설정을 마음대로 할 수 있는 실제 서버와 비슷한 상황입니다.


(가상서버 환경은 DigitalOcean.com 에서 테스트 했습니다. 저는 root 권한으로 작업하였으므로, root 권한이 아닌 일반 계정으로 우분투에 로그인 했으면, sudo 명령을 앞에 붙여줍니다.)



1. PHP 모듈 확인


# ls /etc/apache2/mods-enabled/


위 디렉터리를 확인하여 rewrite.load 가 있는지 확인합니다.


들어 있지 않다면, rewrite 모듈을 설치합니다.


설치하는 명령은 아래와 같습니다. (PHP가 설치되어 있어야 함)


# a2enmod rewrite


다시한번 /etc/apache2/mods-enabled/ 디렉터리에 rewrite.load 가 있는지 확인합니다.


워드프레스는 썸네일 이미지를 위해 GD라이브러리를 사용한다는군요.


PHP 모듈중에 GD 라이브러리가 설치되었는지 확인합니다.


확인 방법은,


# php -m


이라고 명령하면, 설치된 모듈리스트가 나오는데, 'gd'라고 있는지 확인하면 됩니다.



만약 GD 라이브러리가 설치되어 있지 않다면 설치합니다. 설치명령은 아래와 같습니다.


# apt-get install php5-gd


설치 되었으면 아파치를 재시작 합니다.


# service apache2 restart




2. DB 준비


워드프레스가 사용할 DB를 생성해 주어야 합니다. 웹호스팅과 같이 DB가 이미 설치되어 계정을 받은 경우는 할 수 없지만, 가상서버와 같이 서버를 직접 관리하는 경우, 워드프레스에서 사용할 유저 계정과 DB를 따로 만들어 주는 것이 관리나 보안상 좋을것입니다.


절차는 단순합니다.


MariaDB 접속 -> 워드프레스용 DB 만들기 -> 만든 DB 접속용 유저계정 만들기와 비밀번호 지정 -> 새로만든 유저계정에 워드프레스용 DB에 관한 권한 주기


저는, MySQL GUI 툴 중 하나인 Sequel Pro (참고 : http://www.wingsnote.com/22 )로 이 작업을 합니다만, 커맨드 상에서 작업하는 방법을 적어 둡니다. 하지만 GUI 툴을 사용하는 것이 편할 수 있습니다.


MariaDB에 접속합니다. root 권한으로 접속합니다.


# mysql -uroot -p


워드프레스가 사용할 DB를 만듭니다.


MariaDB [(none)]> CREATE DATABASE wpdb;


생성한 wpdb에 접속할 유저 계정을 만듭니다. (root 계정으로 접속도 가능하지만, 보안상 전용 계정을 만들것을 추천합니다.)


MariaDB [(none)]> CREATE USER wpuser@localhost;      wpuser@localhost는 마음대로 정하면 됩니다.

.

.

.

MariaDB [(none)]> SET PASSWORD FOR wpuser@localhost=PASSWORD("내비밀번호");


이제 새로 만든 wpuser가 새로 만든 DB (여기서는 wpdb라고 가정)를 사용할 수 있도록 권한을 줍니다. (다시 말하자면 wpdb에 대한 권한만 주기 때문에 다른 DB를 사용하지 못합니다.)


MariaDB [(none)]> GRANT ALL PRIVILEGES ON wpdb.* TO wpuser@localhost IDENTIFIED BY '내비밀번호';

.

.

.

MariaDB [(none)]> FLUSH PRIVILEGES;            권한이 적용되도록 Flush 함.


다 되었으면 exit 명령으로 MariaDB를 빠져 나옵니다.



3. 워드프레스 다운로드 및 복사, 권한주기


워드프레스의 공식 사이트는 http://www.wordpress.org 입니다. (http://www.wordpress.com과 혼동하지 않습니다. www.wordpress.com은 블로그 서비스입니다.)


사이트에 접속해서 우측 상단의 [Download WordPress]를 클릭한 다음, Download .tar.gz를 클릭합니다. 압축파일 그대로 서버에 올려서 직접 압축을 풀것이기 때문에 .zip이 아니라 .tar.gz이 편합니다. (서버로 파일을 전송하는 것도 압축파일 하나를 그대로 올리는 것이 편합니다.)



( 원본출처 : http://www.wordpress.org )


(위에서 빨간색 표시를 했는데, .tar.gz 라고 되어 있는것을 다운받습니다.)


이 글을 쓰는 시점에, 저는 다운로드를 받으니 wordpress-3.8.tar.gz 라는 파일이 다운로드 되었습니다. (파일이름은 다를 수 있습니디만, 확장자가 .tar.gz 인것을 확인하세요)


이 파일을 SFTP 등을 통해서 서버의 적당한 위치로 전송합니다. (서버에 파일을 전송하는 방법은 각 웹서비스 업체 도움말 등을 확인하세요. 저는 ssh로 접속을 지원하는 가상서버를 사용하기 때문에 sftp 프로그램을 사용하여 전송했습니다.)


여기서는 서버의 /var 디렉터리에 위 파일을 전송했다고 가정합니다. 또한 /var/www 디렉터리가 웹 홈 디렉터리라고 가정합니다. /var/www 디렉터리를 홈디렉터리로 하는 웹 도메인은 www.minthandsgames.com 이라고 가정합니다.


/var 디렉터리로 커서를 옮깁니다.


# cd /var


wordpress-3.8.tar.gz 파일을 압축 해제 합니다.


# tar -xvzf wordpress-3.9.tar.gz


압축해제 하면 /var/wordpress 라는 디렉터리가 생길 것입니다. (wordpress는 다른 이름일 수도 있습니다.) 이 디렉터리에 워드프레스의 모든 파일이 들어 있게 됩니다.


워드프레스 디렉터리를 /var/www 디렉터리가 있다면 (/var/www 디렉터리를 사용하지 않고 있다고 가정함.) 삭제 합니다.


# rm -rf www                        (주의 깊게 사용해야 함)


압축해제된 워드프레스 폴더를 웹홈디렉터리로 이름을 바꾸어 줍니다.


# mv ./wordpress ./www


이제 www 디렉터리의 권한을 조정해 주어야 합니다.


이 부분 때문에 설치가 잘 안되는 경우가 많습니다. (설치시 wp-config.php 파일을 만들 권한이 없어 에러가 남)


# chown -R www-data:www-data /var/www

# chmod -R 755 /var/www


이제 웹브라우저 상에서 설치를 진행하면 됩니다.


웹브라우저에서 워드프레스가 있는 주소를 입력합니다.




wp-config.php 없는것 같다네요. 만들지 않았으니 당연히 없죠.


[Create a Configuration File] 을 클릭합니다.



설치 전에 데이터베이스 정보를 알고 있을 필요가 있다는 얘기입니다. 이 글의 앞부분에서 DB관련 작업을 했으므로 [Let's go!]를 클릭합니다.


  • Database Name : 워드프레스용으로 만든 DB 이름을 적어줍니다.
  • User Name : DB 유저 계정 이름을 적어줍니다.
  • Password : DB 유저 비밀번호를 적어줍니다.
  • Database Host : DB가 한 서버에 같이 있으면 그대로 localhost로 둡니다. 
  • Table Prefix : 워드프레스용으로 DB를 따로 만들지 못하고, 한 DB에서 다른 프로그램들과 공유해야 할 경우 (보통 웹호스팅이 이렇죠) 워드프레스에서 테이블을 만들때 테이블명 앞에 붙일 Prefix를 정하는 것입니다. 구분할 수 있는 Prefix를 정해 줍니다.

모두 입력하고 [Submit]을 클릭합니다.


DB 정보를 제대로 입력했으면, 위와 같은 화면이 나옵니다. 말하자면 워드프레스가 DB와 통신할 수 있다는 얘기입니다. [Run the Install]을 클릭합니다.



설치 정보를 입력합니다. 위 설명문 읽어보면, 언제든지 바꿀 수 있는 정보니 걱정하지 말라는군요.

각 부분을 모두 입력하고 [Install WordPress]를 클릭합니다.


단, 여기서 Username은 admin 계정입니다. 가능하면 유추하기 어려운 계정이름을 사용하는 것이 안전할 것입니다. (요즘 워드프레스든, phpbb2든 스패머 공격이 난리도 아닌것 같습니다.)


Your E-mail 도 실제 이메일을 지정해 주시되, 나중에 유저 계정을 추가할 것이므로 관리자용으로 사용할 이메일을 지정해 줍니다.



설치가 잘 끝났다고 합니다. [Log In]을 클릭합니다.


방금 전에 생성한 관리자의 계정 아이디와 비밀번호를 입력하고 로그인 합니다.



로그인 하면 대시보드가 나옵니다. 왼쪽 메뉴에서 [Users]를 선택하, 상단의 [Add New] 버튼을 클릭하여 새로운 유저를 생성하는 화면으로 들어갑니다.


새 유저를 만드는 이유는, 애써 관리자 아이디를 유추하기 어려운 아이디를 사용하는데, 관리자 아이디로 글을 쓰게 되면 그 아이디가 그대로 노출 되기 때문입니다.


새로 글을 쓸 유저 계정을 생성해서, 글을 쓸 때는 글 쓰기용 유저 계정으로 로그인하여 글을 포스팅 하는 것이 좋을 것 같습니다.



글쓰기용으로 사용할 새로운 계정을 만듭니다. E-mail 항목이 관리자와 겹치지 않아야 합니다.


여기서 Role 을 Author, 즉 저자로 선택을 해주어 글을 쓸 수 있게 만듭니다.


[Add New User]를 클릭하여 방금 설정한 대로 새로운 유저를 추가해 줍니다.


추가 한 후에 다시 워드프레스가 설치된 웹주소를 입력하여 들어가 봅니다.



보이는것과 같이 샘플 포스트가 하나 있습니다. 제목을 클릭해 봅니다.



샘플 포스트 본문페이지로 들어오게 됩니다. 위에 빨간 네모 표시해 놓은 부분에 관리자 계정이 노출이 됩니다. (모자이크 처리했습니다.)


포스트 자체도 더 이상 쓸모 없는 내용이며, 작성자 부분에 관리자 아이디가 노출이 되므로 이 포스트를 삭제 하겠습니다. 오른쪽에 [Edit]를 클릭해 줍니다.



해당 포스트 편집화면으로 들어옵니다. [Move To Trash]버튼을 클릭해서 포스트를 지워 버립니다.


이후에는 글쓰기용 계정 만든 아이디로 로그인하여 글을 쓰면 됩니다.


테마 설정법이나 사용법은 인터넷에 널리 퍼져있으므로 찾아 보도록 하시고, 본 포스팅은 여기서 마칩니다.




끝.