NAS & ODROID/OMV 3 NAS

오드로이드 XU4 + OMV 로 자작 NAS 구축하기 - Wordpress

awesometic 2017. 8. 7. 16:01
반응형

오드로이드 NAS를 개인 블로그 호스팅 장비로 사용해봅시다. 간단한 블로그, 웹사이트, 포트폴리오 사이트 등 어느 걸로도 활용될 수 있어요. Wordpress를 사용해 간단하게 보기 좋은 사이트를 구축하실 수 있습니다.

Wordpress 설치 과정은 조금 까다로울 수 있습니다만, 잘 따라오시면 누구나 충분히 하실 수 있어요. 옛날엔 OMV의 플러그인으로 쉽게 설치하실 수 있었는데, 요새는 귀찮아졌네요.




0. Nginx, MySQL 설치

사전에 Nginx와 MySQL 플러그인이 설치되어 있어야 합니다.

오드로이드 XU4 + OMV 로 자작 NAS 구축하기 - 4. Nginx
오드로이드 XU4 + OMV 로 자작 NAS 구축하기 - 5. MySQL



1. MySQL에 워드프레스용 데이터베이스 생성

워드프레스는 데이터베이스를 굉장히 많이 활용합니다. 그래서 자신의 DBMS(MySQL 등)에 워드프레스용 데이터베이스를 만들어줘야 해요. OMV를 쓰니까, 쉽게 하실 수 있습니다.

OMV MySQL 메뉴로 갑니다.

그리고 아래에 SQL 관리 사이트를 활성화시키신 후 저장/적용 해주세요. 그럼 위에

버튼들 중에 보이기 버튼이 활성화가 될 겁니다. 이 버튼을 눌러줍니다.

이런 관리 사이트 접속 화면이 뜹니다. root 계정으로 로그인할게요.

이런 화면이 뜰텐데, 여기서 왼쪽 위 메뉴 중 데이터베이스-새로 만들기 를 클릭해줍니다.

이런 식으로 작성해주세요. 그리고 데이터베이스를 만듭니다.

만드신 후 다시 메뉴에서 도구-사용자 관리 를 클릭하시면,

이런 창이 뜹니다. 사용자 추가 버튼을 누르셔서,

이런 식으로 적어넣어 줍니다. 그리고 사용자 추가.

위의 Select a User가 살아났을 겁니다. 여기서 새로 만든 사용자를 클릭하시고, 데이터베이스 권한 탭으로 가셔서 새로 만든 워드프레스용 데이터베이스에 대한 권한을 모두 줍니다. 그리고 업데이트 사용자 버튼을 누릅니다.

워드프레스를 위한 데이터베이스 준비가 완료되었습니다.



2. Wordpress 설치

wget으로 최신 워드프레스를 받아둡시다. 지금은 4.8.1 이지만, 사이트에 접속해 최신 버전을 확인해주세요. 어차피 자체 업데이트가 가능하니 상관은 없습니다.

SSH 로 오드로이드 NAS에 접속한 뒤 아래 명령어를 입력해줍니다.

wget https://ko.wordpress.org/wordpress-4.8.1-ko_KR.zip

다운이 다 되면 압축을 풀어줍니다. /var/www 아래에 풀겠습니다.

unzip -d /var/www/ wordpress-4.8.1-ko_KR.zip
rm wordpress-4.8.1-ko_KR.zip

그리고 텍스트 에디터를 사용해 워드프레스 설정 파일을 편집해주세요. vi, nano 중 편한 걸 쓰시면 됩니다.

cd /var/www/wordpress
# vi wp-config-sample.php
nano wp-config-sample.php

파일을 열고, 아래 내용들을 찾아 수정해주세요.

...

// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define('DB_NAME', 'wordpress-db'); // 생성한 워드프레스용 데이터베이스 이름

/** MySQL database username */
define('DB_USER', 'wordpress'); // 생성한 새로운 데이터베이스 사용자 이름

