NAS & ODROID/OMV 4 NAS

OMV 4 자작 NAS 구축 가이드 - Wordpress

awesometic 2018. 10. 31. 14:23
반응형

- 2018. 10.31 작성
- 무단으로 퍼가지 말아주세요. 퍼가셔도 링크로 퍼가지고, 인용할 경우 출처를 꼭 밝혀주세요.
- 막히는 부분은 댓글 달아주세요. :)
- 제 블로그에는 구글 광고가 삽입되어 있습니다. 괜찮으시다면 광고 한 번씩 눌러주세요.
- 저장할 때 노란 적용 알림이 뜰 수 있습니다. 잊지 말고 적용까지 해주세요.

Wordpress

Wordpress는 개인 설치형 블로그/쇼핑몰 1인자입니다. 요샌 워드프레스를 기반한 호스팅 업체도 많구요. 보기 좋은 테마도 많고 성능도 나쁘지 않으면서 기능도 많습니다. 부족한 기능은 플러그인으로 채울 수 있구요.


설치 - 데이터베이스 설정

MySQL에 필요한 데이터베이스를 생성해놔야 합니다.

OMV에 SSH로 접속을 해야 합니다. SSH 접속을 위해 세 가지 사항을 먼저 확인해볼게요.

OMV 사용자 메뉴로 가서 자신의 사용자 계정이 ssh, sudo 그룹에 속해있는 지 확인합니다. 안 되어 있다면 링크를 참고해주세요.

OMV SSH 메뉴로 가서 활성화가 되어 있는 지 확인합니다. 안 되어 있다면 링크를 참고해주세요.

OMV MySQL 메뉴가 있는 지 확인합니다. 없다면 링크를 참고해 설치해주세요.

다 됐다면 PuTTY, XShell, Terminal 등 SSH 접속 프로그램으로 OMV에 접속합니다.

su 명령어를 통해 root 로 진행하셔도 됩니다.

su -

MySQL로 접속합니다.

sudo mysql -u root -p
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 36
Server version: 10.1.26-MariaDB-0+deb9u1 Debian 9.1

Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> 

아래 명령어를 따라 입력합니다.

새로운 사용자를 생성합니다. 전 이름은 awesometic, localhost(기기 자체)에서만 접근 가능하며 비밀번호는 odroid로 하겠습니다.

create user 'awesometic'@'localhost' identified by 'odroid';

Wordpress를 위한 데이터베이스를 생성합니다.

create database `wordpress-db`;

새로 만든 계정이 그 데이터베이스에 접근할 수 있도록 접근 권한을 줍니다. 데이터베이스에 로그인할 때 비밀번호로 odroid 라고 하겠습니다.

grant all privileges on `wordpress-db`.* to 'awesometic'@'localhost' identified by 'odroid';

새로 설정한 권한을 적용합니다.

flush privileges;

그리고 Ctrl+C 단축키 또는 exit 를 입력해 종료합니다.


설치 - Wordpress

최신 Wordpress를 다운로드받고 압축을 /var/www 아래에 풀어줍니다.

wget https://wordpress.org/latest.zip
sudo unzip -d /var/www latest.zip

Wordpress 기본 설정을 위해 wp-config-sample.php 파일을 복사 후 수정합니다.

cd /var/www/wordpress
sudo cp wp-config-sample.php wp-config.php
sudo vi wp-config.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', 'awesometic');

/** MySQL database password */
define('DB_PASSWORD', 'odroid');

/** MySQL hostname */
define('DB_HOST', 'localhost');

/** Database Charset to use in creating database tables. */
define('DB_CHARSET', 'utf8');

/** The Database Collate type. Don't change this if in doubt. */
define('DB_COLLATE', '');

그리고 고유값과 Salts를 발급받아 입력합니다. Wordpress에선 이 고유 인증 키를 통해 각각의 사이트가 구별됩니다.

https://api.wordpress.org/secret-key/1.1/salt/ 링크로 들어가 복사한 후 아래 내용에 덮어씁니다.

define('AUTH_KEY',         '...');
define('SECURE_AUTH_KEY',  '...');
define('LOGGED_IN_KEY',    '...');
define('NONCE_KEY',        '...');
define('AUTH_SALT',        '...');
define('SECURE_AUTH_SALT', '...');
define('LOGGED_IN_SALT',   '...');
define('NONCE_SALT',       '...');

저장합니다.

Wordpress 파일의 적절한 권한 설정을 위해 새로운 스크립트 파일을 작성합니다.

cd ~
vi 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 {} \;

파일에 적절한 권한을 준 후, Wordpress 설치 경로를 인수로 넘기며 실행합니다.

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

마지막으로 아래 명령어를 입력합니다. Wordpress는 자신의 접속 주소를 알고 있어야 하기 때문에 wp-config.php 파일 마지막에 명시해두는 작업입니다.

편의를 위해 변수를 사용하겠습니다. WP_URL 변수에 자신의 IP와 접속 포트를 http://IP:포트 형식으로 넣어주세요. 전 IP는 192.168.30.3이고 접속할 포트는 8001번이므로 192.168.30.3:8001을 넣겠습니다.

WP_URL='http://192.168.30.3:8001'

그리고 아래 명령어를 입력합니다.

echo -e "\ndefine('WP_HOME', '"$WP_URL"');\ndefine('WP_SITEURL', '"$WP_URL"');" | sudo tee -a /var/www/wordpress/wp-config.php

이제 Shell에서의 Wordpress 설치는 완료되었습니다. SSH를 빠져나온 후 OMV 관리자 사이트로 이동합니다.


설치 - OMV Nginx 설정

OMV - Nginx (websites) 메뉴로 이동한 후 탭에서 추가 버튼을 누릅니다.

그리고 아래 스크린샷을 참고해 각 옵션을 수정해주세요.

저장 후 적용합니다.

서버 탭으로 가서 추가 버튼을 누릅니다. 역시 아래 스크린샷을 참고해 수정해주세요. 8001번 포트로 접속할 것입니다.

마지막에 추가 선택 사항으로는 아래 내용을 붙여넣습니다. /var/www/wordpress 경로에 Wordpress가 설치되어 있어야 합니다.

root /var/www/wordpress/;
client_max_body_size 1024M;
 
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;
}
 
 location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
     expires max;
     log_not_found off;
}

저장 후 적용합니다.


설치 - Wordpress 최초 설정

설치가 거의 완료되었습니다. 8001번 포트로 접속할 것이므로, 자신의 IP 주소 뒤에 추가해 접속합니다. 예를 들어, 192.168.0.2 일 경우 http://192.168.0.2:8001 로 접속하면 됩니다.

접속 후 언어, 관리자 계정, 블로그 이름 등을 설정해줍니다.

동작 테스트 겸, Wordpress를 쇼핑몰 사이트로 바꿔주는 Woocommerce 플러그인을 설치해보겠습니다. 간단히 관리자 패널에서 설치할 수 있습니다.

플러그인, 테마 등 모두 잘 작동 하는 것을 볼 수 있습니다 :)


참고


반응형