/** MySQL database password */
define('DB_PASSWORD', 'wordpress); // 새로운 사용자의 비밀번호

...

/**#@+
 * Authentication Unique Keys and Salts.
 *
 * Change these to different unique phrases!
 * You can generate these using the {@link https://api.wordpress.org/secret-key/1.1/salt/ WordPress.org secret-key service}
 * You can change these at any point in time to invalidate all existing cookies. This will force all users to have to log in again.
 *
 * @since 2.6.0
 */
/* 아래 나온 내용을 모두 지운 후 링크로 가셔서 그대로 아래 내용을 대신하게끔 복붙합니다. */
define('AUTH_KEY',         'put your unique phrase here');
define('SECURE_AUTH_KEY',  'put your unique phrase here');
define('LOGGED_IN_KEY',    'put your unique phrase here');
define('NONCE_KEY',        'put your unique phrase here');
define('AUTH_SALT',        'put your unique phrase here');
define('SECURE_AUTH_SALT', 'put your unique phrase here');
define('LOGGED_IN_SALT',   'put your unique phrase here');
define('NONCE_SALT',       'put your unique phrase here');

주석의 설명을 따라주세요.

그리고 -sample.php 이 없는 이름으로 복사해줍시다.

cp wp-config-sample.php wp-config.php

마지막으로 권한 설정을 위해 새로운 파일을 하나 만들어줍니다.

touch fix-wordpress-permission.sh

텍스트 에디터로 새로 만든 파일을 열어주신 후, 아래 내용을 복사해 넣고 저장합니다.

#!/bin/bash
#
# This script configures WordPress file permissions based on recommendations
# from http://codex.wordpress.org/Hardening_WordPress#File_permissions
#
# Author: Michael Conigliaro 
#
WP_OWNER=www-data # <-- wordpress owner
WP_GROUP=www-data # <-- wordpress group
WP_ROOT=$1 # <-- wordpress root directory
WS_GROUP=www-data # <-- webserver group

# reset to safe defaults
find ${WP_ROOT} -exec chown ${WP_OWNER}:${WP_GROUP} {} \;
find ${WP_ROOT} -type d -exec chmod 755 {} \;
find ${WP_ROOT} -type f -exec chmod 644 {} \;

# allow wordpress to manage wp-config.php (but prevent world access)
chgrp ${WS_GROUP} ${WP_ROOT}/wp-config.php
chmod 660 ${WP_ROOT}/wp-config.php

# allow wordpress to manage wp-content
find ${WP_ROOT}/wp-content -exec chgrp ${WS_GROUP} {} \;
find ${WP_ROOT}/wp-content -type d -exec chmod 775 {} \;
find ${WP_ROOT}/wp-content -type f -exec chmod 664 {} \;

저장하고 빠져 나오신 후 실행 권한을 부여해 실행합니다.

chmod 755 fix-wordpress-permission.sh
./fix-wordpress-permission.sh /var/www/wordpress



3. Nginx 설정

Wordpress 사이트로 접속하기 위해 웹서버 Nginx 를 설정하셔야 합니다.

단일 파일 최대 업로드 크기를 늘리기 위해 /etc/nginx/nginx.conf 파일을 수정해줍시다. http 블럭 안에

client_max_body_size 100M;

위의 내용을 추가해주겠습니다. 클라이언트가 최대 100MB 정도의 파일을 업로드할 수 있습니다. 어차피 사진 등만 업로드하지 그리 큰 파일은 업로드를 안 하기 때문에 100MB면 충분합니다. 부족하신 분들은 늘려주세요. 최대 2048MB까진 될 겁니다.

그리고 OMV Nginx 메뉴에서 Pools(풀) 탭으로 갑니다.

추가 버튼을 누르셔서,

이런 식으로 채워주시고 저장/적용 해줍니다.

그리고 서버 탭으로 가셔서 또 추가 버튼을 누르신 뒤,

이렇게 채워주시고, 추가옵션에는

root /var/www/wordpress/;
client_max_body_size 100M;

location = /favicon.ico {
    log_not_found off;
    access_log off;
}

location = /robots.txt {
    allow all;
    log_not_found off;
    access_log off;
}

location / {
    # This is cool because no php is touched for static content.
    # include the "?$args" part so non-default permalinks doesn't break when using query string
    try_files $uri $uri/ /index.php?$args;
    client_max_body_size 100M;
}

 location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
     expires max;
     log_not_found off;
}

그리고 아직 도메인을 받지 않았다는 가정 하에 8001 번 포트로 하겠습니다. 저장/적용 해줍니다.



4. 접속 후 설정

해당 포트로 접속해봅시다.

바로 설정 페이지가 뜹니다. 적절히 넣으시고 설치하기 버튼을 누르면,

성공합니다.

로그인하면 이런 화면이 뜹니다. 

이제 워드프레스를 꾸미실 수 있어요.


* 도메인, SSL 관련 포스팅은 따로 진행됩니다.

반응형