달력

42024  이전 다음

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

'오드로이드'에 해당되는 글 44건

  1. 2021.03.16 OMV 5 NAS - OMV 설치
  2. 2021.03.16 OMV 5 NAS - Armbian 설치 (ARM SBC)
  3. 2020.04.21 TVHeadend 최신버전 빌드 작업 설치[펌]
  4. 2019.03.14 tvheadend 우분투 버전 설치
  5. 2018.06.11 samba 설정
  6. 2018.03.23 리눅스 깨진 파일명 및 디렉토리 복구&삭제
  7. 2018.03.23 Ubuntu Minimal (Server) 에 VNC 원격 접속하기(펌)
  8. 2018.03.20 OMV 설치후 파티션 용량 확장
  9. 2018.03.20 오드로이드 XU4 + OMV 로 NAS 구축 순서 예시 - README !(펌) 2
  10. 2018.03.20 오드로이드 XU4 + OMV 로 자작 NAS 구축하기 - Wordpress + 도메인/SSL(펌)
  11. 2018.03.20 오드로이드 XU4 + OMV 로 자작 NAS 구축하기 - Wordpress(펌)
  12. 2018.03.20 오드로이드 XU4 + OMV 로 자작 NAS 구축하기 - SMTP (이메일 알림)(펌)
  13. 2018.03.20 오드로이드 XU4 + OMV 로 자작 NAS 구축하기 - Rsync(펌)
  14. 2018.03.20 오드로이드 XU4 + OMV 로 자작 NAS 구축하기 - WebDAV(펌)
  15. 2018.03.20 오드로이드 XU4 + OMV 로 자작 NAS 구축하기 - SSL 적용하기(펌)
  16. 2018.03.20 오드로이드 XU4 + OMV 로 자작 NAS 구축하기 - 도메인 적용하기(펌)
  17. 2018.02.27 ODROID-XU4 자동 로그인(펌)
  18. 2018.02.14 오드로이드 XU4 사용시 설치 목록 내용
  19. 2018.02.06 Tvheadend 자동 인코딩(펌)
  20. 2018.02.02 오드로이드 XU4 외장 하드 연결
  21. 2018.02.02 오드로이드 XU4 웹서버 설치(apache2+mysql+php5.6)
  22. 2018.02.02 오드로이드 XU4 TvHeadEnd 설치
  23. 2018.02.02 DLNA 서비스를 이용해 거실 TV 활용하기 - Serviio(펌)
  24. 2018.02.02 오드로이드 XU4 를 개인 클라우드 서버로 - 10. 무료 SSL(펌)
  25. 2018.02.02 오드로이드 XU4 를 개인 클라우드 서버로 - 9. 무료 도메인
  26. 2018.02.02 오드로이드 XU4 를 개인 클라우드 서버로 - 8. Wordpress
  27. 2018.02.02 오드로이드 XU4 를 개인 클라우드 서버로 - 7. h5ai
  28. 2018.02.02 오드로이드 XU4 를 개인 클라우드 서버로 - 6. Nginx, PHP, MariaDB
  29. 2018.02.02 오드로이드 XU4 를 개인 클라우드 서버로 - 5. Plex(펌)
  30. 2018.02.02 오드로이드 XU4 를 개인 클라우드 서버로 - 4. Samba(펌)
  • 환경: Odroid SBC + various HDDs
  • 최초 작성: 2020-09-01
  • 마지막 업데이트: 2020-09-10
  • 글을 퍼가실 땐 꼭 출처를 남겨주세요. :)

OMV 5 설치

Odroid에 Armbian이 준비되었으면, 이제 OMV 5를 설치할 수 있습니다.

두 가지 방법이 있습니다. 두 방법 모두 ARM SBC, x86 PC 상관 없이 Debian 기반이라면 동일하게 사용할 수 있습니다.

OMV 설치 스크립트를 이용한 설치 방법

먼저, Armbian 초기 설정 시 설정했던 root 비밀번호를 이용해 root로 Odroid에 접속합니다.

Armbian OS 를 사용한 SBC를 위한 공식 가이드가 준비되어 있습니다.

ARM SBC 용 OMV 설치 공식 가이드: github.com/OpenMediaVault-Plugin-Developers/docs/blob/master/Adden-A-Installing_OMV5_on_Armbian.pdf

 

OpenMediaVault-Plugin-Developers/docs

Repo for documents. Contribute to OpenMediaVault-Plugin-Developers/docs development by creating an account on GitHub.

github.com

Armbian 의 초기 설정이 완료되었다면, 간단히 다음 명령어를 입력해 OMV, OMV-Extras (추가 플러그인을 위한), Flashmemory (SD카드/eMMC 관련)까지 설치할 수 있습니다.

wget -O - https://github.com/OpenMediaVault-Plugin-Developers/installScript/raw/master/install | sudo bash

명령어 입력 후 조금 기다리시면 자동으로 설치가 완료됩니다. 연결된 PuTTY나 터미널 프로그램을 종료하지 말고 최대 30분까지 기다리셔야 합니다.

설치가 완료되면 자동으로 재부팅 됩니다

재부팅을 해주는 대신 재부팅을 하라는 메세지가 나올 수도 있습니다. 그 땐 reboot 을 입력해 재부팅하시면 됩니다.

패키지 설치를 통한 방법

OMV에서 Debian 위에 OMV 패키지를 설치하는 방법에 대한 공식 가이드가 제공되고 있으니 이대로 따라가시면 됩니다.

OMV 패키지 설치 공식 가이드: openmediavault.readthedocs.io/en/5.x/installation/on_debian.html

 

Installation on Debian — openmediavault 5.x.y documentation

© Copyright 2018 and onwards by the authors Revision ac56cc2c.

openmediavault.readthedocs.io

여기서 필요한 부분만 가져와보겠습니다. 아래 블럭 별로 복사/북여넣기해 OMV 설치를 진행합니다.

공식 가이드에선 3개의 블럭으로 나뉘어 있습니다. 이 코드들을 한 번에 복사/붙여넣기를 하면 꼬일 수 있으므로, 이 가이드에선 조금 더 나눴습니다. 번거롭더라도 가능한 한 아래 블럭별로 복사/붙여넣기 하시길 추천드립니다.

OMV Keyring 설치

apt-get install --yes gnupg

wget -O "/etc/apt/trusted.gpg.d/openmediavault-archive-keyring.asc" https://packages.openmediavault.org/public/archive.key

apt-key add "/etc/apt/trusted.gpg.d/openmediavault-archive-keyring.asc"

패키지 저장소 추가

cat <<EOF >> /etc/apt/sources.list.d/openmediavault.list
deb https://packages.openmediavault.org/public usul main
# deb https://downloads.sourceforge.net/project/openmediavault/packages usul main
## Uncomment the following line to add software from the proposed repository.
# deb https://packages.openmediavault.org/public usul-proposed main
# deb https://downloads.sourceforge.net/project/openmediavault/packages usul-proposed main
## This software is not part of OpenMediaVault, but is offered by third-party
## developers as a service to OpenMediaVault users.
# deb https://packages.openmediavault.org/public usul partner
# deb https://downloads.sourceforge.net/project/openmediavault/packages usul partner
EOF

OMV 패키지 설치

export LANG=C.UTF-8
export DEBIAN_FRONTEND=noninteractive
export APT_LISTCHANGES_FRONTEND=none

wget -O "/etc/apt/trusted.gpg.d/openmediavault-archive-keyring.asc" https://packages.openmediavault.org/public/archive.key

apt-key add "/etc/apt/trusted.gpg.d/openmediavault-archive-keyring.asc"

apt-get update

apt-get --yes --auto-remove --show-upgraded \
    --allow-downgrades --allow-change-held-packages \
    --no-install-recommends \
    --option Dpkg::Options::="--force-confdef" \
    --option DPkg::Options::="--force-confold" \
    install openmediavault-keyring openmediavault

OMV 초기화

apt-get install 명령어까지 완료하셨다면 아래 명령어로 OMV 를 초기화 시켜줍니다.

omv-confdbadm populate

마지막으로 재부팅해 줍니다.

reboot

웹으로 OMV 접속

재부팅 후, 정상적으로 OMV가 설치되었다면 이제 웹으로 접속할 수 있습니다.

웹 브라우저를 열어 Odroid 보드의 IP를 주소창에 입력해 접속합니다.

그리고 기본 로그인 정보를 사용해 로그인합니다.

  • ID: admin
  • PW: openmediavault

로그인이 완료되면 OMV 5 제어판이 나타납니다.

다음 챕터부터는 OMV 기본 설정과 Samba 등 여러가지 서비스 설정을 진행하도록 하겠습니다.

 

출처 : awesometic.tistory.com/243

'오드로이드 > OMV5(펌)' 카테고리의 다른 글

OMV 5 NAS - Armbian 설치 (ARM SBC)  (0) 2021.03.16
Posted by 타카스 류지
|
  • 환경: Odroid SBC + various HDDs
  • 최초 작성: 2020-08-31
  • 마지막 업데이트: 2020-09-01
  • 글을 퍼가실 땐 꼭 출처를 남겨주세요. :)

OMV 5

Odroid나 Raspberry Pi SBC에 OMV를 설치할 때, OMV 5 부터는 OMV가 사전 설치된 이미지 파일이 제공되는 게 아니라, 사용자가 직접 데비안 리눅스에서 OMV를 설치하게끔 바뀌었습니다.

x86-64 PC에 설치하시는 분들은 아래 링크에서 최신 이미지 파일을 받아 사용해주시면 됩니다.

OMV 다운로드 링크: https://sourceforge.net/projects/openmediavault/files/

이 가이드에선 x86 PC 에 설치하는 방법은 따로 설명드리지 않습니다.

Armbian 다운로드

Armbian은 ARM 기반의 SBC를 위한 OS입니다. 데비안 기반이며, 업데이트가 굉장히 활발합니다. 게다가 거의 모든 유명 SBC를 지원합니다.

ARM SBC용 OMV 이미지는 원래 Armbian을 기반으로 제작되어 왔었습니다. 지금은 OMV가 사전 설치된 이미지는 제공되지 않지만, Armbian을 설치한 후 OMV를 설치하시면 됩니다.

현재 모든 Odroid 제품군을 위한 Armbian OS가 준비되어 있습니다. 링크를 참고하세요.

Armbian이 없더라도, OMV 5 기준으로 Debian Buster 가 있으면 됩니다. 둘 다 없으면 설치가 어렵습니다.

암비안 다운로드 링크: www.armbian.com/download/?tx_maker=hardkernel

 

Download – Armbian

Armbian Cookies Policy Our Website uses cookies to improve your experience. Please visit our Download page for more information about cookies and how we use them. Close

www.armbian.com

사용하시는 Odroid 제품 페이지에 들어가서, Debian Buster 이미지를 받으시면 됩니다. 화면을 끝까지 내리신 후, 아래 스크린샷 화면에서 Buster minimal 또는 Buster server 를 다운받으세요.

SD카드 / eMMC 준비

파일을 다운받으면 이 이미지 파일을 SD카드나 eMMC에 구워서 사용해야 합니다.

Etcher 라는 툴을 사용하여 구울 수 있습니다.

Etcher 다운로드 링크: www.balena.io/etcher/

 

balena - The complete IoT fleet management platform

Infrastructure and tools to develop, deploy, and manage connected devices at scale. Your first ten devices are always free.

www.balena.io

설치 후 실행하여, 다운받았던 이미지 파일과 구울 SD카드를 선택해 굽습니다.

Odroid 보드 부팅 및 IP 찾기

Odroid 보드에 준비된 SD카드 (또는 eMMC) 와 이더넷 케이블을 연결한 후 전원을 연결해 부팅합니다.

Odroid는 보드 위에 빨간색과 파란색 LED가 있는데, 빨간색 LED가 켜져 있고 파란색 LED가 깜빡이면 무사히 부팅이 됐다고 보시면 됩니다.

이제 이 보드의 IP를 알아야 하는데, IP를 아는 방법은 크게 두 가지가 있습니다.

  1. 공유기 제어판에서 연결된 호스트들 확인
  2. IP 스캐너 프로그램을 통해 현재 같은 네트워크 대역의 살아있는 호스트들 확인

네트워크 구성에 익숙하신 분들은 편한 방법으로 Odroid의 IP를 찾아내시면 됩니다. 여기선 IP 스캐너 프로그램을 사용하는 방법을 설명하겠습니다.

Angry IP Scanner 라는 프로그램을 다운받아 설치합니다.

Angry IP Scanner 다운로드 링크: angryip.org/download/

 

Angry IP Scanner - Download for Windows, Mac or Linux

Download version 3.7.2 below or browse more releases or even older releases Running Make sure you have Java 8 or later installed. Newest OpenJDK (e.g. 14) is recommended for Dark Mode support. The zip file contains Mac application bundle: just save it and

angryip.org

자바 런타임 (JDK/JRE) 가 설치되어 있어야 합니다. 아래 링크에서 다운로드받아 설치하세요.
AdoptOpenJDK 다운로드 링크: https://adoptopenjdk.net/

설치 후 실행하면 아래와 같은 화면이 나타납니다.

먼저 Odroid 를 특정짓기 쉽도록 설정을 해줘야 합니다.

Angry IP Scanner는 열려있는 포트들도 검사할 수 있는데, Odroid에 OS를 설치했다면 22번 포트 (SSH)가 열려 있을 것입니다. 22번 포트를 감지할 수 있도록 설정해줍니다.

SSH를 통해 Odroid 에 접속해 시스템을 관리할 수 있습니다. OMV를 설치할 때도, SSH를 통해 접속해야만 합니다. 원격 접속으로 시스템을 관리할 수 있으므로 대부분의 SBC 전용 OS 에서는 SSH가 기본적으로 활성되어 있습니다.

Tools - Preference 메뉴로 들어가 Ports 탭으로 갑니다. 그리고 아래 스크린샷처럼 Port selection 22번을 추가합니다.

OK 버튼을 누른 후 빠져나옵니다.

기본값으로 IP Range가 잘 설정되어 있을 것입니다. 만약 아니라면, 보통 "192.168.0.1 ~ 192.168.0.255" 로 설정하시면 됩니다.

본 가이드의 경우, 현재 네트워크 환경은 192.168.11.1 ~ 192.168.11.255 입니다. 특별히 설정된 값이므로 보통 기본값으로 설정되는 192.168.0.1 대역을 사용하시면 됩니다.

Start 버튼을 누르면 몇 초 정도 지난 후 완료 창이 나타납니다.

위 스크린샷의 경우, 5개의 살아있는 호스트 (Hosts alive: 5) 를 찾았고, 4개의 지정된 포트가 열려있는 호스트 (With open ports: 4)를 찾았다고 합니다.

스크롤을 내려 22번 포트가 있는 호스트를 찾아냅니다.

제 경우 192.168.11.48 호스트가 22번 포트가 열려 있어 방금 설정된 Odroid 보드일 확률이 높습니다.

특정짓기 어려운 상황이라면, 가장 가능성이 높아 보이는 IP로 일단 가이드를 따라 진행하세요. 터미널을 통해 접속했을 때 Odroid가 맞는 지 확인 할 수 있습니다.

SSH로 Odroid 접속

IP를 찾았으니 SSH 접속 프로그램으로 Odroid에 접속해야 합니다. 진행하기에 앞서, Armbian의 기본 계정 정보는 이렇습니다.

  • ID: root
  • PW: 1234

macOS or Linux

macOS나 Linux를 사용하고 있다면 이미 설치되어 있는 Terminal 프로그램을 사용하면 됩니다.

위 계정 정보로 로그인합니다.

ssh root@192.168.11.48

Windows

만약 Windows 를 사용하고 있다면, PuTTY 라는 프로그램을 설치해 실행합니다.

PuTTY 다운로드 링크: www.chiark.greenend.org.uk/~sgtatham/putty/latest.html

 

Download PuTTY: latest release (0.74)

This page contains download links for the latest released version of PuTTY. Currently this is 0.74, released on 2020-06-27. When new releases come out, this page will update to contain the latest, so this is a good page to bookmark or link to. Alternativel

www.chiark.greenend.org.uk

실행하면 아래와 같은 창이 나타납니다.

Host Name (or IP address) 부분에 찾아냈던 IP 주소를 입력합니다.

Open 버튼을 누르면 PuTTY Security Alert 창이 나타나는데, Yes를 눌러 넘어가시면 됩니다.

정상적으로 연결되면 아래와 같은 로그인 화면이 나옵니다.

위의 계정 정보로 로그인을 진행합니다.

Armbian 초기 설정

접속하면 바로 새로운 root 계정에 대한 비밀번호를 설정하라고 알려줍니다. 인터넷에 연결된 서버로 사용할 것이므로 어려운 비밀번호로 설정해줍니다.

그리고 Time zone 설정, 새로운 사용자 계정 설정까지 마무리해 줍니다.

모든 작업이 완료되면 Shell이 하나 떨어집니다. 이제 OMV 5를 설치할 준비가 되었습니다.

 

 

출처 : awesometic.tistory.com/242

'오드로이드 > OMV5(펌)' 카테고리의 다른 글

OMV 5 NAS - OMV 설치  (0) 2021.03.16
Posted by 타카스 류지
|

오드로이드-HC2(8TB)

OMV4버전 사용중

 

아래 11q.kr 에서 참조한 내용으로 간략하게 설치한 명령어 정리

 

~$ apt-get install build-essential git

~$ cd tvheadend/

~$ nano configure

 

"ffmpeg_static:yes"  -> "ffmpeg_static:no"  변경 저장

 

~$ git add .

 

~$ ./Autobuild.sh -t debian

 

의존성 에러시

~$ apt-get install debhelper pkg-config gettext libavahi-client-dev libssl-dev zlib1g-dev liburiparser-dev python python-requests cmake libpcre3-dev libdvbcsa-dev

설치

 

~$ ./Autobuild.sh -t debian

 

빌드 완료 상단 폴더에 컴파일 된 .deb 파일 생성됨

 

설치

~$ dpkg -i tvheadend_4.3-1852~gdea96e441-dirty_armhf.deb

 

시작

~$ service tvheadend start

 

http://192.168.0.100:9981

9981 포트로 접속 끝

 

------------------------       본문 내용         ----------------------------

 

tvheadend_4.3-1852~gdea96e441-dirty_armhf.deb

gt-mini-a 에서 작업 성공 파일 입니다

 

최신버전으로 빌드 컴파일 버전입니다

wget  링크주소 붙이세요
dpkg -i tvheadend_4.3-1804~gebb096804-dirty_armhf.deb 
apt install libdvbcsa1 
apt --fix-broken install 
service tvheadend restart

===================

누구나 빌드할 수 있는 TVHeadend 작업 진행

https://cafe.naver.com/mk802/31817

참조 작업 진행 합니다

기본 설치

update

aolupdate

apt install build-essential git

이제   tvheadend 사이트 접속 파일을 다운로드 합니다


TVHeadend 소스 받기

tvheadend 사이트 접속

https://github.com/tvheadend/tvheadend

에 접속 경로 복사

https://github.com/tvheadend/tvheadend.git

최종 파일은 

 apt install git

git clone https://github.com/tvheadend/tvheadend.git

 

빌드 설정

특정 빌드를 지정하고 싶으시면 웹사이트에서 커밋을 보고  지정

특정 버전 빌드시 Tags 를 기반이나 혹은 커밋 기반으로 선택

 

4.28 버전

f8caa16b829b9c5a662b3f6d56176392c4a93b07

경로 복사

파일이 받아 지면 

cd tvheadend/

경로 진입 가능

 

빌드버전  설정작업

최신버전은 

git checkout master


4.2.8버전은

f8caa16b829b9c5a662b3f6d56176392c4a93b07

경로복사

git checkout f8caa16b829b9c5a662b3f6d56176392c4a93b07


=======================

최신버전으로 빌드

git checkout master

기본 설정

TVH 에 기능을 넣고 빼는 작업

nano configure

잠자님 설정부분 비교결과 최종분 그대로 동일

 

 

 

.... 
"ffmpeg_static:no" 
...
수정

기본 옵션으로 진행

git checkout master

git add .

./Autobuild.sh -t debian

 

root@AOL-Debian:~/tvheadend# nano configure
root@AOL-Debian:~/tvheadend# ./Autobuild.sh -t debian
On branch master
Your branch is up-to-date with 'origin/master'.
nothing to commit, working tree clean
dpkg-buildpackage: info: source package tvheadend
dpkg-buildpackage: info: source version 4.3-1804~gebb096804
dpkg-buildpackage: info: source distribution unstable
dpkg-buildpackage: info: source changed by Andreas Öman <andreas@tvheadend.org>
dpkg-buildpackage: info: host architecture armhf
 dpkg-source --before-build tvheadend
dpkg-checkbuilddeps: error: Unmet build dependencies: debhelper (>= 7.0.50) pkg-config gettext libavahi-client-dev libssl-dev liburiparser-dev cmake libpcre2-dev | libpcre3-dev libdvbcsa-dev
dpkg-buildpackage: warning: build dependencies/conflicts unsatisfied; aborting
dpkg-buildpackage: warning: (Use -d flag to override.)
root@AOL-Debian:~/tvheadend#

 

의존성 팩키지 설치

<잠자님기준>
 debhelper (>= 7.0.50) pkg-config gettext libavahi-client-dev libssl-dev zlib1g-dev liburiparser-dev python python-requests cmake libpcre2-dev | libpcre3-dev libdvbcsa-dev
설치명령
apt install debhelper (>= 7.0.50) pkg-config gettext libavahi-client-dev libssl-dev zlib1g-dev liburiparser-dev python python-requests cmake libpcre2-dev | libpcre3-dev libdvbcsa-dev
설치명령 수정
apt install debhelper pkg-config gettext libavahi-client-dev libssl-dev zlib1g-dev liburiparser-dev python python-requests cmake libpcre2-dev libpcre3-dev libdvbcsa-dev

<저의 경우>
debhelper (>= 7.0.50) pkg-config gettext libavahi-client-dev libssl-dev liburiparser-dev cmake libpcre2-dev | libpcre3-dev libdvbcsa-dev
설치명령
apt install debhelper (>= 7.0.50) pkg-config gettext libavahi-client-dev libssl-dev liburiparser-dev cmake libpcre2-dev | libpcre3-dev libdvbcsa-dev
설치명령 수정
apt install debhelper pkg-config gettext libavahi-client-dev libssl-dev liburiparser-dev cmake libpcre2-dev libpcre3-dev libdvbcsa-dev

 

 

 

의존성 패키지 설치가 끝나게 되면 상기 명령을 재실행 하여 컴파일을 진행


apt install debhelper pkg-config gettext libavahi-client-dev libssl-dev zlib1g-dev liburiparser-dev python python-requests cmake libpcre3-dev libdvbcsa-dev

로 진행

 ./Autobuild.sh -t debian


2019년08월30일 오후 8시29분 컴파일시작 .........시간이 조금 걸리네요

gt-mini-a용 tvheaend 최종버전으로 만들어 봅니다.

20191103 17:10 ~ 컴파일시작 .......17:16

 

 

본게시물을 u5mini에서 컴파일 작업 1차 실패후
잠자님 배포 버전 ffmpeg 삭제 내용 보고 참조 "ffmpeg_static:no" 삭제
다시 하니 성공 
git checkout master 
nano configure 
.... 
"ffmpeg_static:no" 
...
수정
./Autobuild.sh -t debian
...감사 합니다 ....한수 배웠습니다.

 



 

빌드된 결과물 설치하기

cd ..

ls

...

-rw-r--r-- 1 root root 7299 Aug 30 21:32 tvheadend_4.3-1804~gebb096804-dirty_armhf.buildinfo
-rw-r--r-- 1 root root 1906 Aug 30 21:32 tvheadend_4.3-1804~gebb096804-dirty_armhf.changes
-rw-r--r-- 1 root root 9318296 Aug 30 21:32 tvheadend_4.3-1804~gebb096804-dirty_armhf.deb
-rw-r--r-- 1 root root 3966472 Aug 30 21:32 tvheadend-dbg_4.3-1804~gebb096804-dirty_armhf.deb

...

최신버전 tvheadend 빌드/컴파일한 파일 설치

dpkg -i tvheadend_4.3-1804~gebb096804-dirty_armhf.deb

 

dpkg -i tvheadend_4.3-1852~gdea96e441-dirty_armhf.deb

엔터

 

업데이트 기본으로 설치

service tvheadend start

재시작

 

http://192.168.0.7:9981

접속

버전 확인

 

2차  amlogsic gt-mini-a  tvheadend 최종버전 빌드


======

 

 

 

 

 

 

출처 : https://11q.kr/g5s/bbs/board.php?bo_table=s11&wr_id=8922#c_9443

'오드로이드' 카테고리의 다른 글

tvheadend 우분투 버전 설치  (0) 2019.03.14
Posted by 타카스 류지
|

APT Repositories

Official

Our official repository and packages are provided by Doozer on https://apt.tvheadend.org.

Status

(/) 03/04/2018 - OK

Please report any issues to: #5264

Build Types

Build TypeDescriptionVersionRepo Component
StableLatest release and fixesv4.2.7-*~githashstable
DevelopmentDevelopment buildsv4.3.*-*~githashunstable

(/) Stable is the recommended choice for most people.
(!) Development is for those who want to help develop and test the latest code.

But, where's release?!

We've decided not to offer "frozen" builds anymore, this is so that people get fixes much sooner. Those that are currently using release can modify their apt sources to stable, or continue as they are now, and move when they feel ready.

Supported Distros and Architectures

DistroCode-nameArchitecturesNotes
Debian Stretch 9stretchamd64, i386None
Debian Jessie 8jessieamd64, i386See footnote 11
Ubuntu Bionic 18.04bionicamd64, i386None
Ubuntu Xenial 16.04xenialamd64, i386, arm64See footnote 11 - applies to arm64 only
Ubuntu Trusty 14.04trustyamd64, i386None
Raspbian Stretch 9raspbian-stretcharmhfSee footnote 11
Raspbian Jessie 8raspbian-jessiearmhfSee footnote 11

1 Transcoding support is unavailable on these distros.

-

Usage

Here are some copy/paste examples on how to use the repo that should work for most2.

1. Install Required Packages and add the Repository PGP key

sudo apt-get -y install coreutils wget apt-transport-https lsb-release ca-certificates
sudo wget -qO- https://doozer.io/keys/tvheadend/tvheadend/pgp | sudo apt-key add -

2 We assume you have sudo installed. If not, and you're root, you can omit sudo, otherwise please ask your administrator to..

apt-get install sudo; usermod -aG sudo <your account name>

-

2. Create/Add the Sources List

Raspbian users (and anyone else who can't install/use lsb-release) please see the third footnote3.

Stable:

sudo sh -c 'echo "deb https://apt.tvheadend.org/stable $(lsb_release -sc) main" | tee -a /etc/apt/sources.list.d/tvheadend.list'

Unstable:

sudo sh -c 'echo "deb https://apt.tvheadend.org/unstable $(lsb_release -sc) main" | tee -a /etc/apt/sources.list.d/tvheadend.list'

3 Unfortunately you won't be able to use the command, at least not in the way it's shown, you need to replace " $(lsb_release -sc)" with "raspbian-stretch", "raspbian-jessie" or your distros code-name.

3001 Examples.. 

echo "deb http://apt.tvheadend.org/stable raspbian-jessie main" | sudo tee -a /etc/apt/sources.list.d/tvheadend.list
echo "deb http://apt.tvheadend.org/stable raspbian-stretch main" | sudo tee -a /etc/apt/sources.list.d/tvheadend.list

3002 Tip: If you want to use unstable, simply replace stable with unstable.

-

3. Update Sources and Install

sudo apt-get update
sudo apt-get install tvheadend

Tip: On some installs (generally fresh ones) you might be asked to enter some details. If you'd like to reconfigure these details later, you can run..

sudo dpkg-reconfigure tvheadend

and afterwards..

sudo service tvheadend restart

:)

Job done!

Help / Feedback

Please add to issue #5264 or join the IRC channel to report problems/give feedback.


Third-party

Third-party repositories are provided as-is and supported by the person who manages them, we cannot guarantee that we'll be able to help with issues relating to the use of these packages/repositories. The older official Bintray is exempt from this (Yes we know it's not technically third party ;) ).

In any case we'll try our best to help, or point you to where you can get some!

(Older) Official Bintray

This is our older official Bintray repository, packages are built using Doozer, the repository itself is provided by Bintray via https://bintray.com/tvheadend.

What Happened to the Bintray Repository?

Unfortunately due to rate-limiting we've decided to phase-out (SLOWLY) the use of Bintray. Don't worry the repository won't be disappearing4, it just won't be updated - sorry about that. :(

You can continue to use Bintray if you like, old instructions can be viewed here.

Tip: You can use both apt.tvheadend.org and bintray.com/tvheadend

4 mpmc's third-party Bintray repository will still be updated regularly, so Raspbian users don't panic - see the link above for usage. :) However, it's now recommended that you use the official repo.

-

Help

Please tell us here #5264, make sure you mention you're using Bintray. You can also join the IRC channel if you prefer.


Ubuntu PPA

Unofficial PPAs are provided by Michael Marley that provide packages for Artful, Zesty, Yakkety, Xenial and so on for the amd64, arm64, armhf, i386 and ppc64el architectures.

Status

Please see here and here for PPA status.

Usage

1. Pick a Build Type

For the stable PPA containing daily builds from the latest stable branch:

sudo apt-add-repository ppa:mamarley/tvheadend-git-stable

For the unstable PPA containing daily builds from master:

sudo apt-add-repository ppa:mamarley/tvheadend-git

2. Update Sources

sudo apt update

3. Install 

sudo apt install tvheadend

Help

If you experience issues with this PPA please contact Michael on IRC (mamarley in #hts on Freenode) or Launchpad.

'오드로이드' 카테고리의 다른 글

TVHeadend 최신버전 빌드 작업 설치[펌]  (0) 2020.04.21
Posted by 타카스 류지
|

samba 설정

오드로이드/XU4 2018. 6. 11. 17:59

[global]


   strict allocate = Yes

   allocation roundup size = 4096

   read raw = Yes

   server signing = No

   write raw = Yes

   strict locking = No

   socket options = TCP_NODELAY IPTOS_LOWDELAY SO_RCVBUF=131072 SO_SNDBUF=131072

   min receivefile size = 16384

   use sendfile = Yes

   aio read size = 16384

   aio write size = 16384


   workgroup = WORKGROUP

   dns proxy = no

   log file = /var/log/samba/log.%m

   max log size = 1000

   syslog = 0

   panic action = /usr/share/samba/panic-action %d

   server role = standalone server

   passdb backend = tdbsam

   obey pam restrictions = yes

   unix password sync = yes

   passwd program = /usr/bin/passwd %u

   passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .

   pam password change = yes

   map to guest = bad user

   

   load printers = no

   show add printer wizard = no

   printcap name=/dev/null



#======================= Share Definitions =======================

#[homes]
#   comment = Home Directories
#   browseable = no
#   read only = yes
#   create mask = 0700
#   directory mask = 0700
#   valid users = %S

[Contents]
 read list = odroid
 write list = root
 path = /media/exHDD
 comment = Contents
 write cache size = 524288
 getwd cache = yes
 use sendfile = yes
 min receivefile size = 16384
 socket options = TCP_NODELAY IPTOS_LOWDELAY


















Posted by 타카스 류지
|

이것저것 파일 생성하다가 ??????ȣ(???纻)_542ȸ.zip 이런 파일로 

만들어져 버릴때가 있었습니다. ;;;

뭐 답이 없더라구요..ㅎㅎ


찾아보니 삭제 방법이 있더군요


명령어는 ls -i


root@odroid:/var/www/html# ls -i


141720 ??????ȣ(???纻)_542ȸ.zip  141709 comic.php     133889 index.html         141717 pclzip.lib.php

271354 542                      141705 download.php  141711 json.scraping.php  141719 view.php

141718 Snoopy.class.php         271329 files         141714 manga.inf


쳐보시면 위 처럼 파일명 앞에 숫자가 있죠?


그 숫자는 유니크 해서 저걸이용해서 지운다고 하네요


ls -i 또는 ls -ali 으로 inum을 확인


깨진 파일 삭제

find ./ -inum 141720 -exec rm -f {} \;


깨진파일을 1.txt로 변경

find ./ -inum 141720 -exec mv {} 1.txt \; 




Posted by 타카스 류지
|
VNC


VNC(Virtual Network Computing) 는 가상 네트워크 컴퓨팅의 준말입니다. RFB(Remote Frame Buffer protocol)을 이용해 원격으로 다른 컴퓨터를 제어하는 기술이에요.

이런 거 많이 보셨죠? 많이들 쓰시는 팀뷰어같은 겁니다. 요샌 크롬 브라우저의 확장기능으로도 있는 것 같구요.

근데 우분투 서버 이미지는 데스크탑 환경이 없습니다. 서버용이라 굳이 메모리를 많이 차지하는 GUI 데스크탑 환경이 필요가 없어요. 그래서 VNC 설정이 의미가 없어요, 해도 터미널 환경이 나타날 거예요.

하지만 가끔 편의를 위해서든 특수한 용도 때문이든 GUI 활용이 필요할 때가 있죠.

이미 여러 설정을 마친 우분투 서버 이미지에 VNC 접속이 필요하다, 근데 너무 어렵다 하는 분들을 위해 간단한 가이드를 적어드리겠습니다.

우분투 서버 이미지가 아닌 일반적인 우분투 이미지로 설치하신 분들은 훨씬 쉬워요 :) 우분투 서버 이미지로 설치하신 분들만 해당됩니다.


필수 패키지 설치


먼저 서버에 SSH 접속한 다음 아래 필수 패키지들을 설치해줍시다. 데스크탑 환경으로는 가장 가볍다고 생각되는 Mate로 할게요.

sudo apt update
sudo apt install x11vnc lightdm mate-core mate-desktop-environment
Bash

용량도 많고 꽤 오래 걸릴 거예요. 게임 한 판 하고 옵니다. 전 요새 디아블로 3 시즌 13이 나와서 다시 하는데, 분기마다 새 시즌을 즐기니까 또 재밌네요.

설치가 끝나면 재부팅해줍니다.

sudo reboot
Bash

끝났어요. 실행하시면 됩니다 :)

x11vnc -xkb -noxrecord -noxfixes -noxdamage -display :0 -auth guess -forever
Bash

명령어가 좀 긴데, 마지막의 -forever 부분이 없으면 어떤 연결이 되었다가 끊길 때 자동으로 종료됩니다. 만약 있으면 계속 Listen 상태를 유지하고 있게 되구요.


윈도우에서 접속


윈도우에 원격 데스크탑 연결 프로그램이 내장되어 있는데, 이걸로는 VNC 접속이 안 돼요.

TigerVNC라는 프로그램을 설치해야 합니다. 같이 설치되는 VNC viewer를 사용합시다.

여기 사이트에 접속해 최신 TigerVNC를 설치해주세요: https://github.com/TigerVNC/tigervnc/releases

그리고 VNC Viewer를 실행해 서버 IP를 적고 접속해줍니다.

보통 데스크탑 사용하듯 로그인하시면 돼요.


리눅스에서 접속


리눅스에도 보통 VNC Viewer가 설치되어 있지 않아요. TigerVNC를 설치해줍니다.

sudo apt install tigervnc-viewer
Bash

vncviewer를 통해 실행해주세요.

vncviewer 192.168.0.16
Bash

아니면, 최소 우분투에는 Remmina라는 내장 앱이 있어서 사용할 수 있네요 :) 화질 설정도 가능하니 좋군요.


맥에서 접속


곧 업데이트 됩니다 :)


Opt. 부팅 시 자동 실행


근데 언제 어디서나 접속할 수 있게 계속 실행시켜두고 싶다면 이렇게 하시면 됩니다. 시스템 서비스로 하나 만들어주세요.

sudo vi /etc/systemd/system/x11vnc.service
Bash

아래 내용을 넣어줍니다.

[Unit]
Description="x11vnc"
Requires=display-manager.service
After=display-manager.service

[Service]
ExecStart=/usr/bin/x11vnc -xkb -noxrecord -noxfixes -noxdamage -display :0 -auth guess
ExecStop=/usr/bin/killall x11vnc
Restart=on-failure
Restart-sec=2

[Install]
WantedBy=multi-user.target
Bash

서비스를 시스템에 등록하고 실행시켜 주세요.

systemctl daemon-reload
systemctl enable x11vnc
service x11vnc start
Bash

이제 재부팅하셔도 따로 실행할 필요가 없습니다 :)


Opt. 해상도 변경


기본 해상도가 조금 작습니다. 800 x 600? 스러운 느낌이에요. 정확하진 않아요.

파일 하나를 수정해 해상도를 바꾸실 수 있습니다.

sudo vi /etc/X11/xorg.conf
Bash

파일 맨 마지막에 아래 내용을 넣어주세요.

Section "Screen"
        Identifier      "Default Screen"
        Device          "Mali-Fbdev"
        DefaultDepth    24
        SubSection "Display"
                Virtual 1920 1080
        EndSubSection
EndSection
Bash

재부팅 후 다시 접속해볼게요.

위의 설정은 화질이 너무 좋기 때문에 부하량도 많고, 특히 인터넷 환경이 안 좋으면 너무 느릴 수 있어요. 적당한 값을 찾아 적용해주세요. 제가 Mate를 선택한 이유도 그렇게 화려하지 않아서.. :)

도움이 되셨으면 좋겠습니다 :)


참고




출처 : http://awesometic.tistory.com/127

Posted by 타카스 류지
|

웹 접속

admin / openmediavault


메뉴 - 서비스 - SSH - 루트 로그인을 허용합니다. 설정 저장


SSH 접속

root / openmediavault


-$ df -h


-$ fdisk /dev/mmcblk1


p [enter]

d [enter]

3 [enter]

d [enter]

2 [enter]

n [enter]

p [enter]

2 [enter]

139264 [enter]

[enter]

p [enter]

w [enter]


-$ partprobe

-$ btrfs filesystem resize max /

-$ sync

-$ reboot


파티션 용량 확인

-$ df -h

Posted by 타카스 류지
|

최초작성일: 170808 16:59

오드로이드 XU4와 외장하드를 이용해 NAS를 구축하는 건 나름 가성비가 좋습니다. 저도 계속 사용하고 있구요.

OMV로 개인 NAS를 구축하실 때, 누구나 쉽게 구축할 수 있도록 나름 대로 가이드를 올렸는데요,

글 제목에 순서를 나타내는 번호가 있지만 사실 하다보니 큰 의미가 없어졌습니다.

따라가기 어렵기도 해요. 어디까지가 초보자용이지? 어디까지 리눅스를 몰라도 할 수 있지?

그래서 여기선 일단 번호를 지우고, 제가 포스팅한 자료를 이용해 나름의 구축 순서를 제안하려고 합니다.


* 이 순서대로 하셔도, 이상한 게 있을 수 있어요. 예를 들어, 그렇진 않지만 초급 5단계를 하는데 중급 1단계 지식이 필요하다던가.. 오타도 있을 수 있겠구요. 이상한 게 발견되면 바로 댓글로 알려주세요 :) 




초급

* 초급 단계에서는 리눅스에 대한 지식이 없어도 됩니다. 터미널 환경을 사용하지도 않아요.
* Samba까진 Local(집 안에서만) 사용을 위함이고, FTP부턴 외부에서 포트포워딩을 통해 사용하실 수 있습니다.

1. 개요
2. OMV 설치 / 설정
3. Samba
---------- 
4. FTP
5. WebDAV
6. Transmission
7. 포트포워딩 이란? / 포트포워딩 적용하기

중급

* Nginx/MySQL 설치가 필요하기 전과 후로 나누었습니다. Seafile, Wordpress는 Nginx/MySQL 설정이 필요합니다.
* OMV_3_0_88_Odroidxu4_4.9.46 버전 이상을 설치하셨다면 OMV 웹 - SSH 메뉴에서 "루트 로그인 허용" 을 활성화해주셔야 SSH 접속이 가능합니다.
* OMV 의 초기 접속 계정 정보는 root / openmediavault 입니다.

1. NAS 기본 지식 - 리눅스
2. Rsync
3. Plex Media Server
4. Serviio (DLNA)
---------- 
5. Nginx / MySQL
6. Seafile
7. Wordpress
8. OMV 이메일 알림

고급

* 도메인과 SSL에 대해서 다룹니다. 어려울 수 있지만, 잘 따라가시면 누구나 하실 수 있을 거라 믿어요.
* 간단히 사용할 때 꼭 필요한 단계는 아닙니다.
* 아직 리눅스나 NAS에 대한 지식이 부족한 분들로부터 이거 따라하는데 잘 안 된다 하는 피드백이 많이 없기 때문에, 적극적으로 물어봐주세요. 바로 반영하도록 하겠습니다.

1. 도메인
--- a. 도메인 (내도메인.한국)
--- b. DDNS (DuckDNS) (추천)
2. SSL
3. Wordpress + 도메인/SSL

기타

* 구축에 대한 게 아닌 여러 사용 관련 팁들을 올리고 있습니다.
* 괜찮은 걸 알아갈 때마다 계속 추가하고 있어요.

- SBC를 이용한 자작 NAS 장비 선택
- NAS를 위한 하드디스크와 백업
- OMV에서 HDD 파일 시스템 새로 만드는 방법
- 오드로이드 XU4 UAS 해제하기
- nPlayer 를 이용해 FTP, WebDAV, Samba, DLNA 동영상 스트리밍하기
- Seafile 에 업로드 한 파일 찾기 - Seaf-fuse
- Seafile 에 SMTP 설정으로 이메일 관련 기능 활성화 + 파일 공유하기
- NAS - 트랜스미션(Transmission) 토렌트 완료 시 자동으로 분류/삭제 스크립트
- NAS - 트랜스미션(Transmission) + Flexget, 매주 자동으로 예능 드라마 받기
- VPN 개념 / OpenVPN 서버 구축 가이드


출처 : http://awesometic.tistory.com/74?category=964085

Posted by 타카스 류지
|

이번엔 설치한 Wordpress에 도메인과 SSL을 입혀보겠습니다.

Wordpress에 대한 도메인은 이미 받았다고 가정할게요. 잘 모르시는 분들은,

오드로이드 XU4 + OMV 로 자작 NAS 구축하기 - 도메인 적용하기 또는
NAS에 DDNS 적용하기 - DuckDNS

를 참고하시면 되겠습니다.




1. 도메인 적용하기

앞서 말했듯 도메인을 발급받은 상태라고 가정하겠습니다.

1) Nginx 설정 변경

OMV Nginx 메뉴 - 서버 탭으로 가서

이렇게 Wordpress에 대한 서버를 누른 후 편집 버튼을 누릅니다.

포트 기반으로 8001 번 포트로 했었는데, 다시 80번으로 바꿔주고 이름-기반, 적절한 도메인 이름을 적어줍니다.

그리고 저장/적용해주세요.


2) Wordpress 설정 변경

SSH로 접속하신 뒤 아래 명령어를 입력해주세요. Wordpress가 /var/www/wordpress 경로에 설치되어 있다고 가정합니다. {도메인} 부분에 자신의 도메인을 입력해주세요.

# http:// 를 포함해 적어주세요.
WP_DOMAIN='http://wordpress.example.com'
echo -e "\ndefine('WP_HOME', '"$WP_DOMAIN"');\ndefine('WP_SITEURL', '"$WP_DOMAIN"');" >> /var/www/wordpress/wp-config.php
Bash

그리고 자신의 워드프레스 도메인을 통해 접속해봅니다.

잘 됩니다.



2. SSL 적용하기

도메인이 있으니 SSL을 적용해봅시다. 요새는 네트워크 대역폭 최대치를 찍어야만 하는 서비스가 아니라면 SSL이 필수인 것 같습니다.

사용하던 대로 Let's Encrypt를 이용해봅시다.

1) Nginx에서 Wordpress 서버 설정 변경

가이드라인을 따라오신 분들은 임시로 디렉토리를 만들고 그 곳을 Webroot로 해서 SSL 인증서를 발급받는 걸 해보셨을 겁니다. 근데 Wordpress는 저희가 소스 파일을 가지고 돌리는 거라, 임시 디렉토리가 필요가 없어요. Nginx에도 이미 Wordpress에 대한 서버가 있죠. OMV Nginx 메뉴에서  Wordpress 서버를 편집합시다.

밑에 추가 옵션 부분에 아래 내용을 추가만 추가해주세요.

location ^~ /.well-known/acme-challenge/ {
    allow all;
    default_type "text/plain";
}
nginx

아래 스크린샷처럼 될 겁니다.

그리고 저장/적용합시다.

인증서를 발급받을 준비가 다 된 겁니다.


2) SSL 인증서 발급받기

이젠 정말 발급을 받으셔야 합니다. SSH 로 접속합니다.

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

# http:// 부분을 뺀 도메인만을 example.com 대신 적습니다.
WP_DOMAIN='wordpress.example.com'
certbot certonly --webroot -w /var/www/wordpress -d $WP_DOMAIN
Bash

이러면 제 경우엔,

WP_DOMAIN='wordpress.awesometic-test.kro.kr'
certbot certonly --webroot -w /var/www/wordpress -d $WP_DOMAIN
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Starting new HTTPS connection (1): acme-v01.api.letsencrypt.org
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for wordpress.awesometic-test.kro.kr
Using the webroot path /var/www/wordpress for all unmatched domains.
Waiting for verification...
Cleaning up challenges
Generating key (2048 bits): /etc/letsencrypt/keys/0005_key-certbot.pem
Creating CSR: /etc/letsencrypt/csr/0005_csr-certbot.pem

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at
   /etc/letsencrypt/live/wordpress.awesometic-test.kro.kr/fullchain.pem.
   Your cert will expire on 2017-11-06. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot
   again. To non-interactively renew *all* of your certificates, run
   "certbot renew"
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le
Bash

기가 막히게 잘 됩니다.


3) SSL 인증서, OMV Web UI에 불러와 적용하기

새로 발급 받은 인증서를 OMV에 불러와봅시다. 그래야 OMV 안에서 쓸 수 있거든요.

OMV 인증 메뉴 - SSL 탭으로 갑니다. 그리고 추가 버튼 - 불러오기를 눌러줍니다.

여기서 저번에 하셨던 것처럼 개인 키와 인증 정보를 복붙해줍니다. 개인 키는 /etc/letsencypt/live/{도메인}/privkey.pem, 인증은 fullcahin.pem 입니다.

그러면,

이렇게 될텐데, 저장/적용해줍니다.

그리고 OMV Nginx 메뉴 - 서버 탭으로 가 다시 Wordpress 서버 편집을 합니다.

이런 식으로 적용해주시고 저장/적용해주세요.


4) Wordpress 도메인 설정 변경하기

마지막 단계입니다. Wordpress는 지가 어느 도메인인지 알고 있어야 해요. 그걸 변경해줍시다.

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

# http:// 부분을 뺀 도메인만을 example.com 대신 적습니다.
WP_DOMAIN='wordpress.example.com'
sed --in-place=.bak 's,http://'$WP_DOMAIN',https://'$WP_DOMAIN',g' /var/www/wordpress/wp-config.php
Bash

다 됐습니다 :)


5) 접속 테스트

SSL이 잘 씌워졌는 지 접속해봅시다.

잘 됩니다 :)


출처 : http://awesometic.tistory.com/72?category=964085

Posted by 타카스 류지
|

오드로이드 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
Bash

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

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

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

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

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

...

// ** 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');
PHP

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

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

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

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

touch fix-wordpress-permission.sh
Bash

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

#!/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 {} \;
Bash

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

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



3. Nginx 설정

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

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

client_max_body_size 100M;
Bash

위의 내용을 추가해주겠습니다. 클라이언트가 최대 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;
}
nginx

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



4. 접속 후 설정

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

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

성공합니다.

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

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


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


출처 : http://awesometic.tistory.com/70?category=964085

Posted by 타카스 류지
|

OMV 같은 NAS는 한 번 구축해놓으면 시스템에 신경을 잘 안 쓰게 됩니다. 밥은 먹고 다니나 종종 궁금해지긴 하는데, 살다보면 막상 접속해보거나 그러진 않아요. Samba로 데이터나 잘 넣고 Plex나 FTP로 동영상이나 잘 보면 되죠.

근데 얘도 시간이 지나면 지날수록 한 두 군데 나사가 풀리고 맛이 갈 겁니다. 저흰 얘가 죽어가는 와중에도 Samba나 Plex나 이상이 없어 힘힘들어하는지 뭔지 모를 거에요.

때문에 OMV는 알림 기능이 있습니다. 이메일 SMTP서버를 설정해 두면, 알아서 저한테 힘든 일이 있거나 어디 하드디스크 하나가 맛이 가려고 할 때 등등 여러 가지를 알려줍니다. 필요하죠.

설정하러 갑시다.




0. 준비

저희 시스템이 메일 서버가 되는 게 아닙니다. 그냥 다른 서버를 빌려서 메일을 보내는 거에요. 그래서 다른 서버에, "날 사용해도 좋다" 하는 걸 설정해놔야 합니다.

Google Gmail로 할 겁니다. 다음이나 네이버도 될 것 같은데, 제가 해본 결과 일단 다음은 잘 안 되더라구요. Gmail이 확실합니다.



1. Gmail 앱용 비밀번호 생성

먼저 Gmail로 접속합니다.

그리고 이렇게 오른쪽 위에 저걸 눌러 내 계정 버튼을 눌러줍니다.

왼쪽 중간쯤에 이런 게 있어요. Google에 로그인 을 눌러줍니다.

이런 부분을 찾아야 해요. 그리고 2단계 인증을 만드셔야 합니다. 2단계 인증이 좀 귀찮은데 이걸 만들어야만 해요. 만드는 건 쉬우니 만드시고 나면, 아래에 앱 비밀번호 란을 눌러줍니다.

없대요. 원래 있었는데 보여드릴려고 지웠습니다. 생성할 앱 및 기기 선택에서 앱 선택-기타 를 누르면, 이름을 아무렇게나 지정할 수 있게 돼요. 적절한 이름을 넣은 뒤 생성 버튼을 눌러줍니다.

생성이 완료되면 이런 창이 뜹니다. 기기용 앱 비밀번호, 저 노란 부분에 있는 글자들을 복사해두세요. 지금 아니면 다시 보려고 해도 못 봅니다.

타 앱에서 SMTP를 위한 기초 작업이 완료되었습니다.



2. SMTP 활성화

OMV 알림 메뉴로 가서,

이런 식으로 채워주세요. SMTP 서버, 포트, SSL/TLS, 등등 전부 위 스크린샷처럼 맞게 써주시면 됩니다. 송신자 전자우편은 제가 아무렇게나 쓴 건데, 이게 먹히진 않더라구요. 저게 왜 있는 지 모르겠어요.

사용자 이름에는 앱 비밀번호를 생성한 Gmail 주소, 그리고 암호에는 생성해서 복사해놨던 앱 비밀번호를 써줍니다.

밑에 수신자의 주 전자우편으로 OMV 알림을 받을 메일 주소를 써주세요.

그리고, 저장/적용하신 뒤 위의 시험용 전자우편 발송 버튼을 눌러 테스트해봅시다.

확인해보면,

이렇게 아주 잘 와 있네요!



* 호스트/도메인 이름 설정

메일 앞에 [odroidxu4] 라고 쓰여있습니다. 얘가 지금 오드로이드 NAS의 호스트 이름인데, 바꿔줄 수 있어요.

OMV 네트워크 메뉴로 갑시다.

이렇게 있죠, 여기에 적은 내용들이 메일 제목 앞에 붙어서 오게 됩니다.

도메인 이름이 만약 example.com 이면,

odroidxu4.example.com 이런 형식으로 오게 돼요. 멋있게 적절히 알아서 잘 넣어줍시다.


* 알림 항목 설정

모든 일에 대해서 알림을 받기 좀 귀찮을 때가 있습니다. 다 받을 만하지만, 그래도 거르고 싶은 게 있다면 이메일로 알릴 항목을 선택해줄 수 있어요.

OMV 알림 메뉴에서 알림 탭으로 갑시다.

거를 거 걸러주시고, 저장/적용 해주세요.


출처 : http://awesometic.tistory.com/68?category=964085

Posted by 타카스 류지
|

Rsync는 로컬이나 원격의 다른 컴퓨터 시스템에 대해 파일 전송과 동기화 기능을 제공하는 유틸리티입니다. CLI 기반이기 때문에 단순히 명령어 하나 만으로 다른 곳과 파일을 동기화할 수 있어요. 굉장히 편리합니다.

Ubuntu나 다른 리눅스 기준이라면 복잡해 보이는 명령어를 막 입력해야 하겠지만, OMV이기 때문에 간단하게 사용법을 적어보려고 합니다.

참고로 OMV의 경우 활성화 시 자동으로 Rsync가 스케줄링 되는데, 그러니까 매번 특정 시간이나 매 시간, 이런 기준에 따라 자동으로 실행돼서 파일이 목적 위치와 동기화된단 말이죠. 한 번만 여유있는 다른 곳의 하드디스크로 설정해 놓으시면 2차 백업에 대해선 걱정 없으실 겁니다.

NAS를 구축하셨지만 RAID를 구성하지 못하신 분에게는 더 필요한 솔루션인 것 같습니다. 하드디스크는 생각보다 쉽게 고장나요. 또 한 번 고장나면 보통 물리적 고장이기 때문에 전문 장비 없이는 살리기가 어렵습니다. 백업을 항상 중요시하세요. 뭐든지 일이 저질러지기 전에 예방하는 것이 먼저잖아요.

요새는 Rsync에서 파일을 전송할 때 SSH 프로토콜을 이용한다고 하네요. SSH 는 기본적으로 암호화가 목적이기 때문에 Rsnyc로 파일을 전송할 때도 암호화해 보안성이 높아집니다.

여기선 로컬 시스템에서 원격 시스템으로의 NAS 백업을 중점으로 쓰겠습니다.


참고: https://www.joinc.co.kr/w/Site/Tip/Rsync
참고 2: https://www.digitalocean.com/community/tutorials/how-to-copy-files-with-rsync-over-ssh
참고 3: https://forum.openmediavault.org/index.php/Thread/7143-Rsync-two-OMV-machines/?postID=65611#post65611
참고 4: https://forum.openmediavault.org/index.php/Thread/18586-RSYNC-SSH-help-needed/



0. 준비

당연한 말이지만, NAS 백업이기 때문에 NAS에 사용되는 HDD보다 더 큰 HDD가 필요합니다. NAS에서 3TB를 사용한다면, 백업할 장소는 3TB 이상이어야 하죠. 물론 3TB 전부 다 중요하진 않고 거기서 쥐똥만큼인 30GB가 진짜진짜 중요한 데이터다 싶으시면 그 곳만 백업하면 되니 상관 없습니다.

그리고 Rsync로 데이터를 받을 시스템 또한 Rsync가 필요합니다. 하지만 Rsync는 거의 필수 패키지라 대부분의 리눅스 배포판엔 이미 포함되어 있으니 신경 안 쓰셔도 됩니다. 로컬과 원격에서 조금만 손 봐주면 바로 사용하실 수 있습니다.

Rsync는 "나" 가 로컬이고 "상대" 가 원격입니다. 나는 상대에게 파일을 줄 수도 있고, 상대로부터 파일을 받을 수도 있습니다. 또한 나를 기준으로 상대의 파일과 디렉토리들을 동기화시킬 수 있고, 내가 상대의 기준으로 동기화할 수도 있습니다. 다른 시스템에 접속만 하면 다 돼요.

 

1. 로컬 시스템에서 SSH 인증 키 생성

인증할 때 비밀번호를 치는 게 아닌 SSH 키를 사용합니다. 비밀번호를 매번 입력하거나 비밀번호 그대로 저장해 둘 필요가 없어 편리하지만, 그 SSH 인증 키만 있다면 어떤 시스템에서도 해당 계정으로 로그인이 가능하단 단점이 있어요. 잘 간수하셔야 합니다. 이게 싫으면 Rsync 서버를 열어야 하는데, Rsync는 암호화가 적용이 안 되기 때문에 입맛에 맞춰 하시면 되겠습니다. 

먼저 로컬 시스템 OMV 인증 메뉴 - SSH 탭으로 갑니다.

그리고 추가-생성 버튼을 눌러 SSH 인증 키를 하나 생성해줍시다. 묻는 게 별로 없어요, 그냥 설명 간단하게 채워주시면 됩니다.

전 이렇게 했어요. 다 됐습니다.

그리고 새로 생긴 애를 누른 후 편집을 눌러줍니다.

RSA 공개 키라는 부분이 있고, 오른쪽에 파일이랑 종이 그려진 아이콘이 있는데 그 아이콘을 눌러 복사해 둡니다.



2. 원격 시스템 설정

원격 시스템에선 SSH 접속이 필요합니다.

먼저 Rsync가 설치되어 있는 지 확인합니다. 안 되어있으면 설치하도록 바로 install을 때리겠습니다.

sudo apt-get install -y rsync
Bash

Rsync가 설치가 되어 있다면, SSH에 접속한 뒤 로컬에서 생성한 공개 키를 ~/.ssh/authorized_keys 경로에 저장합니다.

{공개키} 부분에 방금 복사한 공개키를 입력해주세요.

PUB_KEY='{공개키}'
echo $PUB_KEY > ~/.ssh/authorized_keys
Bash

그리고 Rsync로 동기화 할 디렉토리를 생성하겠습니다.

경로는 각자 적절한 위치로 해주세요. 전 외장하드가 연결된 곳으로 하겠습니다.

sudo mkdir /media/hdd/ext1/rsync
Bash



3. Rsync 테스트

다시 로컬 시스템(OMV)으로 오겠습니다.  

OMV Rsync 메뉴로 갑시다.

여기서 추가 버튼을 눌러줍니다.

그리고 이런 식으로 채워줍니다. 대상 서버에 {계정@IP}:{경로} 포맷으로 적어주심 됩니다. 그리고 인증을 공개 키로 설정, SSH 포트는 보통 22번일 거고 인증서는 처음에 만든 SSH 인증서를 선택해줍니다. OMV NAS의 파일을 원격 시스템으로 보내는 것이기 때문에 밀어넣기 로 설정하겠습니다.

이번에도 그렇고 OMV 번역이 좀 종종 미묘한데, 그냥 Push 라고 영어로 쓰여 있음 더 좋았을 것 같네요.

해당 Rsync 작업을 반복하고 싶으시면 매 N분/시간/일 마다를 체크해주시고, 시간을 지정해 주시면 됩니다. * 일 경우는 잘 모르겠군요, cron이라면 매분, 매시간, 이런 건데 말이죠. 설정에 1 도 있어서 * 이랑 1 이랑 뭐가 다른진 모르겠네요.

저장/적용 하시면,

이렇게 됩니다.

10분에 한번 동기화를 하는 걸로 설정했는데, 기다리기 미묘하니 대충 테스트 해봅시다.

Samba로 동기화하고자 하는 폴더에 아무 거나 넣어봤습니다.

이런 느낌으로요. 그리고 OMV Rsync 메뉴에서, 위 스크린샷에도 있는 실행 버튼을 눌러 테스트해봤습니다.

되게 error 이런 말 뜨면서 뭐라고 하는데, 막상 확인해 보니

아주 잘 들어가 있네요. 기똥찹니다.

백업하세요.


* 여유가 된다면 우분투 시스템에서 Rsync 하는 법을 포스팅하겠습니다.


출처 : http://awesometic.tistory.com/67?category=964085

Posted by 타카스 류지
|

WebDAV는 완전히 인터넷(www) 기반의 디렉토리, 문서 편집/관리 도구입니다. 보통 웹은 "읽기"만 가능한 환경이었는데, 여기에 "쓰기"까지 가능하게 한다는 것이 WebDAV의 기본 목적인 것 같습니다.

NAS 사용자 입장에서는, NAS의 하드디스크를 마치 내 컴퓨터의 디스크인냥 들락날락 하고 싶은 욕망이 있죠. 그래야 관리가 편하거든요. Samba가 그것을 가능하게 해주지만, Samba의 목적 자체가 내부 네트워크 용이라는 점에서 한계가 있습니다. 예를 들어, 집에서 자신의 노트북에 NAS Samba에 대한 드라이브를 하나 만들어놔도, 카페에 가면 그 드라이브에 접근할 수가 없어요.

WebDAV는 웹으로 접근하는 것이기 때문에 그것이 가능합니다. 그러면서도 웹이기 때문에 SSL을 적용할 수 있어 보안성도 높아요. 뜻 자체가 웹 분산 저작 및 버전 관리라는 뜻인데, 그 말 뜻처럼 실시간 파일 편집에 강하고 여러 사람이 하나의 파일을 동시에 건들일 수 없도록 보호해준다네요. 단일 파일 최대 전송 용량이 어느 정도 한계가 있다는 게 아쉽지만, 그런 건 눈감아 줄 수 있는 괜찮은 서비스죠. 

저도 잘 안 써서 몰랐지만, 동영상 스트리밍도 WebDAV로 많이 한다더라구요.

OMV를 이용해 WebDAV 서비스를 열고, 내 컴퓨터에 등록까지 해봅시다.


참고: http://yaruki0318.tistory.com/entry/%EC%B0%A8%EC%84%B8%EB%8C%80-%ED%94%84%EB%A1%9C%ED%86%A0%EC%BD%9C-WebDAV-%EA%B0%80%EB%8A%A5%EC%84%B1
참고 2: https://www.qnap.com/ko-kr/how-to/tutorial/article/webdav%EB%A5%BC-%EC%9D%B4%EC%9A%A9%ED%95%9C-qnap-%EC%9B%90%EA%B2%A9-%EC%95%A1%EC%84%B8%EC%8A%A4




1. WebDAV 설치/활성화

OMV 플러그인에서 WebDAV 를 검색해 설치합니다.

그리고 페이지가 새로고침되면 OMV에 WebDAV 메뉴가 생겼을 거에요. 가봅시다.

굉장히 생각보다 더 단순하네요. 

여기서 공유폴더를 지정할 때 빨간 글씨로 경고가 뜰 겁니다. 그 경고를 없애주러 OMV 공유 폴더 메뉴로 갑시다.

그리고 WebDAV 접속 시 사용하고자 하는 공유폴더를 클릭하고 위의 접근 제어 목록(ACL) 버튼을 클릭하면, 아래와 같은 창이 뜹니다. 

위의 사진처럼 webdav와 webdav-users에 대해 읽기/쓰기 권한을 줍시다. 재귀적으로도 활성화하신 뒤 적용합니다.

그리고 OMV 사용자 메뉴로 가서 WebDAV 접속에 사용하고자 하는 계정을 누르신 뒤, 편집 버튼을 누르세요.

그리고 그룹 탭으로 가셔서,

이런 식으로, 원래는 users만 체크가 되어있을텐데 webdav-users도 체크해줍니다.

그리고 저장하시게 되면,

그룹에 users와 webdav-users가 있게 됩니다.

다시 OMV WebDAV 메뉴로 갑시다.

그리고 이렇게 고쳐주세요. FileSize upload limit을 4095로 지정하겠습니다. 4GB를 노린 건데, 원래는 4096MB이지만 너무 딱 맞춰서 넣으면 정신을 못 차릴까봐 1MB 빼고 갈게요. 저장/적용 해줍니다.

마지막으로 활성화된 위의 보이기 버튼을 누르면,

이렇게 딱 뜨는 것을 보실 수 있습니다. 



2. 내 컴퓨터에 드라이브로 등록하기

원래는 Samba처럼 익스플로러의 자체 기능을 통해 등록할 수 있습니다만,

왠지 어떻게 해도 안 되더라구요. 레지스트리도 변경해보고 뭐 이것 저것 다 해봤어요. OMV 때문인 지 뭔진 몰라도 결국 써드 파티 프로그램을 사용하게 됐습니다.

NetDrive가 이런 FTP, WebDAV로 열린 서버를 내 컴퓨터에 드라이브로 등록하는 프로그램인데, 굉장히 유명해요. 하지만 기간의 제한이 있는 트라이얼 버전이라, 유료를 사지 않으면 한 때 무료였던 엄청 구버전을 사용해야 합니다. 해도 좋지만, 저희는 얼마전 새로 나왔다던 국산 프로그램인 RaiDrive를 사용할게요.

링크를 통해 다운로드 받아 설치합니다. 설치는 굉장히 단순해서 따로 설명드리진 않겠습니다.

그리고 실행하게 되면,

시작해보자고 제안하네요.

추가 버튼을 눌러서,

위 스크린샷처럼 채워줍니다. WebDAV, 드라이브 알파뱃은 가능한 한 제일 마지막 것으로, 주소와 계정정보 등등.. SSL이 아니신 분들은 주소의 체크를 해제해주세요.

그리고 확인 버튼을 누르면,

이렇게 생기게 됩니다. 내 컴퓨터의 하드디스크인냥 돌아다닐 수 있어요. 다만 이래 보여도 웹에 연결하는 거라, 대용량 파일의 경우 웹에 업로드가 오래걸릴 수 있습니다. 물론 집에선 내부 네트워크니까 속도가 빠를 거에요. 관련해서 업로드 중이다, 속도는 어떻고 얼마나 남았다 하는 정보도 뜨면 좋겠는데 그런 건 아직 안 뜨더라구요. 새로 나온 서비스니 기다려 봅시다.

WebDAV는 간단한 문서작업, 대학 과제, 사진 업로드 등에 적합해 보입니다.

여담으로 디자인을 마이크로소프트 Visual Studio 에서 따온 것 같네요. 설치부터 마소 냄새가 확 납니다. 느낌은 조금 다르지만 보기 좋아요.


출처 : http://awesometic.tistory.com/64?category=964085

Posted by 타카스 류지
|

* SSL 적용은 옵션입니다.

* SSL 적용 시 20~30%, 많게는 50% 이상 속도가 저하될 수 있습니다. 통신 패킷 암호화 때문인 것 같은데, FTP로 고화질 동영상 스트리밍 등 빠른 전송 속도를 위해선 SSL이 없는 상태로 접속해 사용하세요. 중요한 파일을 다루거나, 중요한 파일로 접근할 수 있는 계정을 사용할 때 카페 등 공용 인터넷이 불안하시다면 SSL을 사용하시면 되겠습니다. 대부분의 720p나 TV 예능 정도의 1080p 동영상 스트리밍에는 문제가 없을 겁니다.

SSL은 TLS(Transport Layer Security)라고도 불리는 보안 소켓 레이어입니다. 전송 계층 보안이라는 의미의 TLS가 더 받아들이기 쉬운 이름인 것 같네요.

원래 인터넷은 전부 패킷의 이동입니다. 패킷은 데이터 조각이라고 보시면 되는데, 머리부분에 출발지와 도착지의 정보를 포함한 여러 정보가, 몸통 부분에 보내고 받고자 하는 필요한 데이터들이 들어 있어요. 이런 수없이 많은 패킷이 인터넷 세상에 뿌려져 도착지까지 잘 이동하는 겁니다.

근데 몸통부분에 데이터를 넣을 때 암호화하지 않으면, 패킷의 이동 경로에 있는 누구나 그 데이터를 볼 수 있어요. 요새는 대표적으로 공유기인데, 카페나 식당 등에서 제공되는 무료 와이파이가 그래서 위험합니다. 경로상의 패킷을 잡아내는 프로그램이 있어요. 이런 프로그램과 여러 다른 툴들을 잘 섞어 쓰면 내가 어느 사이트에 어떤 계정과 비밀번호로 로그인하는 지도 알아낼 수 있습니다. 살짝 네트워크 + 웹 해킹을 조금 공부한 적이 있었는데, 거의 대부분의 웹 사이트는 사실 굉장히 취약해요.

그래서 여러 유명 웹사이트 관리자들은 이런 보안 문제를 중요하게 생각해왔습니다. 결국 SSL이 탄생했어요.

SSL은 간단하게 인증서 + 공개키 + 대칭키 암호화 방식으로 암호화를 진행하는 겁니다. 자세한 건 모르셔도 되지만(저도 잘 모르지만), 아무튼 엄청나게 암호화시키고 놉니다. 인증서도 빼고 간략하게 한 버전이 제가 예전에 다룬 Node.js 와 Android 간 RSA + AES 암호화 방식이겠네요. 이렇게 되면 중간에 누군가 패킷을 가로채더라도 복호화 키가 없어 어떤 데이터인지 알아볼 수 없어요.

참고로 SSL은 데이터 통신 그 자체에만 보안이 좋을 뿐이지, 악성 코드를 SSL 방식으로 보내거나 하는 건 가능하기 때문에 약간 다르게 보셔야 합니다.

아무튼 SSL의 중요성이 점점 높아지는 추세인 걸로 보입니다. 예전엔 인증서를 얻기도 어려웠는데, 이젠 누구나 간단하게 인증서를 얻을 수 있어요. 간단하게 얻으러 갑시다.


* Let's Encrypt를 사용하지 않더라도 자체 인증서를 생성할 수 있습니다. 하지만 이럴 경우 사이트 접속 시마다 인증서의 인증 기관이 신뢰받지 않았다는 이유로 경고창이 매번 보여집니다. 따라서 조금 어렵더라도 Let's Encrypt 사용을 권장합니다.




0. 포트포워딩

80번, 443번이 오드로이드 NAS로 포트포워딩 되어 있어야 합니다.



1. OMV Let's Encrypt 설치

OMV 플러그인 메뉴에서 Let's Encrypt 검색 후 설치합니다.




2. Let's Encrpyt 로 인증서 발급

여기선 OMV 관리자 페이지에 대한 SSL 인증서를 발급받아 사용해보겠습니다.

OMV의 Let's Encrypt 메뉴로 갑시다.

뭔가 어려워보입니다. 얘를,

이런 식으로 바꿔 넣어 줍시다. OMV 관리자 페이지에 대한 도메인 주소를 넣고, 전자우편에는 자신이 정말로 사용하는 이메일 주소를 넣습니다. 그리고 Schedule Refresh를 활성화한 후 저장/적용 합니다.

저 이메일 주소에 SSL 인증서 재발급, 만료 알림이 보내질 겁니다.

그 다음 Generate Certificate 버튼을 누르면,

이렇게 축하해줍니다.

그리고 왠지 변경된 설정을 적용하라는 알림이 뜰 텐데요, 적용 해줍시다. 그러고 나면 곳곳에 추가된 게 있을 거에요.

일단 OMV 인증 메뉴 - SSL을 가봅시다.

새롭게 발급 받은 인증서가 추가된 걸 보실 수 있습니다.

그리고 OMV 예약된 작업 메뉴로 가봅시다.

작업이 하나 생겨 있네요, 매월 수행되는 작업이고, omv-letsencrypt 명령을 실행하나 봅니다. 설명을 보니 Let's Encrypt 플러그인으로 받은 인증서를 계속 최신화 시켜주는 작업이며, 여기서 삭제하면 안 되고 플러그인을 통해 비활성화 시키라네요.



3. 적용

성공적으로 인증서를 발급받았으니 바로 적용해 봅시다. OMV 일반 설정 메뉴로 갑시다.

보안 연결 관련 설정이 있어요. 얘를 활성화시켜주고, 인증에 방금 발급받은 인증서를 선택해 줍니다.

이렇게요. 그리고 저장, 적용하시면 됩니다.

그리고 https://{도메인} 으로 가봅시다! 전 https://omv.awesometic-test.kro.kr/ 이네요. 도메인 때문에 다들 접속하실 수 있을 듯 :)


이랬던 애가,


이렇게 바뀌었습니다. 누가 봐도 안전해졌네요!

지금은 강제 SSL/TLS 옵션이 꺼져 있기 때문에 SSL이 없는 http:// 로도 접속이 가능합니다. 저 옵션을 켜주시면 SSL(https)로만 접속이 가능해져요.



* OMV의 Let's Encrypt로 발급받으려는 인증서가 2개 이상일 때

OMV 에서는 Let's Encrypt 플러그인을 통한 인증서가 최대 하나밖에 지원이 안 됩니다. 하나를 더 생성하면, 생성이 되더라도 OMV SSL 인증서 목록에 가장 최근에 생성한 하나만 떠요. 아니면 그냥 에러가 나버립니다.

그래서 만약 위의 예시처럼 내가 이미 OMV 관리자 페이지를 위한 인증서를 하나 발급받았는데, 한 개 더 Seafile에 쓰일 인증서로 발급받고 싶다! 하셔서 플러그인을 통해 발급을 받는다 해도 기존의 OMV 도메인에 대한 인증서는 없어집니다.

사실 굉장히 불편하고 이상하게 만들어졌어요.

그래서 제 나름대로 인증서는 터미널에서 발급받고, OMV SSL 인증서 목록에 직접 추가해주는 방법을 생각해냈습니다. 이렇게 해도 플러그인으로 발급받은 인증서와 함께 매월 갱신 될 것 같아요. => 실제로 갱신되는 지 확인해 봐야 합니다.

어려워 보이지만, 사실 한 두번 해보면 굉장히 쉽습니다.

0) Nginx에 새로운 서버 추가/설정

Webroot 플러그인을 이용한 SSL 인증서를 받기 위해 Nginx 서버들의 설정을 바꿔줘야 합니다. 자세한 내용은 바로 다음 단계에서 진행됩니다.

인증서를 발급해주기 전 Nginx 에 서버가 등록되어 있어야 합니다. 도메인을 사용할 경우 Nginx에서 그 도메인에 대해 필요한 서비스로 들어가게끔 해줘야 하거든요.

가이드를 처음부터 따라오셔서 도메인도 추가하신 분은 추가 옵션 맨 밑에 아래 내용만 넣어주시면 됩니다.

Nginx가 웹 사이트 소스에 직접 접근한다면 root 부분을 주석처리 해주세요. 그게 아니라면 root 부분에 해당하는 디렉토리를 만들고 진행해야 합니다. 다음 단계에서 설명됩니다.

location ^~ /.well-known/acme-challenge/ {
    root /var/www/sub.example.com;
    allow all;
    default_type "text/plain";
}
nginx

이렇게 될 겁니다.

* FTP의 경우 새로 만드셔서 추가 옵션에 저 내용만 넣으시면 될 것 같습니다만, 아직 테스트 중입니다. 기본적으로 Nginx는 HTTP 서버지 FTP서버가 아니기 때문에, HTTP 서버에 임시로 저렇게 해서 인증서를 발급받아도 FTP에 사용할 수 있는 지 테스트해보고 업데이트 하겠습니다.


1) SSH 접속 후 인증서 발급

지금까지 강좌를 잘 따라오신 분들이라면, 터미널에 Putty 프로그램을 이용해 SSH로 접속하는 건 이미 익숙해졌을 겁니다.

접속해 들어갑니다.

SSL 인증서 발급에는, OMV로 하실 때 보셨는 지 모르겠지만 Webroot 플러그인을 사용해서 발급하셨을 겁니다. OMV 에선 필수인데, 사실 필수는 아니고 플러그인 형식으로 명령어의 옵션을 통해 주입해서 사용하는 거에요. Webroot를 사용하지 않는 Standalone 방식도 있습니다.

Webroot 플러그인을 사용할 경우 인증서 갱신이나 인증서 관련 문제들을 해결할 때 서버를 멈추지 않아도 되기 때문에 요새 대부분의 서버에서 인증서를 발급받을 때 해당 플러그인을 사용한다고 합니다.

Webroot 플러그인은 서버 내에 해당 웹 사이트 소스 파일 경로가 존재하는 지 유효성을 판단합니다. Web root는 그 웹 사이트 소스의 경로라고 생각하시면 돼요. 플러그인을 사용할 때 웹 사이트 소스 경로를 지정하며, 사용할 경우 사이트 소스 파일 경로에 임시 디렉토리와 임시 파일이 생겨 인증 기관에서 도메인을 통해 직접 그 파일에 접근해 비교함으로써 유효성이 판단됩니다.

위의 설정을 한 이유도 그것 때문입니다. 임시로 디렉토리를 만들어 그 곳에 접근하는데, example.com/.well-known/acme-challenge 도메인으로 들어와 임시로 만들어진 파일을 읽습니다. 그래서 Nginx 설정에 해당 경로로 들어오는 건 모두 허용해 줘라 설정해 주는 것입니다. root는 웹 사이트 소스가 없는 페이지의 경우(Reverse proxy 서버로 사용할 경우) 해당 디렉토리를 못 찾을테니 임시로 지정해준 겁니다.

저희는 그런 Webroot 플러그인을 사용한다고 가정하겠습니다.

여기서 두 가지로 나눠집니다.

Wordpress 등 소스 파일을 받아서 열거나, 직접 웹사이트 소스를 작성해 여는 경우)

이럴 경우엔 보통 /var/www/wordpress/ 경로 아래에 index.html나 index.php 등이 있을 겁니다. Nginx가 그 index 파일을 찾아서 클라이언트한테 보내주는 거에요. 그렇기 때문에 Webroot 플러그인을 사용할 때 해당 웹 사이트 소스 파일 경로로 지정해주시면 됩니다.

아래의 명령어를 입력해줍시다. {경로} 에는 웹 사이트 소스의 절대 경로를, {도메인} 에는 자신의 해당 웹사이트에 SSL로 접근하고자 하는 도메인을 적어주세요.

WEBROOT_PATH='{경로}'
WEBROOT_DOMAIN='{도메인}'
certbot certonly --webroot -w $WEBROOT_PATH -d $WEBROOT_DOMAIN
Bash

예시입니다.

certbot certonly --webroot -w /var/www/wordpress/ -d wordpress.example.com
Bash

이러면 축하해주면서 인증서도 줄 겁니다.


Seafile이나 Transmission등을 도메인 접속을 위해 Nginx를 Reverse proxy 서버로 쓰는 경우)

이럴 경우엔 /var/www/ 아래에 해당 웹사이트에 대한 경로가 없습니다. 알아서 구축이 되어 있기 때문에, 그 웹사이트 경로를 찾기도 어렵고 찾아도 미묘해요.

그래서 일단 SSL 인증 기관에게 "그래도 얘는 내 서버에서 돌고 있다"는 걸 알려만 주면 되기 때문에 명시적으로 디렉토리를 만들어주면 됩니다.

아래의 명령어를 입력해줍시다. 역시 {경로} 에는 웹 사이트 소스의 절대 경로를, {도메인} 에는 자신의 해당 웹사이트에 SSL로 접근하고자 하는 도메인을 적어주세요.

명시적인 디렉토리를 먼저 만들고 그 디렉토리를 이용해서 인증서를 발급받겠습니다.

WEBROOT_PATH='{경로}'
WEBROOT_DOMAIN='{도메인}'
mkdir -p /var/www/$WEBROOT_DOMAIN
certbot certonly --webroot -w $WEBROOT_PATH -d $WEBROOT_DOMAIN
Bash

예시입니다.

mkdir -p /var/www/seafile.example.com
certbot certonly --webroot -w /var/www/seafile.example.com/ -d seafile.example.com
Bash

가이드를 따라오신 분들도 이 방법으로 진행하시면 됩니다. FTP, Seafile, Transmission 모두 인증서를 받아주세요.

잘 입력하시면 역시 축하해주면서 인증서를 발급해줍니다.

인증서가 잘 받급되었나 보시고 싶으시면 아래 명령어를 입력해주세요.

ls -al /etc/letsencrypt/live/
total 16
drwxrwxrwx 2 root root 4096 Jul 26 16:46 omv.awesometic-test.kro.kr
drwxr-xr-x 2 root root 4096 Jul 27 17:48 seafile.awesometic-test.kro.kr
drwxr-xr-x 2 root root 4096 Jul 27 17:48 transmission.awesometic-test.kro.kr
Bash


2) OMV에 인증서 등록

발급받은 인증서를 OMV 인증 - SSL 메뉴에 등록해주셔야 합니다.

OMV 인증 - SSL 으로 갑시다.

아직 인증서가 하나밖에 없습니다. 왼쪽 위 추가 - 불러오기 를 눌러줍시다.

불러오기 좋은 창이 하나 듭니다. 쉬워요. 복붙만 하시면 됩니다.

Putty로 연결한 터미널에서 아래 명령어를 쳐줍니다. {도메인} 부분에 자신한테 맞는 도메인만 적어주시면 됩니다.

개인 키에는 아래 명령어의 결과를 적습니다. -----BEGIN~ 부터 END CERTIFICATE----- 까지 전부 복사/붙여넣기 하셔야 합니다.

WEBROOT_DOMAIN='{도메인}'
cat /etc/letsencrypt/live/$WEBROOT_DOMAIN/privkey.pem
-----BEGIN PRIVATE KEY-----
MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDjlFCISt815m0f
...
hLCV6C3rlO1rKEF1sqLP0nRBsA==
-----END PRIVATE KEY-----
Bash

인증에는 아래 명령어의 결과를 적습니다.

cat /etc/letsencrypt/live/$WEBROOT_DOMAIN/fullchain.pem
-----BEGIN CERTIFICATE-----
MIIFHzCCBAegAwIBAgISAxT89JsCCNDJ7SvlEAYQ+6fJMA0GCSqGSIb3DQEBCwUA
...
JhXpMMZWNLytB4qjuzd6s5thHA==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIEkjCCA3qgAwIBAgIQCgFBQgAAAVOFc2oLheynCDANBgkqhkiG9w0BAQsFADA/
...
KOqkqm57TH2H3eDJAkSnh6/DNFu0Qg==
-----END CERTIFICATE-----
Bash

설명엔 적절한 설명을 적어줍시다. 전 Let's Encrypt - example.com 이라고 적겠습니다. 물론 example.com 대신 적절한 도메인을 적어주세요.

그럼 이렇게 됩니다.

이렇게 하나씩 넣어주시면 됩니다.. :) 그리고 저장/적용 해주세요.

그리고 Seafile과 Transmission에 적용해보겠습니다.


* Seafile, Transmission에 적용

이런 식으로 인증서들이 준비되었을 겁니다. Seafile 부터 적용해봅시다.

OMV Nginx - 서버 에서 Seafile 부분을 누르신 후 편집 버튼을 눌러줍니다.

SSL 활성화 옵션이 있습니다. 활성화해준 다음 인증에서 Seafile 인증서를 클릭해주세요.

그럼 이렇게 될 겁니다. Only use SSL 을 활성화해주세요.

그리고 밑으로 내려 추가옵션 쪽으로 가 내용을 지우고 아래 내용을 복사/붙여넣기 해줍시다. 마지막에 location ^~ /.well-known... 블럭 안에 root 부분만 자신한테 맞는 경로로 설정해주세요.

proxy_set_header X-Forwarded-For $remote_addr;

location / {
    fastcgi_pass    127.0.0.1:8000;
    fastcgi_param   SCRIPT_FILENAME     $document_root$fastcgi_script_name;
    fastcgi_param   PATH_INFO           $fastcgi_script_name;

    fastcgi_param    SERVER_PROTOCOL        $server_protocol;
    fastcgi_param   QUERY_STRING        $query_string;
    fastcgi_param   REQUEST_METHOD      $request_method;
    fastcgi_param   CONTENT_TYPE        $content_type;
    fastcgi_param   CONTENT_LENGTH      $content_length;
    fastcgi_param    SERVER_ADDR        $server_addr;
    fastcgi_param    SERVER_PORT        $server_port;
    fastcgi_param    SERVER_NAME        $server_name;
    fastcgi_param   REMOTE_ADDR         $remote_addr;
    fastcgi_param   HTTPS               on;
    fastcgi_param   HTTP_SCHEME         https;

    access_log      /var/log/nginx/seahub.access.log;
    error_log       /var/log/nginx/seahub.error.log;
    fastcgi_read_timeout 36000;
    client_max_body_size 0;
}

location /seafhttp {
    rewrite ^/seafhttp(.*)$ $1 break;
    proxy_pass http://127.0.0.1:8082;
    client_max_body_size 0;
    proxy_connect_timeout  36000s;
    proxy_read_timeout  36000s;
    proxy_send_timeout  36000s;
    send_timeout  36000s;
}

location /media {
    root /var/www/seafile/seafile-server-latest/seahub;
}

location ^~ /.well-known/acme-challenge/ {
    root {seafile 임시 디렉토리 경로};
    allow all;
    default_type "text/plain";
}
nginx

이런 식으로 됩니다.

저장 및 적용 해줍니다.

Transmission의 경우 같은 방법으로 하시는데, 추가 옵션을 아래 내용으로 바꿔주시면 됩니다. Only use SSL도 활성화해줍니다. 마지막에 location ^~ /.well-known... 블럭 안에 root 부분만 자신한테 맞는 경로로 설정해주세요.

location / {
    return 301 https://$server_name/transmission/;
}
      
location ^~ /transmission {
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_set_header X-NginX-Proxy true;
    proxy_http_version 1.1;
    proxy_set_header Connection "";
    proxy_pass_header X-Transmission-Session-Id;
    add_header Front-End-Https on;
      
    location /transmission/rpc {
        proxy_pass http://127.0.0.1:9091;
    }
      
    location /transmission/web/ {
        proxy_pass http://127.0.0.1:9091;
    }
      
    location /transmission/upload {
        proxy_pass http://127.0.0.1:9091;
    }
      
    location /transmission/web/style/ {
        alias /usr/share/transmission/web/style/;
    }
      
    location /transmission/web/javascript/ {
        alias /usr/share/transmission/web/javascript/;
    }
      
    location /transmission/web/images/ {
        alias /usr/share/transmission/web/images/;
    }
          
    location /transmission/ {
        return 301 https://$server_name/transmission/web;
    }
}

location ^~ /.well-known/acme-challenge/ {
    root {transmission 임시 디렉토리 경로};
    allow all;
    default_type "text/plain";
}
nginx

그러고 저장 및 적용하시면, 아래처럼 될 겁니다.

새로운 https 도메인으로 접속해봅니다.


Seafile과 Transmission 모두 잘 되네요 :) 모바일에서도 물론 잘 들어가집니다. Seafile은 안드로이드 스마트폰에서 자동 업로드 테스트해본 결과에요.

만약 Seafile 웹사이트에 파일 업로드가 안 될 경우 관리자 설정 - 설정에 가셔서 URL들을 SSL이 적용된 https로 바꿔보세요. 아마 이미 바뀌어 있을 겁니다.


* FTP에 적용

FTP는 Nginx 를 거치는 것이 아니라 더 쉽습니다. 인증서만 임시로 받기 위해 /var/www/ 밑에 디렉토리를 생성하고 OMV Nginx에 ftp 서브도메인에 대해 해당 디렉토리를 사용하도록 서버를 추가한 뒤 발급받아 주시고, OMV SSL 메뉴에 넣고, 마우스 클릭 몇 번과 21번 포트만 오드로이드 NAS로 포트포워딩 되어 있으면 돼요. 간단한거지만 간단하기만 한 절차는 아니네요 :(

윗부분의 내용을 참고해 인증서도 받고, OMV에 불러오기도 하셨다면 OMV FTP 메뉴 - SSL/TLS 탭으로 갑니다.

이렇게 SSL/TLS 활성화 및 인증에 ftp 관련 인증서를 선택해주시고, 저장/적용 하시면 됩니다.

Filezilla로 테스트해보겠습니다.

OMV FTP에서 SSL을 설정하셨으면, 설정한 도메인을 호스트에 넣어줍니다. 그리고 계정은 OMV의 사용자 계정으로 해줍시다.

빠른 연결 버튼을 누르시게 되면,

알 수 없는 인증서라면서 겁을 줍니다. 원래 인증 기관 정보는 클라이언트 프로그램에 저장이 되어 있다더군요, 크롬 등 여러 인터넷 브라우저에선 Let's Encrypt 발급자를 이미 믿고 있는데 Filezilla FTP 클라이언트에선 얘가 믿을 만한 애인 지 모르는 모양입니다.

아무튼 확인을 눌러 넘어갑시다. 그러면,

연결이 되었네요! 파일 주고 받는 것도 잘 됩니다 :)

안드로이드 ES 파일 탐색기에서 FTP 접속하실 땐 주소에 SSL 인증서를 받은 도메인 주소를 넣어주세요. 그러면 인증이 됩니다. ES 파일 탐색기에서 새로 만들기 - FTPS 는 동작하지 않아요. 아래처럼 해주시면 됩니다.



* ipTIME DDNS

참고로 ipTIME DDNS(*.iptime.org)에 대해선 발급을 해주지 않나 봅니다. 된다는 분들도 계시는 것 같은데, 최근에 해보니까 iptime.org 에 대해 너무 많은 요청이 있다는 비슷한 메세지를 뿌리며 발급을 해주질 않네요. 다른 공유기의 DDNS 서비스에 대해선 잘 모르겠습니다. 참고하세요.


출처 : http://awesometic.tistory.com/60?category=964085

Posted by 타카스 류지
|

도메인 적용은 옵션입니다. 꼭 해주시지 않아도 됩니다. 하지만 보안 등의 이유로 SSL을 원하신다면 SSL의 선행과정으로 꼭 하셔야 합니다.

도메인은 IP가 사람이 외우기 어렵기 때문에 탄생했습니다. 네이버도 naver.com 이 아니라 23.42.168.102 라면 매번 접속하는 게 굉장히 불편하겠죠. 그래서 도메인 관리 기관에 naver.com 은 23.42.168.102 라고 저장시켜 놓고 우린 숫자가 아닌 naver.com 을 입력하는 것 만으로도 네이버에 접속할 수 있게 된 겁니다.

우리가 사용하는 오드로이드 NAS도 똑같습니다. 이름이 없으니 집의 공인 IP를 외워서 사용해야 합니다. 가족끼리만 사용한다면 하나만 외우면 되니까, 한 번만 설정해두면 되니까 괜찮긴 합니다만 블로그 호스팅 등 사용자의 범위를 넓힌다면 도메인이 필요하게 됩니다.

또한 SSL을 적용하려면 도메인이 꼭 필요합니다. SSL 인증서를 발급할 때 도메인이 포함된 웹 사이트의 호스트 헤더를 기준으로 발급한다고 합니다. IP로는 발급할 수가 없어요.

도메인이 있다면 서브 도메인을 통해 각종 서비스에 쉽게 접근하실 수 있습니다. 만약 내 도메인이 example.com이고, OMV 관리자 페이지, Seafile, Wordpress을 서브 도메인을 통해 제공한다고 합시다. 그럼 omv.example.com, seafile.example.com, wordpress.example.com 등으로 접근할 수가 있어 IP를 외우지 않아도 돼 편리합니다.

도메인을 얻고, 적용해 보겠습니다.


* DDNS 를 적용하고 싶으신 분은 
2017/08/02 - [오드로이드 XU4/Misc] - NAS에 DDNS 적용하기 - DuckDNS
를 참고하세요!


* 도메인 관련 Nginx 설정에 문제가 있는 것 같으니 가이드를 다시 검토해보겠습니다. 해당 문서를 보시는 분들은 직접 적용하시진 말아주세요! - 누락/오탈자 수정 및 추가 설명 보충했습니다.

* Seafile 관련 문제가 있는 것 같습니다. 적용하지 말아주세요!

* 180309 현재 OMV3 + Nginx 플러그인 조합에 오류가 있습니다! 서버 추가 시 Nginx가 먹통이 되네요. 이 게시글을 참고해주세요: http://awesometic.tistory.com/121




1. 내도메인.한국 에서 도메인 얻기

* 테스트용이므로 바로 도메인을 해지했습니다.

무료로 도메인을 제공해주는 사이트는 많습니다만, 지금은 내도메인.한국이 가장 안정적이고 깔끔하게 무료로 도메인을 제공해주는 것 같습니다. 사이트에 접속해 가입하고, 위의 "도메인 등록" 메뉴를 클릭합니다.

그럼 위의 도메인 검색 화면이 뜹니다. 일반 도메인 검색에 awesometic-test 라고 타이핑해 검색해보니 아래의 도메인들을 등록할 수가 있네요. kro.kr 로 등록해보겠습니다. 마음에 드는 도메인 옆의 파란색 "등록하기" 글자를 누르면 보안코드를 입력하라고 합니다. 보안코드를 입력하면 바로 도메인 발급이 완료됩니다. 

도메인 발급이 완료되면 아래와 같은 설정 페이지가 뜹니다.

여러 가지 옵션이 있지만, 저희는 "고급설정 (DNS)" 에서 "IP연결(A)" 만 사용할 겁니다.

"IP연결(A)" 를 체크해주신 후, 원하는 서브 도메인 이름과 오드로이드 NAS의 외부 IP 주소를 입력합니다.

위 스크린샷과 같이 할 수 있겠죠. 완료되셨으면 보안코드 입력 후 아래 "수정하기" 버튼을 눌러 적용합니다.

이제 사용할 수 있는 서브 도메인 4개가 생겼습니다.

저희는 오드로이드 NAS의 Nginx 를 이용해 도메인 별로 다른 서비스를 제공하도록 할 겁니다. Nginx는 웹 서버, 즉 80번(+ SSL 445번) 포트만 이용하므로 이 작업이 잘 끝나면 FTP의 21, Seafile의 8000, 8082 포트와 Transmission의 9091 포트에 대한 포트포워딩 규칙을 삭제하셔도 됩니다.



2. Nginx에 적용하기

일단 서브 도메인을 사용하게 되면, 모든 접근이 서버의 웹 서버 프로그램으로 몰려야 이 웹 서버 프로그램이 각 서브 도메인 이름별로 나눠줍니다. 때문에 저희는 OMV에서 지원하는 Nginx로 다 몰고, Nginx에서 나눠줍시다.

OMV Nginx 메뉴로 가서, "서버" 탭으로 갑니다.

아무 것도 없을텐데, 위의 "추가" 버튼을 누르면,

이런 대화 상자가 나타납니다. 저희는 Nginx를 통해 Seafile과 Transmission을 제공할 겁니다. FTP 접속은 알아서 21번 포트로 보내주는 것 같습니다. Seafile과 Transmission 은 저희가 웹 사이트를 직접 구축해 연다던가, Wordpress처럼 웹 사이트 소스를 가져와 연다던가 하는 것이 아니기 때문에, 해당 도메인 이름으로 접속하는 정보를 다른 곳에 열려있는 Seafile과 Transmission 으로 넘겨줘야 합니다. Nginx를 프록시 서버로 사용하는 겁니다.

* 기본 서버 활성화는 하지 마세요.

1) Seafile 적용

OMV Nginx 서버 추가에서 호스트 유형을 이름-기반 으로 바꿔 Seafile로 접근하고자 하는 도메인을 입력합니다.

그리고 PHP, Index 항목들을 전부 비활성화하신 뒤 헤더 버퍼 크기를 32K로 맞춰줍시다.

마지막으로 추가 옵션에 아래 내용을 넣습니다.

proxy_set_header X-Forwarded-For $remote_addr;

location / {
    fastcgi_pass    127.0.0.1:8000;
    fastcgi_param   SCRIPT_FILENAME    $document_root$fastcgi_script_name;
    fastcgi_param   PATH_INFO          $fastcgi_script_name;

    fastcgi_param   SERVER_PROTOCOL    $server_protocol;
    fastcgi_param   QUERY_STRING       $query_string;
    fastcgi_param   REQUEST_METHOD     $request_method;
    fastcgi_param   ONTENT_TYPE        $content_type;
    fastcgi_param   CONTENT_LENGTH     $content_length;
    fastcgi_param   SERVER_ADDR        $server_addr;
    fastcgi_param   SERVER_PORT        $server_port;
    fastcgi_param   SERVER_NAME        $server_name;
    fastcgi_param   REMOTE_ADDR        $remote_addr;

    fastcgi_read_timeout 36000;
    client_max_body_size 0;
}

location /seafhttp {
    rewrite ^/seafhttp(.*)$ $1 break;
    proxy_pass http://127.0.0.1:8082;
    client_max_body_size 0;
    proxy_connect_timeout  36000s;
    proxy_read_timeout  36000s;
    proxy_send_timeout  36000s;
    send_timeout  36000s;
}

location /media {
    root /var/www/seafile/seafile-server-latest/seahub;
}
nginx

참고: https://manual.seafile.com/deploy/deploy_with_nginx.html

그리고 SSH 접속을 한 뒤, 아래 명령어를 차례대로 입력해 설정 파일 2개를 수정해줍시다.

아래 명령어에서 100.100.100.100은 포트포워딩된 자신의 외부 IP로, http://seafile.awesometic-tset.kro.kr 부분을 꼭 자신의 도메인에 맞게 수정한 뒤 입력해주세요! 두 줄의 명령어 모두 해당됩니다. 두 번째 줄의 /seafhttp는 지우지 말아주세요.

sed --in-place=.bak 's,http://100.100.100.100:8000,http://seafile.awesometic-test.kro.kr,g' /var/www/seafile/conf/ccnet.conf
echo "FILE_SERVER_ROOT = 'http://seafile.awesometic-test.kro.kr/seafhttp'" >> /var/www/seafile/conf/seahub_settings.py
echo "SERVE_STATIC = False" >> /var/www/seafile/conf/seahub_settings.py
Bash

추가로 자동 시작을 위해 등록했던 서비스를 살짝 고쳐줍니다. 다음 명령어를 입력하시면 됩니다.

sed --in-place=.bak '/ExecStart/,/start/s/start/start-fastcgi/' /etc/systemd/system/seahub.service
systemctl daemon-reload
Bash

* 웹 UI에서 URL을 설정하시면 SSH을 통해 설정한 사항들이 무시됩니다. 훗날 독이 되어 돌아올 것 같으니 Seafile 웹사이트의 설정 페이지에선 URL을 설정하지 마세요. 아마 알아서 바뀌어 있을 건데, 바뀌어있지 않을 경우에만 설정해주세요.


그리고 다시 SSH 접속했던 곳에서

service seafile restart && service seahub restart
Bash

위의 명령어를 통해 서비스를 재시작해주시면 됩니다.


2) Transmission 적용

Transmission에 적용하는 건 더 쉽습니다.

먼저, OMV Nginx 서버 추가에서 호스트 유형을 이름-기반 으로 한 뒤 Transmission에 접근하고자 하는 도메인을 입력합니다.

그리고 PHP, Index 항목들을 전부 비활성화하신 뒤 헤더 버퍼 크기를 32K로 맞춰줍시다.

마지막으로 추가 옵션에 아래 내용을 넣습니다.

location / {
    return 301 http://$server_name/transmission/;
}
      
location ^~ /transmission {
      
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_set_header X-NginX-Proxy true;
    proxy_http_version 1.1;
    proxy_set_header Connection "";
    proxy_pass_header X-Transmission-Session-Id;

    location /transmission/rpc {
        proxy_pass http://127.0.0.1:9091;
    }
      
    location /transmission/web/ {
        proxy_pass http://127.0.0.1:9091;
    }
      
    location /transmission/upload {
        proxy_pass http://127.0.0.1:9091;
    }
      
    location /transmission/web/style/ {
        alias /usr/share/transmission/web/style/;
    }
      
    location /transmission/web/javascript/ {
        alias /usr/share/transmission/web/javascript/;
    }
      
    location /transmission/web/images/ {
       alias /usr/share/transmission/web/images/;
    }
      
    location /transmission/ {
       return 301 http://$server_name/transmission/web;
    }
}
nginx

참고: https://gist.github.com/Belphemur/47f76c40defef0269615


3. 테스트

Seafile과 Transmission에 각 도메인으로 접속해보세요.

그리고, 안드로이드 스마트폰에 설정된 Seafile과 Transmission도 포트포워딩 후 외부 IP로 수정했을 때처럼 주소를 도메인으로 바꾼 후 테스트해보세요.


4. 포트포워딩 해제

이제 80번 포트로 모든 접속이 몰리니 Seafile과 Transmission에 대한 포트포워딩 설정을 해제하셔도 좋습니다. :) 


* 도메인을 얻으셨으면 이제 SSL 인증서도 발급받아 더욱 안전하게 사용하실 수 있습니다. 다음 포스팅에서 진행됩니다.

출처 : http://awesometic.tistory.com/59?category=964085

Posted by 타카스 류지
|

ODROID에 Ubuntu MATE를 처음 설치했을 때 가장 짜증나는 부분이 있다.

바로 부팅시마다 발생되는 로그인 메세지인데, 매 번 해주어야 해서 엄청나게 귀찮다.

귀찮은 일을 하나 줄여보자.


먼저 해당 명령어를 입력하여 conf 파일을 수정하자

$ sudo nano /usr/share/lightdm/lightdm.conf.d/60-lightdm-gtk-greeter.conf



Nano Editor가 실행되면서 간단한 명령어들이 입력되어 있다.

이를 다음과 같이 추가 혹은 수정해주자.

사용자의 이름을 “autologin-user=이름”과 같이 입력해주면 된다.

나의 경우에는 autologin-user=odroid로 입력해주었다.


[SeatDefaults]

greeter-session=lightdm-gtk-greeter

autologin-user=odroid



입력을 완료했다면 Ctrl + x 후에 y, Enter

정상적으로 변경되었을 것이다.

재부팅하면 짜증이 하나 줄게 된 걸 확인할 수 있다.


출처: http://minus-build.tistory.com/17 [It's Not My Business]




추가 한줄 명령 : echo "autologin-user=odroid" | sudo tee -a /usr/share/lightdm/lightdm.conf.d/60-lightdm-gtk-greeter.conf


Posted by 타카스 류지
|

오드로이드 여러 곳을 들리면서 필요한 패키지등을 설치해보면서 정리해둔 내용 입니다.

참고만 하세욤 0-0

저는 mate 버전으로 설치해서 사용했습니다.


#########################################################################

# Defalut for Odroid                                                     

# https://dn.odroid.com/5422/ODROID-XU3/Ubuntu/ubuntu-16.04.3-4.9-mate-odroid-xu4-20171025.img.xz

# 오드로이드 초기 셋팅 mate-odroid-xu4

# 작업 계정 [root]

# 포트확인 netstat -tnlp

#########################################################################



# ■■■ 오류 덩어리 파이어 폭스 삭제


apt-get purge firefox* -y && apt-get autoremove -y


# ■■■ 전체 업데이트 && 의존성 검사하여 업그레이드


apt-get update && apt-get dist-upgrade -y


# ■■■ 완료 후 재부팅


reboot


# ■■■ 한글 셋팅


apt-get install language-pack-ko-base -y


update-locale LANG=ko_KR.UTF-8

echo 'LANG="ko_KR.UTF-8"' | sudo tee -a /etc/environment

echo 'LANGUAGE="ko_KR:ko:en_US:en"' | sudo tee -a /etc/environment

echo "TZ='Asia/Seoul'; export TZ" | sudo tee -a ~/.profile

echo "TZ='Asia/Seoul'; export TZ" | sudo tee -a /etc/skel/.profile


dpkg-reconfigure tzdata

Asia/Seoul 설정



# ■■■ 계정 추가


adduser [ID]


# ■■■ 관리자 권한 부여


usermod -G sudo [ID]


# ■■■ SSH root 접근 제한


nano /etc/ssh/sshd_config


PermitRootLogin yes -> no


service sshd restart





# ■■■ 외장 하드 마운팅



외장하드가 ntfs로 설정된 경우 ntfs 인식을 위해 ntfs-3g 설치

sudo apt-get install ntfs-3g


※ 참고로 파일시스템을 exfat을 쓰려면 아래와 같이 설치

sudo apt-get install exfat-fuse



mkdir /media/exHDD


chmod -R 777 /media/exHDD


blkid


/dev/sda5: UUID="01D395B80CF091D0" TYPE="ntfs" PARTUUID="04f839f0-05"


nano /etc/fstab


기본으로 할시 외장하드가 연결되어있지 안으면 부팅 에러 걸림

UUID=01D395B80CF091D0 /media/exHDD ntfs defaults 0 0


권장 내용

UUID=01D395B80CF091D0 /media/exHDD ntfs nofail,auto,noatime,rw,user 0 0





# ■■■ 웹서버 설치 [순서대로]


apt-get install apache2 mysql-server   <-- mysql 패스워드 설정화면 뜹니다.


add-apt-repository ppa:ondrej/php

apt-get update

apt-get install php5.6 php5.6-common php5.6-json libapache2-mod-php5.6 php5.6-curl php5.6-gd php5.6-mbstring php5.6-mcrypt php5.6-mysql php5.6-xml php5.6-xmlrpc php5.6-intl php5.6-imagick php5.6-zip php5.6-cgi

a2enmod php5.6

systemctl restart apache2





※ proxy 설정
경로
cd /etc/apache2/sites-available

nano vhost.conf

#기본 호스트 지정
<VirtualHost *:80>
ServerName 도메인
ServerAlias 도메인
DocumentRoot /var/www/html <- 도메인별 특정경로 지정 가능
</VirtualHost>

#프록시로 내부 포트 포워딩이 가능
#sub.도메인.kr 로 내부 포트 지정시 url 엔 도메인만 기준으로 표시됨
#트렌스미션 설치하고 접속시 셋팅법
<VirtualHost *:80>
    ProxyPreserveHost On
    ProxyRequests Off
    ServerName torrent.도메인.kr
    ServerAlias torrent.도메인.kr
    ProxyPass / http://127.0.0.1:9091/ retry=1 acquire=3000 timeout=600 Keepalive=On
    ProxyPassReverse / http://127.0.0.1:9091/
</VirtualHost>

파일 저장후 하단 내용 실행


a2enmod proxy

a2enmod proxy_http

a2enmod proxy_balancer

a2enmod lbmethod_byrequests

a2ensite vhost.conf



위처럼 proxy 설정을 하면 사용하면


http://IP:9091 로 접속을 안하고


http://torrent.도메인.kr 로 접속이 가능





# ■■■ webmin 설치(웹 관리 콘솔)


wget -O - http://www.webmin.com/jcameron-key.asc | apt-key add -

이나

wget http://www.webmin.com/jcameron-key.asc

apt-key add jcameron-key.asc


echo "deb http://download.webmin.com/download/repository sarge contrib" | sudo tee -a /etc/apt/sources.list

echo "deb http://webmin.mirror.somersettechsolutions.co.uk/repository sarge contrib" | sudo tee -a /etc/apt/sources.list

apt-get update

apt-get install webmin


nano /etc/apt/sources.list

위 추가한 2줄 주석


# webmin의 기본 Port가 10000이라서 ufw(우분투 방화벽)를 이용하여 10000번 포트를 열어줍니다.

# sudo ufw allow 10000 

# nano /etc/webmin/miniserv.conf

# port=10000

# //이하 라인은 생략


service webmin {start, stop, restart}


※ 한글 오류 수정

nano /usr/share/webmin/cron/module.info

or

nano /usr/share/webmin/cron/module.info.ko_KR.UTF-8


desc_ko_KR.UTF-8=예약된 Cron 작업 <-- 한글깨져있는 부분 수정


https://localhost:10000





# ■■■ SAMBA 설치(네트워크 공유)


apt-get install samba && samba-common-bin


※ samba 계정 지정[리눅스에 있는 계정만 추가 가능]

smbpasswd -a [ID]


나머지 설정은 webmin 에서 하는게 편함




# ■■■ 토렌트 설치 transmission-daemon


apt-get install transmission-daemon


정지

/etc/init.d/transmission-daemon stop


설정

nano /etc/transmission-daemon/settings.json


※중요한 부분


블랙 리스트
"blocklist-enabled": true, 
"blocklist-url": "http://list.iblocklist.com/?list=bt_level1&fileformat=p2p&archiveformat=gz", 

다운로드 경로
"download-dir": "/media/exHDD/contents/Downloads", 

웹 활성화
"rpc-enabled": true, 

접근 화이트 리스트 끄기
"rpc-whitelist-enabled": false,
"rpc-username": "아이디", 
"rpc-password": "암호[자동암호화]",

다운로드 완료시 배포안하고 완료 처리
"ratio-limit": 0, 
"ratio-limit-enabled": true, 



다운로드 완료시 응답 스크립트

"script-torrent-done-enabled": true, 

"script-torrent-done-filename": "/home/root/script/torrent_push.sh", 


위 응답 스크립트는 밑에 게시글 참조

2017/12/26 - [라즈베리파이3] - API 텔레그램 토큰 생성

2017/12/27 - [라즈베리파이3] - 라즈베리파이3 transmission (텔레그램 API 연동)


다운로드 업로드 속도 설정

"speed-limit-down": 6000, 

"speed-limit-down-enabled": true, 

"speed-limit-up": 100, 

"speed-limit-up-enabled": true, 


다운로드 파일 권한 설정 

"umask": 2, 



시작
/etc/init.d/transmission-daemon start


서비스 등록
update-rc.d transmission-daemon defaults

시작
service transmission-daemon start


서비스를 등록하고 나중에 토렌트가 죽어있어 다시 시작하려고 할때 구동이 안되는 경우가 생깁니다.
이유는 못찾구요 -0- ;;; 실행방법만 다른데서 찾아서 올립니다.


나중에 구동시 에러가 나면 프로세스 죽이기
kill $(ps -ef | grep 'transmission-daemon -g /etc/transmission-daemon' | grep root |awk '/transmission-daemon/ {print $2}')

구동
transmission-daemon -g /etc/transmission-daemon






# ■■■ TvHeadEnd 설치


apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 379CE192D401AB61 

apt-add-repository ppa:mamarley/tvheadend-git-stable

apt-get update

apt-get install tvheadend


관리자 계정 패스워드 설정화면 출력 설정후 설치완료


http://localhost:9981


접속후 로그인하고 언어 Korean 으로 설정후 저장 닫기


계정 새로 추가하여 전체 권한을 다 부여하면은

한글 계정으로 전체 관리가 가능함..


1. 설정 - DVB 입력 - 네트워크

  네트워크 이름 : IPTV Automatic Network

  최대 # 입력 스트림 : 4

  URL : file:///home/root/pvr/iptv.m3u


2. 설정 - DVB 입력 - 먹스

  스캔상태가 유휴는 작업이 끝난 상태 

  진행 - 활성 - 유후 순

  헤더 오른쪽 서비스 구간 0 으로 되어있는 항목들을 정렬하여

  오른쪽 체크박스 TSID 값을 체크

  스캔상태를 활성으로 변경 - 저장

3. 설정 - 채널 / EPG - 채널

  모든 서비스 매핑

4. 설정 - 채널 / EPG - EPG 그래버

  채널 이름 업데이트 체크

  채널 번호 업데이트 체크

  저장

5. 설정 - 채널 / EPG - EPG 그래버 모듈

  외부 : XMLTV - 켜짐 체크, 우선순위 1, 채널번호(휴리스틱) 체크

  저장



※ tvheadend 등록한 채널 백업 후 이용시 권한 설정


백업폴더경로 /home/hts/.hts/tvheadend/

백업 폴더 : channel, epggrab, input


chown -R hts:video /home/hts/.hts/tvheadend/channel

chmod -R 700 /home/hts/.hts/tvheadend/channel

chmod -f 600 /home/hts/.hts/tvheadend/channel/*


chown -R hts:video /home/hts/.hts/tvheadend/epggrab

chmod -R 700 /home/hts/.hts/tvheadend/epggrab

chmod -Rf 600 /home/hts/.hts/tvheadend/epggrab/*

chmod -f 777 /home/hts/.hts/tvheadend/epggrab/xmltv.sock


chown -R hts:video /home/hts/.hts/tvheadend/input

chmod -R 700 /home/hts/.hts/tvheadend/input

chmod -Rf 600 /home/hts/.hts/tvheadend/input/*


재시작

service tvheadend restart







※ tvheadend 로 녹화가 완료된다음 인코딩 처리하는 부분 입니다.  속도는 느립니다. ㅎㄷㄷ

인코딩을 하실려면 x264, ffmpeg 설치가 되어있어야 합니다.

install-ffmpeg.sh


위 스크립트는 root 계정으로 실행하세요.

아마 30분 정도는 걸린걸로 기억합니다.


인코딩 스크립트 출처 : http://3jini.tistory.com/104


autoencoding.sh

autoencoding720mp4.sh


※ 녹화 설정
설정 - 녹화 - 디지털 비디오 녹화 프로필  화면으로 들어가면
(Default profile) 로 기본 프로필이 있습니다.
여기다가 하셔도되고 새로 추가하셔서 하셔도 됩니다.

녹화 전 여유 시간 : 2분
녹화 후 여유 시간 : 2분
후처리 명령 : /home/root/script/autoencoding720mp4.sh  "%f" "%b"
녹화할 시스템 경로입니다. : /media/exHDD/recording
문자 포맷 : $t/$t.E$e.%Y.%m.%d$-c%F.$n$x

------------------------- 부가 설명 -------------------------------
    autoencoding.sh 파일 수정할 내용
    5행     : TRANSCODEPATH='/media/exHDD/TVheadendRec/' - 녹화 된 파일 경로
    8행     : MKVVIDEO=$TRANSCODEPATH$title".H264.1080P.mkv" - ".H264.1080P.mkv"  원하는데로
              보통 mkv 확장자 형태, mp4, avi 등 사용 가능
    20행  : ffmpeg 

적당한 곳에 저장하고 터미널에서 실행권한 부여
    예) 메인저장소>Downloads폴더에 두었을 경우…
chmod +x /home/root/script/autoencoding.sh

tvheadend에서 Post-Processor Command(후처리 명령)이라고 있는 곳에 
    저장한 파일의 경로와 %f %b를 붙여주고 저장
    TVHeanend 설정>녹화중>디지털 비디오 녹화 프로필
    후처리 명령 할 autoencoding.sh 파일을 경로 포함해서 지정하고 "%f" "%b"를 붙임.
    /home/root/script/autoencoding.sh "%f" "%b" 스크립트가 있는 경로

    전체경로 이름지정 : 문자포멧 $t/$t.E$e.%Y.%m.%d.$n$x

    녹화할 시스템 경로 이 부분에는 녹화파일이 저장될 폴더를 지정
    /media/exHDD/TVheadendRec/
   파일 이름 옵션 에서는 윈도우 호환 파일 이름 사용, 날짜를 파일 이름에 포함 2개 항목에 체크
------------------------- 부가 설명 -------------------------------






# ■■■ Plex Server 설치

wget -O - https://dev2day.de/pms/dev2day-pms.gpg.key | apt-key add -
이나
wget https://dev2day.de/pms/dev2day-pms.gpg.key
apt-key add dev2day-pms.gpg.key

echo "deb https://dev2day.de/pms/ jessie main" >> /etc/apt/sources.list
apt-get install apt-transport-https
apt-get update
apt-get install plexmediaserver-installer

nano /etc/apt/sources.list
위 추가한 1줄 주석


※ 국내 메타 데이터 설정

영화&드라마
https://github.com/axfree/DaumMovie.bundle
이나
https://github.com/hojel/DaumMovie.bundle

음악
https://github.com/hojel/NaverMusic.bundle


다운 받고
압축 파일을 /var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Plug-ins 풀어줌

영화&드라마
wget https://github.com/axfree/DaumMovie.bundle/archive/master.zip
mv master.zip DaumMovie.bundle.zip
unzip DaumMovie.bundle.zip -d /var/lib/plexmediaserver/Library/Application\ Support/Plex\ Media\ Server/Plug-ins/
음악
wget https://github.com/hojel/NaverMusic.bundle/archive/master.zip
mv master.zip NaverMusic.bundle.zip
unzip NaverMusic.bundle.zip -d /var/lib/plexmediaserver/Library/Application\ Support/Plex\ Media\ Server/Plug-ins/


이동
cd /var/lib/plexmediaserver/Library/Application\ Support/Plex\ Media\ Server/Plug-ins/

폴더 이름 변경

mv DaumMovie.bundle-master DaumMovie.bundle
mv NaverMusic.bundle-master NaverMusic.bundle

chown -R plex:nogroup DaumMovie.bundle
chown -R plex:nogroup NaverMusic.bundle

이나

chown -R plex:plex DaumMovie.bundle
chown -R plex:plex NaverMusic.bundle

service plexmediaserver restart

http://localhost:32400




# ■■■ Kodi 

자동실행 설정

nano /etc/rc.local

'fi' 와 'exit 0' 사이에 kodi & 입력 저장

mate-odroid-xu4 버전은 kodi 가 기본 설치 되어있음

애드온 플러그인 설치
https://github.com/hojel/xbmc-korea-addons
https://github.com/hojel/xbmc-korea-addons/archive/master.zip


파일을 다운 받아서 

kodi 에서 애드온 에서 설치하면됨






# ■■■ 예약작업 크론텝


crontab -e


# Edit this file to introduce tasks to be run by cron.

#TvHeadEnd

#0 4 * * * php /home/root/pvr/epg2xml.php

3 */12 * * * php /home/root/pvr/epg2xml.php



가끔 tvheadend 가 죽더라구요 그래서 자동 실행되게 넣어둔겁니다. 0-0

#TvHeadEnd Auto Start  

*/1 * * * * /home/root/script/tvheadend.sh


도메인 구입후 dnszi 에서 관리를 합니다. IP 자동 갱신 스크립트 합니다. ddclient 같은 개념이라 보시면 되겠네요

#dnszi.com domain ddns client

*/5 * * * * wget -q -O - '내용'













# ■■■■■■■■■■■■ 기본 명령어 ■■■■■■■■■■■■■■■ 

사용하면서 명령어가 가끔 기억안날때 봅니다. 0-0참고 하시면 괜찬아요



종료

shutdown -r now


재부팅

sudo reboot


시작

sudo /etc/init.d/ddclient start


스톱

sudo /etc/init.d/ddclient stop


재시작

sudo /etc/init.d/ddclient restart


디버그 테스트

sudo /usr/sbin/ddclient -daemon=300 -debug -verbose -noquiet


프로세스 킬

ps -ax or ps ax |grep ddclient

sudo kill -9 PID


패키지 설정 파일까지 삭제

sudo apt-get purge ddclient


패키지 목록을 갱신합니다.

apt-get update


모든 패키지를 최신 버전으로 업그레이드합니다.

apt-get upgrade


의존성 검사하여 업그레이드 합니다.

apt-get dist-upgrade -y


ddclient 패키지를 설치합니다.

apt-get install ddclient


ddclient 패키지를 재설치합니다.

apt-get --reinstall install ddclient


ddclient 패키지를 삭제합니다. 설정파일은 삭제하지 않습니다.

apt-get remove ddclient


ddclient 패키지를 삭제합니다. remove와 다르게 설정파일도 삭제합니다.

apt-get purge ddclient


패키지 검색은 apt-cache로 합니다.

ddclient를 포함한 패키지를 검색하려면 

apt-cache search ddclient




★퍼미션 권한


-$ sudo chmod [변경될 퍼미션값] [변경할 파일]


-$ sudo chmod 777 /home/pi/파일

-$ sudo chmod -R 777 /home/pi/디렉토리

-$ sudo chmod -R 777 conory /home/pi/디렉토리 

 ※conory - 디렉토리의 하위에 위치한 모든 파일및 디렉토리 퍼미션이 777로 변경




★소유자 변경하기


-$ chown [변경할 소유자] [변경할 파일,디렉토리]


-$ sudo chown pi /var/www


★그룹 변경하기


-$ chown [변경할 소유자] [변경할 파일,디렉토리]


-$ sudo chgrp pi /var/www



★소유자,그룹 변경하기


-$ chown [변경할 소유자]:[변경할 그룹] [변경할 파일,디렉토리]


-$ sudo chown pi:pi /var/www



-R 옵션을 사용하면 디렉토리와 그 안에 들어있는 모든 파일의 사용자를 변경한다.


-$ sudo chown -R pi /var/www





 ※파일 스크립트 실행권한 주기

-$ sudo chmod a+x /usr/script/torrent_push.sh

-$ sudo chmod 777 /usr/script/torrent_push.sh



★ 압축하기

tar cfvz 파일명.tgz 폴더경로/

tar cfvj 파일명.bz2 폴더경로



확장자 tar

tar -cvf [파일명.tar] [폴더명] 압축

tar -xvf [파일명.tar] -C 폴더경로 해제


확장자 tar.gz 

 tar -zcvf [파일명.tar.gz] [폴더명] 압축

 tar -zxvf [파일명.tar.gz] -C 폴더경로 해제



tar -cfvj [파일명.bz2] [폴더명] 압축

tar -xfvj 파일명.bz2 -C 폴더경로 해제



 -c 파일을 tar로 묶음

 -p 파일 권한을 저장

 -v 묶거나 파일을 풀 때 과정을 화면으로 출력

 -f 파일 이름을 지정

 -C 경로를 지정

 -x tar 압축을 풂

 -z gzip으로 압축하거나 해제함


# ■■■ 포트 확인


netstat -tnlp



Posted by 타카스 류지
|

출처 :  https://x86.co.kr/nas/1400182


Tvheadend 로 녹화후 자동 인코딩을 처리하는내용 입니다.


스크립트 파일은 위 해당 출처에서 받으시기 바랍니다.


여기에는 중요한 부분만 기록해둔것입니다.


---------------------------------------------------------------------------------------


    autoencoding.sh 파일 수정할 내용

    5행     : TRANSCODEPATH='/media/exHDD/TVheadendRec/' - 녹화 된 파일 경로

    8행     : MKVVIDEO=$TRANSCODEPATH$title".H264.1080P.mkv" - ".H264.1080P.mkv"  원하는데로

              보통 mkv 확장자 형태, mp4, avi 등 사용 가능

    20행  : ffmpeg 


적당한 곳에 저장하고 터미널에서 실행권한 부여

    예) 메인저장소>Downloads폴더에 두었을 경우…

chmod +x /home/root/script/autoencoding.sh


tvheadend에서 Post-Processor Command(후처리 명령)이라고 있는 곳에 

    저장한 파일의 경로와 %f %b를 붙여주고 저장

    TVHeanend 설정>녹화중>디지털 비디오 녹화 프로필

    후처리 명령 할 autoencoding.sh 파일을 경로 포함해서 지정하고 “%f” “%b”를 붙임.

    /home/root/script/autoencoding.sh “%f” “%b” 스크립트가 있는 경로

    녹화할 시스템 경로 이 부분에는 녹화파일이 저장될 폴더를 지정

    /media/exHDD/TVheadendRec/

   파일 이름 옵션 에서는 윈도우 호환 파일 이름 사용, 날짜를 파일 이름에 포함 2개 항목에 체크

Posted by 타카스 류지
|


외장하드가 ntfs로 설정된 경우 ntfs 인식을 위해 ntfs-3g 설치

-$ sudo apt-get install ntfs-3g


※ 참고로 파일시스템을 exfat을 쓰려면 아래와 같이 설치

-$ sudo apt-get install exfat-fuse



폴더 생성

mkdir /media/externalHdd


권한설정

chmod -R 777 /media/externalHdd


UUID 를 알아야 합니다. 

-$ blkid


/dev/mmcblk1: PTUUID="3cedfd53" PTTYPE="dos"

/dev/mmcblk1p1: SEC_TYPE="msdos" LABEL="boot" UUID="52AA-6867" TYPE="vfat" PARTUUID="3cedfd53-01"

/dev/mmcblk1p2: LABEL="rootfs" UUID="e139ce78-9841-40fe-8823-96a304a09859" TYPE="ext4" PARTUUID="3cedfd53-02"

/dev/sda5: UUID="01D395B80CF091D0" TYPE="ntfs" PARTUUID="04f839f0-05"



위 빨간 색을 사용할 겁니다.


nano /etc/fstab


맨 밑줄이 아래 내용 추가

UUID="01D395B80CF091D0" /media/externalHdd ntfs defaults 0 0


위 처럼 사용시 외장하드가 분리가 되면 부팅이 안되는 현상이 생김

그래서 아래 처럼 수정 하고 부팅시 외장하드가 분리되어있어도 문제 없이 부팅이 됩니다.

UUID="01D395B80CF091D0" /media/externalHdd ntfs nofail,auto,noatime,rw,user 0 0



Posted by 타카스 류지
|

사용 버전 ; https://dn.odroid.com/5422/ODROID-XU3/Ubuntu/ubuntu-16.04.3-4.9-minimal-odroid-xu4-20170824.img.xz


오드로이드를 사고나서 웹서버 설치를 할려는데 PHP 가 문제가 발생...


문제점은 16.04 이전 버전에서는 php5 가 잘 설치되지만 16.04 버전부터 php7 을 지원해서


기본 설치시 apt-get install php 로 설치를 해야됨


하지만 저는 5버전을 사용해야기에 좀 찾아봤습니다.



먼저 apache2 + mysql 설치


-$ apt-get install apache2 mysql-server


설치중 mysql 패스워드를 입력하라고 뜨면 입력



-$ add-apt-repository ppa:ondrej/php

-$ apt-get update

-$ apt-get install php5.6 php5.6-common php5.6-json libapache2-mod-php5.6 php5.6-curl php5.6-gd php5.6-mbstring php5.6-mcrypt php5.6-mysql php5.6-xml php5.6-xmlrpc php5.6-intl php5.6-imagick php5.6-zip php5.6-cgi

-$ a2dismod php7.0  <--  php 처음 설치자는 안해도됨(안깔려있으니까요)

-$ a2enmod php5.6

-$ systemctl restart apache2



완료

Posted by 타카스 류지
|


apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 379CE192D401AB61 


Ubuntu PPA 설치 법

apt-add-repository ppa:mamarley/tvheadend-git-stable


apt-get update

apt-get install tvheadend


http://IP:9981



Posted by 타카스 류지
|

NAS에는 굉장히 많은 활용 방법이 있지만, 무엇보다 가장 와닿는 것 중 하나는 DLNA가 아닐까 생각합니다. 

DLNA의 원래 의미는 그냥 소니가 만든 비영리 단체같습니다. Digital Living Network Alliance 거든요. 디지털 가전 네트워크 단체 뭐 이런 의미인가요? 집 안의 디지털 가전 기기들을 네트워크로 연결시키는데 표준이나 규약 등을 제시/제공하는 비영리 단체라고 볼 수 있겠네요.

실제로 DLNA에서 활동하는 여러 어마어마한 기업들도 많아서, 많은 기업들이 다같이 꾸려나가는 느낌입니다. 내 컴퓨터에 있는 미디어를 집 안의 재생가능한 모든 기기에서 볼 수 있다는 거에요. Web, FTP, WebDAV같은 방법이 아니라, 목적이 뚜렷한 거죠. 

막 생기기 시작했을 땐 회사마다도 프로토콜이 중구난방이었던 것 같지만, 지금은 어느 정도 통일이 된 느낌이라고 하네요. 기성 NAS 회사(시놀로지, ipTIME, WD, Qnap 등등)에서도 전부 기본적으로 제공하는 서비스입니다.

자작 NAS에서도 가능합니다. 오히려 기성 NAS가 제공하는 것보다 더 좋을 수 있어요. 써드 파티 프로그램의 매력이죠. Serviio를 이용해 거실 TV로 영화 한 편 때리러 갑시다.


* 사실 Plex Media Server를 설치하셨으면 이미 DLNA를 사용하실 수 있습니다. 트랜스코딩도 되구요(Serviio도 되지만..). 그러나 제 오드로이드 NAS에선 Plex DLNA로 미디어를 돌리는 게 한계가 있더라구요. 1080p 이면서도 비트레이트가 10000 단위를 넘어가는 굉장히 좋은 화질의 영상은 종종 끊깁니다. 720p는 부드러워요. 하지만 Serviio는 모두 다 부드럽게 돌아갑니다. 참고하세요.




0. SSH 접속 필수

모든 건 터미널 환경에서 이뤄집니다. 오드로이드에서도 OMV나 Ubuntu나 상관이 없어요. 그래서 SSH 연결이 필수이고, 기본적인 지식은 갖고 가셔야 합니다.

리눅스에 대해서 잘 모르시는 분들은 2017/08/01 - [오드로이드 XU4/Misc] - NAS 기본 지식 - 리눅스

다만 OMV, Ubuntu 같은 Debian 계열에서만 설명을 드리도록 하겠습니다. CentOS, Fedora 들에서도 큰 차이는 없을 거에요.

SSH 로 접속하고 진행합니다. 전체적인 가이드는 Serviio Wiki 를 따릅니다.



1. Serviio

1) 설치

먼저 Serviio를 설치해봅시다. Serviio는 개인 저장소(PPA)로 제공되지 않습니다. wget으로 다운 받아다가 압축 풀고 그래야 해요. 조금 귀찮지만, 금방 합니다. 

아래 명령어를 통해 Serviio 를 다운받겠습니다.

먼저 필수 패키지들을 설치합니다. Plex 등을 사용하신다면 이미 설치가 되어 있을 수 있습니다.

# OMV(Debian)에서 자바를 설치하기 위해 저장소를 추가하는 작업입니다.
echo "deb http://ppa.launchpad.net/webupd8team/java/ubuntu xenial main" | tee /etc/apt/sources.list.d/webupd8team-java.list
echo "deb-src http://ppa.launchpad.net/webupd8team/java/ubuntu xenial main" | tee -a /etc/apt/sources.list.d/webupd8team-java.list
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys EEA14886

# Ubuntu를 쓰시는 분들은
add-apt-repository ppa:webupd8team/java

# 그리고 필수 패키지들을 설치합니다.
apt-get update && apt-get install -y ffmpeg dcraw oracle-java8-installer oracle-java8-set-default
Bash

그리고 Serviio에서 제시하는 방법으로 쭉 설치를 해줍니다. 지금 버전에 맞게 조금 바꿨습니다.

useradd -r -s /bin/false serviio
mkdir -p /opt
cd /opt
wget http://download.serviio.org/releases/serviio-1.9-linux.tar.gz
tar zxvf serviio-1.9-linux.tar.gz
rm serviio-1.9-linux.tar.gz
ln -s serviio-1.9 serviio
chown -R root:root serviio-1.9
cd serviio-1.9
mkdir log
chown -R serviio:serviio library log
Bash

Serviio를 서비스로 등록해 NAS가 재부팅이 되더라도 자동으로 시작하게끔 해줍시다. 새로운 파일을 만듭시다. 리눅스에서 텍스트 에디터를 처음 사용하시는 분들은 nano를 사용해주세요.

# vi /etc/systemd/system/serviio.service
nano /etc/systemd/system/serviio.service
Bash

화면이 바뀌면 아래 내용을 복붙합니다.

[Unit]
Description=Serviio Media Server
After=syslog.target local-fs.target network.target

[Service]
Type=simple
User=serviio
Group=serviio
ExecStart=/opt/serviio/bin/serviio.sh
ExecStop=/opt/serviio/bin/serviio.sh -stop
KillMode=none
Restart=on-abort

[Install]
WantedBy=multi-user.target
Bash

CTRL + x, y, [엔터] 를 순서대로 누릅니다.

새로 만든 서비스가 제대로 동작하도록 시스템에 등록합니다.

systemctl daemon-reload
systemctl enable serviio
service serviio start
Bash

설치가 완료되었습니다 :)


2) 미디어 설정

Serviio 도 웹에서 설정을 만지작하실 수 있습니다. NAS IP를 아신다면 웹에서

http://{NAS IP}:23423/console

로 접속해보세요. 그럼,

이런 화면이 뜹니다. 아주 설치가 잘 되신 겁니다. PRO 버전이고 2주 뒤 만료라는데 상관 없습니다. 공짜로도 너무 서비스가 좋아요.

아무튼 미디어를 추가하기 위해 Library - Shared folders 메뉴로 가보겠습니다.

벌써부터 뭔가 될 것 같습니다. 여기서 가운데 Add 버튼을 눌러줍시다.

새로운 폴더를 추가할 수 있게 바뀝니다. 추가해봅시다. 미디어 파일 경로만 간단하게 추가해주는 겁니다.

Browse 버튼을 눌러 미디어 폴더를 탐색합시다.

찾았어요.

선택하신 뒤 아래 OK버튼을 누르고, 또 빨간 OK버튼을 누르시면,

추가한 경로가 위에 보이고 아래엔 빨간 Save 버튼이 있습니다. 누릅시다. 

끝났습니다.


3) 활용

TV를 카메라로 찍고 이렇게 보여드리는 건 좀 그래서, Serviio PRO 판에서만 지원하는 MediaBrowser를 통해 확인해보겠습니다. 스마트폰이나 DLNA를 지원하는 TV 등에서도 같은 공유기에 물려있다면 전부 잘 될 거에요.

먼저 Remote 메뉴에서 암호를 적절히 설정하신 뒤 MediaBrowser로 갑니다.

로그인하면,

음악, 사진, 영상 중에서 고르래요. 영상이 들어있는 경로를 설정했으니 가봅시다.

Folders로 가볼게요, 전 폴더로 정리하는 타입이라 :)

잘 나오네요 :) 눌러보니 재생도 잘 됩니다.

TV 등에서도 이런 형식으로 들어가서 영상을 선택하실 겁니다 :)

Serviio console 에서 보셨듯 여러가지 설정이 있으니 입맛대로 설정해서 사용하세요.


출처 : http://awesometic.tistory.com/19?category=964086

Posted by 타카스 류지
|

웹 접속 보안은 SSL이 최곱니다. SSL 인증서는 보통 무료로 받기 어려운 점이 있었는데, LetsEncrypt 는 무료로 굉장히 쉽게 발급받고 갱신할 수 있도록 해줍니다. 바로 적용하러 갑시다.


 170505 h5ai에 SSL 적용 시 스트리밍에 문제가 생기네요. 첫 영상은 부드럽게 켜지는데 두 번째부턴 잘 안 되는 문제입니다. 스트리밍에 대한 SSL 설정 관련 문제인 것 같은데, 알아보고 해결책을 찾으면 업데이트하도록 하겠습니다.




1. Certbot 설치

 리눅스 패키지용 LetsEncrypt는 Certbot입니다. 저장소를 추가하고, 설치합니다.

sudo add-apt-repository ppa:certbot/certbot
sudo apt-get update && sudo apt-get install certbot


2. Nginx 설정 변경

 SSL 인증서를 얻기 위해 Nginx 설정을 변경해줘야 합니다. 인증서를 얻을 때 도메인을 적는데, Certbot에서 해당 도메인에 해당하는 서버 내 디렉토리에 특정 파일을 만들고 외부에서 접근해 봄으로써 유효한 주소인 지 판단하는 거라고 합니다. Nginx에서 적절한 설정을 넣어주지 않으면 해당 작업이 불가능하니, SSL 접속이 필요한 각 사이트 설정 파일마다 추가해줍니다. 

sudo vi /etc/nginx/sites-available/wordpress

 server 블록이 끝나기 전 아래 내용을 추가해줍니다.

location ~ /.well-known {
    allow all;
}
nginx

 참고로 이전 포스팅에서 nas 페이지 접근 제어를 위해 .htpasswd를 적용하셨던 분들은, 꼭 설정 파일에서 해당 부분 앞에 주석(#) 표시를 해주세요.

 그리고 Nginx 를 다시 로드합니다.

sudo service nginx reload


3. SSL 인증서 얻기

 Certbot을 통해 SSL 인증서를 얻기 위해선 다음 명령어가 필요합니다.

sudo certbot certonly --webroot -w {디렉토리} -d {도메인}

 해당 코드를 기반으로 수정하시면 됩니다. 디렉토리에 해당하는 도메인을 적어주셔야 합니다.

 이메일과 약관 동의를 묻고, 다 대답했다면 아래 느낌으로 완료됐다고 합니다.

:~$ sudo certbot certonly --webroot -w /var/www/html/wordpress -d blog.awesometic.kro.kr
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Starting new HTTPS connection (1): acme-v01.api.letsencrypt.org
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for blog.awesometic.kro.kr
Using the webroot path /var/www/html/wordpress for all unmatched domains.
Waiting for verification...
Cleaning up challenges
Generating key (2048 bits): /etc/letsencrypt/keys/0001_key-certbot.pem
Creating CSR: /etc/letsencrypt/csr/0001_csr-certbot.pem

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at
   /etc/letsencrypt/live/blog.awesometic.kro.kr/fullchain.pem. Your
   cert will expire on 2017-07-31. To obtain a new or tweaked version
   of this certificate in the future, simply run certbot again. To
   non-interactively renew *all* of your certificates, run "certbot
   renew"
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

Bash

 잘 봐둡시다.


4. Diffie-Hellman 키 생성

 더욱 좋은 보안을 위해선 해당 키를 생성해 사용하는 것이 좋다고 합니다.

sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048

 조금 기다리시면 /etc/ssl/certs/dhparam.pem 이란 파일이 생성됩니다.


5. SSL을 위한 Nginx 설정

5.1 강력한 SSL 설정을 위한 snippet 생성

 먼저 /etc/nginx/snippets/ssl-params.conf 를 생성해줍시다.

sudo vi /etc/nginx/snippets/ssl-params.conf

 다음 내용을 넣은 뒤 저장합니다.

# from https://cipherli.st/
# and https://raymii.org/s/tutorials/Strong_SSL_Security_On_nginx.html

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH";
ssl_ecdh_curve secp384r1;
ssl_session_cache shared:SSL:10m;
ssl_session_tickets off;
ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8 8.8.4.4 valid=300s;
resolver_timeout 5s;
# Disable preloading HSTS for now.  You can use the commented out header line that includes
# the "preload" directive if you understand the implications.
#add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";
add_header Strict-Transport-Security "max-age=63072000; includeSubdomains";
add_header X-Frame-Options DENY;
add_header X-Content-Type-Options nosniff;

ssl_dhparam /etc/ssl/certs/dhparam.pem;
Xxx

 그리고 SSL을 적용할 사이트에 대한 snippet을 만들어 줍시다. 

 ssl-blog.awesometic.kro.kr.conf 란 이름으로 만들겠습니다.

sudo vi /etc/nginx/snippets/ssl-blog.awesometic.kro.kr.conf

 다음 내용이 들어갑니다.

ssl_certificate /etc/letsencrypt/live/blog.awesometic.kro.kr/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/blog.awesometic.kro.kr/privkey.pem;
Xxx

 blog.awesometic.kro.kr 부분에 원하는 주소를 넣으시면 됩니다.


5.2 Nginx 설정 파일 수정

 그리고 해당 웹 사이트 설정 파일을 수정해줍시다.

sudo vi /etc/nginx/sites-available/wordpress

 전 다음과 같이 되겠습니다. 여러가지 시행착오를 거친 설정 파일입니다. 수정하기 전 기존 파일 내용과 비교하면서, 참고해 수정해주세요. default_server는 안 해주셔도 됩니다. 해당 사이트가 제 Nginx에 대한 기본 사이트라는 걸 설정합니다.

server {
    # 80번 포트(일반 HTTP)로 접속 시에도 SSL인 443포트로 이동시켜 줍니다.
    listen 80 default_server;
    listen [::]:80 default_server;
    server_name blog.awesometic.kro.kr;
    return 301 https://$server_name$request_uri;
}

server {
    listen 443 ssl http2 default_server;
    listen [::]:443 ssl http2 default_server;
    # blog.awesometic.kro.kr 부분을 자신의 도메인에 맞게 수정하세요
    include snippets/ssl-blog.awesometic.kro.kr.conf;
    include snippets/ssl-params.conf;

    root /var/www/html/wordpress;

    server_name blog.awesometic.kro.kr;

    location = /favicon.ico { log_not_found off; access_log off; }
    location = /robots.txt { log_not_found off; access_log off; allow all; }
    location ~* \.(css|gif|ico|jpeg|jpg|js|png)$ {
        expires max;
        log_not_found off;
    }

	location / {
		index index.php;
        try_files $uri $uri/ /index.php$is_args$args;
	}

    location ~ [^/]\.php(/|$) {
        fastcgi_split_path_info ^(.+?\.php)(/.*)$;
        if (!-f $document_root$fastcgi_script_name) {
            return 404;
        }
 
        fastcgi_pass unix:/run/php/php7.1-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
    }

    location ~ /.well-known {
        allow all;
    }
}
nginx

 Nginx를 다시 로드합니다.

sudo nginx reload

 SSL이 적용된 사이트로 접속한 결과입니다. 워드프레스의 경우 블로그 주소와 사이트 주소에 http:// 대신 https:// 로 바꾸어 주세요.


6. 인증서 자동 갱신

 cron을 이용해 자동으로 갱신해줄 수 있습니다. Let's Encrypt 인증서는 3개월만 유지되고, 만료 30일 이내에 갱신할 수 있습니다.

sudo crontab -e

 처음 crontab을 열었으니 무슨 에디터를 사용할 건지 묻습니다. 편한 걸로 설정해줍니다.

 그리고 아래 명령어를 넣어줍시다.

0 4 1 * * /bin/bash -l -c certbot renew --no-self-upgrade

 매월 1일 새벽 4시에 certbot renew --no-self-upgrade 명령어를 실행할 겁니다.


(옵션) SSL 보고서, 최종 등급 확인

https://www.ssllabs.com/ssltest/analyze.html?d={SSL 적용한 자신의 사이트}




 워드프레스 사이트에 대해서만 진행했는데, NAS나 다른 사이트들도 비슷하게 진행하시면 됩니다.


참고 사이트:
a. https://www.digitalocean.com/community/tutorials/how-to-secure-nginx-with-let-s-encrypt-on-ubuntu-16-04
b. https://certbot.eff.org/all-instructions/
c. http://riseshia.github.io/2016/10/16/certbot-let-s-encrypt.html






출처 : http://awesometic.tistory.com/19?category=964086

Posted by 타카스 류지
|

 외부에서 접속할 때, 매번 자신의 아이피와 포트로 접속하는 건 굉장히 불편한 일입니다. 도메인을 얻어 사용합시다.

 전 내도메인.한국 으로부터 무료 도메인으로 kro.kr 을 받아 사용 중입니다. 




1. 가입 및 도메인 얻기

 먼저 내도메인.한국 에 접속해 가입합시다. 그리고, 도메인 등록 메뉴를 통해 간편하게 등록합시다.

 도메인이 등록되셨으면, 새로 등록한 도메인에 대한 관리 페이지로 가세요.

 그리고 DNS 부분에 밑의 스크린샷처럼 원하는 이름과 외부 IP를 넣어 설정해 A 도메인을 얻어줍시다. 도메인 체계에 관해선 구글 검색을..


2. Nginx 설정

 Nginx에서 서버 이름, 즉 도메인을 통해 각기 다른 페이지를 보여주려 합니다. 가상 호스트 방법도 있지만, h5ai는 지원하지 않아요. 전문 분야가 아니라 자세히는 모르지만, 지금의 용도에선 이 방법이 제일 낫다고 생각합니다.

 Nginx에서 설정한 파일들을 수정해야 합니다. 여기선 워드프레스에 대해서만 sub.awesometic.kro.kr로 접속하도록 하겠습니다.

sudo vi /etc/nginx/sites-available/wordpress

 다시 listen을 기본 포트인 80으로 돌려주고, server_name 부분을 수정하면 됩니다. 아래를 참고해 수정해주세요.

server {
    listen       80;
    server_name  sub.awesometic.kro.kr; # {서브도메인}.{도메인}.kro.kr
    root   /var/www/html/wordpress;

    location / {
        index  index.php index.html;
    }

    location ~ [^/]\.php(/|$) {
        fastcgi_split_path_info ^(.+?\.php)(/.*)$;
        if (!-f $document_root$fastcgi_script_name) {
            return 404;
        }

        fastcgi_pass unix:/run/php/php7.1-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
    }
}
nginx


 워드프레스 블로그의 경우, 설치할 때 수정하셨던 워드프레스 주소와 사이트 주소를 해당 도메인에 맞게 다시 변경해 줘야만 합니다. Nginx 설정 파일의 server_name 에 해당하는 주소로 입력해주세요.

 임시로 제가 만든 워드프레스 블로그를 sub.awesometic.kro.kr 로 접속한 화면입니다.




참고사이트:
본문 내 링크




출처 : http://awesometic.tistory.com/19?category=964086

Posted by 타카스 류지
|

 Wordpress 는 무료 웹 사이트, 블로그를 만드는데 좋은 프로그램입니다. 전세계 수많은 사용자들로 이루어진 커뮤니티는 물론이고, 다양한 플러그인을 통해 간단한 동작 만으로도 알찬 웹 사이트/블로그를 만들 수 있어요.

 여기선 워드프레스를 올리는 것, 웹에서 다루기에 무리가 없는 수준까지만 하겠습니다.

 Apache나 Nginx 등 웹 서버와 PHP, MySQL(MariaDB)가 필요합니다. 이 포스트 시리즈의 처음부터 따라오신 분은 그대로 진행하시면 돼요



 

0. MariaDB에 워드프레스에서 사용할 DB 추가

 워드프레스의 각종 데이터는 데이터베이스를 이용합니다. 따라서 서버에 워드프레스를 위한 데이터베이스를 마련해 줘야 합니다.

sudo mysql -u root

 MariaDB 커맨드로 넘어오면 DB를 추가해 줍니다.

create database wordpress;

 이후 워드프레스 설정 시 root 계정 정보를 넣으면 됩니다만..


(옵션, 추천) 사용자 추가

 새로운 사용자를 추가하는 게 여러가지 이유로 더 낫습니다.

 추가한 뒤 wordpress 데이터베이스에 대한 모든 권한을 부여하겠습니다.

 참고: http://link2me.tistory.com/431

 계정을 생성한 후 localhost(오드로이드 내)에선 {비밀번호} 로 로그인 가능하게끔 하겠습니다.

create user {계정이름};
create user {계정이름}@localhost identified by '{비밀번호}';

 앞서 만든 wordpress DB에 관해 모든 권한을 부여하겠습니다.

grant all privileges on wordpress.* to {계정이름}@localhost identified by '{비밀번호}';
flush privileges;

 완료 스크린샷입니다. 기본 문자열 인코딩 설정(UTF8MB4)도 중요한데, 이건 MariaDB 설치할 때 기본값을 설정해줬으니 신경 안 쓰셔도 됩니다.

워드프레스 설정 시 새로 만든 계정 정보를 사용하겠습니다.



1. 워드프레스 설치

1.1 최신 버전 다운로드 및 압축 풀기

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

 그리고 원하는 장소에 압축을 풀어줍니다. 전 nas 옆인 /var/www/html 에 압축을 풀겠습니다. wordpress 디렉토리가 생길 겁니다.

sudo unzip -d /var/www/html wordpress-4.7.4-ko_KR.zip

 다운로드한 파일은 지워줍시다.

rm wordpress-4.7.4-ko_KR.zip


1.2 wp-config-sample.php 파일 수정

 워드프레스에서 사용할 DB 정보와 계정 정보를 입력해줘야 합니다.

sudo vi /var/www/html/wordpress/wp-config-sample.php

 열고 아래 DB_NAME, DB_USER, DB_PASSWORD에 해당하는 부분에 좀 전에 만든 새로운 DB, 계정 정보를 입력해줍니다.

 그리고 바로 아래 워드프레스 내 다양한 키를 입력할 수 있는데, 이를 입력해주면 저장되는 다양한 쿠키값에 대해 보안성을 높여줍니다. 워드프레스는 로그인 정보 관리에 PHP 세션을 이용하지 않고 사용자의 쿠키로 저장하기 때문에 필요한 작업이라네요.

 참고: https://blogvault.net/everything-about-wordpress-security-keys/

 아무튼, 

https://api.wordpress.org/secret-key/1.1/salt/

 로 접속하면 이상한 define 값들이 많이 뜨는데, 그대로 복사해

여기에 있던 define들을 지우고 붙여넣으시면 됩니다.

 그리고 wp-config.php 란 이름으로 복사해줍시다.

cd /var/www/html/wordpress
sudo cp wp-config-sample.php wp-config.php

 설치는 이것으로 완료입니다. 이제 Nginx에서 접근할 수 있도록 해줘야 합니다. 


1.3 웹 서버에서 접근할 수 있도록 권한 변경

 워드프레스는 웹 관리자 페이지에서 플러그인을 추가, 삭제합니다. 게시글을 올릴 때 첨부 파일도 저장하겠죠. 이런 다양한 행동들은 웹 서버를 통해 이루어지니 필요한 디렉토리에 대해 웹 서버에서 접근할 수 있도록 소유권을 바꿔줘야 하고, 권한도 새로 부여해야 합니다.

 매우 중요한 과정입니다. 꼭 해주세요.

 참고: https://gist.github.com/Adirael/3383404

 /* Github Gist */

#!/bin/bash
#
# This script configures WordPress file permissions based on recommendations
# from http://codex.wordpress.org/Hardening_WordPress#File_permissions
#
# Author: Michael Conigliaro <mike [at] conigliaro [dot] org>
#
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 {} \;

 /* Github Gist */

 다운받아 실행합시다.

wget https://gist.github.com/Adirael/3383404/archive/2ce9e58cb48a3a85f4c8b667ebd3a42cdcda848b.zip

 압축을 풀면,

unzip 2ce2ce9e58cb48a3a85f4c8b667ebd3a42cdcda848b.zip

 이상한 디렉토리 3383~ 이 생기는데, 그 곳에 저 코드가 담긴 파일이 있습니다.

 실행 권한을 줘서 실행해줍시다.

chmod +x 3383404-2ce9e58cb48a3a85f4c8b667ebd3a42cdcda848b/fix-wordpress-permissions.sh
sudo ./3383404-2ce9e58cb48a3a85f4c8b667ebd3a42cdcda848b/fix-wordpress-permissions.sh /var/www/html/wordpress

 뒤의 /var/www/html/wordpress 는 워드프레스 설치 경로입니다.

 아래와 같이 바뀌면 됩니다.

제대로 되었으면 남은 파일들은 삭제해줍시다.

rm -rf 2ce9e58cb48a3a85f4c8b667ebd3a42cdcda848b.zip 3383404-2ce9e58cb48a3a85f4c8b667ebd3a42cdcda848b/


2. Nginx 설정 변경

 NAS에 접속하기 위해 3000번 포트를 준 것 처럼, 워드프레스로 접속하기 위해 새로운 포트를 할당해 줘야 합니다. NAS 설정 시 진행한 것과 동일하게 진행합니다.

 먼저 nginx/sites-available/default 설정 파일을 복사합니다. wordpress 란 이름으로 복사하겠습니다.

cd /etc/nginx
sudo cp sites-available/default sites-available/wordpress

 파일을 열어 listen 부분에 새로운 포트를 할당해줍니다. 전 4000으로 하겠습니다.

sudo vi sites-available/wordpress

 아래와 같이 변경하겠습니다.

server {
    listen       4000;
    server_name  localhost;
    root   /var/www/html/wordpress;

    location / {
        index  index.php index.html;
    }

    location ~ [^/]\.php(/|$) {
        fastcgi_split_path_info ^(.+?\.php)(/.*)$;
        if (!-f $document_root$fastcgi_script_name) {
            return 404;
        }

        fastcgi_pass unix:/run/php/php7.1-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
    }
}
nginx

 생성한 파일을 적용해 사용하기 위해 nginx/sites-enabled에 소프트 링크를 생성합니다.

sudo ln -s /etc/nginx/sites-available/wordpress sites-enabled/wordpress

 Nginx를 다시 로드합니다.

sudo service nginx reload


3. 접속 및 초기 설정

 먼저 아래 주소로 접근해줍니다.

 외부에서 접속하시려면 4000번 포트에 대한 포트포워딩/방화벽설정을 해주시는 걸 잊지 마세요.

http://{오드로이드IP}:4000/wp-admin/index.php

 간단히 정보를 입력한 후 설치하기를 누르면, (비밀번호는 꼭 새로 설정해 주세요. 기존에 쓰시던 게 자동으로 입력되는 것이 아닙니다)

 즐거운 시간을!

 로그인하면 아래와 같은 화면이 뜰 겁니다.

 마지막으로 설정-일반에 들어가 워드프레스 주소와 사이트 주소를 외부 아이피로 제대로 바꿔줍시다. 

 두 곳 다 http://{외부IP}:{포트} 로 바꿔주시면 됩니다.


4. 테마 추가를 위한 FTP 계정 정보 입력

4.1 vsftpd 설치

 워드프레스에서 테마를 새로 설치하려면 서버에 대한 FTP 계정이 필요하다, 계정 정보를 달라는 알림이 뜹니다. 

 하지만 저흰 FTP 프로그램이 설치되어 있지 않으니 새로 설치해줍시다.

sudo apt-get install vsftpd

 서비스가 켜져있는지 확인해줍니다.

sudo service vsftpd start

 그리고 FTP 기본 포트인 21번 포트에 대해 방화벽/포트포워딩 설정을 해주세요.

 마지막으로 테마 설치 시 입력하는 FTP 계정 정보에 기존 오드로이드 내의 내 사용자 정보를 입력하시면 됩니다.

 이렇게요, 외부IP는 공유기를 통해 받은 사설 아이피(192.168.~) 이 아닌 실제로 외부에서 보여지는 IP를 말합니다.

 예시로 하나 설치해봤는데 잘 되네요


170505

 젯팩 플러그인 연결 시 이런 에러가 뜨는데, 간단히 터미널에서

sudo apt-get install php-xml

 하시면 됩니다.




 워드프레스 설치가 다 되었습니다. 나머지 추가적인 부분에 관해선 워드프레스 커뮤니티 등등을 통해 꾸며가세요.

 이제 도메인, SSL 관련 작업만 남았네요!


참고사이트:
본문 내 링크



마지막 업데이트: 2017. 07. 10




출처 : http://awesometic.tistory.com/19?category=964086


Posted by 타카스 류지
|

 h5ai 는 modern HTTP web server index 입니다. 그렇게 써있는데, 감이 안 오시는 분들은 간단하게 파일을 웹에서 내컴퓨터에서 보듯 볼 수 있다고 생각하시면 됩니다. 사실 서버 차원에서 기본적인 웹 디렉토리 리스팅 서비스가 지원되지만, 보기도 나쁘고 보안도 취약해 웹 디렉토리 리스팅을 위해선 h5ai 를 사용하는 것이 더 좋다고 봅니다. h5ai의 보안이 뛰어난 것은 아니지만요.. :)

 또한 h5ai는 간단한 문서, pdf, 이미지, 동영상, 소스 코드 뷰어를 지원합니다. 아주 괜찮은 친구에요.

데모 사이트: https://larsjung.de/h5ai/demo/

 h5ai 를 위해선 Nginx, Apache 등 웹 서버와 PHP가 설치되어 있어야 합니다. Apache 권장이지만, 전 Nginx를 사용하겠습니다.




1. h5ai 설치

1.1 h5ai 다운로드 및 압축 해제

 h5ai 는 업데이트를 위한 저장소가 제공되지 않습니다. 사이트에서 받아 설치해야 합니다.

wget https://release.larsjung.de/h5ai/h5ai-0.29.0.zip

 그리고 전 압축을 편의상 /var/www/html/nas 에 풀겠습니다.

sudo mkdir /var/www/html/nas
sudo unzip -d /var/www/html/nas h5ai-0.29.0.zip

 압축을 풀었으니 지우겠습니다.

rm h5ai-0.29.0.zip


1.2 Nginx 설정

 Nginx에서 h5ai를 제대로 작동시키기 위한 작업이 필요합니다. _h5ai/public/index.php 를 index 페이지로 사용하게끔 설정해야 해요. 여기선 새로운 포트를 둬 해당 NAS 페이지로 접근하게끔 하겠습니다.

 먼저 기존 sites-available 설정 파일을 복사합니다. nas란 이름으로 복사하겠습니다

sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/nas

 그리고 복사한 파일의 내용에서 listen과 root 부분을 바꿔줍시다. 전 h5ai 페이지에 접속하기 위해 3000번 포트를 사용하며 default_server 키워드를 지우겠습니다. default_server 키워드는 포트 하나만 갖고 있어야 합니다. root와 index 파일의 경로까지 수정해줍니다.

 다음과 같이 하겠습니다.

server {
    listen       3000;
    server_name  localhost;
    root   /var/www/html/nas;

    location / {
        index  index.html /_h5ai/public/index.php;
    }

    location ~ [^/]\.php(/|$) {
        fastcgi_split_path_info ^(.+?\.php)(/.*)$;
        if (!-f $document_root$fastcgi_script_name) {
            return 404;
        }

        fastcgi_pass unix:/run/php/php7.1-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
    }
}
nginx

 해당 파일에 대한 소프트 링크 파일을 /etc/nginx/sites-enabled/nas 파일로 만들어줍시다.

sudo ln -s /etc/nginx/sties-available/nas /etc/nginx/sites-enabled/nas

 마지막으로 Nginx를 reload 해줍시다.

sudo service nginx reload

 접속해봅시다.

http://{오드로이드IP}:3000/

 외부에서도 접속하려면 방화벽 및 공유기의 포트 포워딩 설정을 꼭 확인해주세요. 1편부터 따라오신 분들이라면 방화벽이 설치되어 있지 않으니 공유기의 포트 포워딩 설정만 알아보시면 됩니다. 


1.3 설치 확인

 잘 뜨지만, 여러 기능이 잘 작동하는가 상태를 확인하려면 _h5ai/public/index.php 에 직접 접근해보면 됩니다.

http://{오드로이드IP}:3000/_h5ai/public/index.php

 로그인하라는데, 간단히 엔터치면 됩니다. 비밀번호 및 기능 설정은 조금 이따 하겠습니다.

 빨갛게 no 라고 뜨는 게 별로 맘에 들지 않네요. PHP arch 는 파일 크기 측정, PHP를 이용한 압축 및 다운로드 시 지원하는 단일 파일 크기에 영향을 끼칩니다. 오드로이드 XU4의 AP가 32bit라 어쩔 수 없이 2기가 미만의 파일만 파일 크기가 표시되고, 총 용량이 2기가 미만이어야 압축되어 다운로드 할 수 있습니다. 나머지 캐시 및 썸네일 관련해선 하나씩 잡아가겠습니다. 사용하기에 꼭 필요한 작업은 아닙니다.


2. no 잡기

2.1 Public Cache dirextory, Private Cache directory

 간단합니다. 캐싱을 위한 디렉토리에 대한 권한이 없다는 뜻입니다. sudo 로 압축을 풀었으니 소유권이 root 겠죠. Nginx의 소유권과 같은 www-data로 바꿔줍시다.

sudo chown -R www-data:nogroup /var/www/html/nas/_h5ai


2.2 Image thumbs

여러 그래픽을 다루는 GD 라이브러리를 PHP와 연동시키기 위한 PHP-GD 라이브러리가 없어서 그렇습니다. apt-get 으로 설치해줍니다.

sudo apt-get install php-gd


2.3 Movie thumbs

 ffmpeg 등 오디오/비디오 코덱 라이브러리가 없어서 그렇습니다. apt-get 으로 설치해줍니다. 

sudo apt-get install ffmpeg


2.4 PDF thumbs

 여러 형식의 이미지 파일을 다루거나 변환하기 위한 ImageMagick 프로그램/라이브러리가 없어서 그렇습니다. PHP와 연동하기 위해 PHP-imagick과 함께 apt-get 으로 설치해줍니다. 

sudo apt-get install imagemagick php-imagick


2.5 상태 확인


3. 소프트 링크를 이용한 파일 보이기

 직접 h5ai 경로(/var/www/html/nas)에 파일을 넣지 않고도 소프트 링크를 활용해 파일을 보이게 할 수 있습니다.

 전 외장하드의 파일들을 전부 보이게 하겠습니다.

 제 외장하드 마운트 지점은 /media/externalHdd/ext1, ../ext2 입니다. 제 경우는 다음과 같습니다.

sudo ln -s /media/externalHdd/ext1/ /var/www/html/nas/3.0TB
sudo ln -s /media/externalHdd/ext2/ /var/www/html/nas/1.5TB

 그러면 아래 화면과 같이 뜰 것입니다.


4. 마무리 설정

4.1 옵션 변경

 _h5ai/private/conf/options.json 을 통해 여러 h5ai의 옵션을 변경할 수 있습니다.

sudo vi /var/www/html/nas/_h5ai/private/conf/options.json

 상태 페이지 접근 패스워드, 다운로드 기능 활성화, 미리보기 할 확장자 등 여러 가지 옵션이 제공되니 사용하시면서 입맛대로 바꾸세요


4.2 PHP-JSON 설치

4번째에.. 우분투 서버에선 PHP JSON 지원을 위해 추가 패키지를 설치해야 할 것이라 합니다. 당장 눈에 띄게 안 되는 기능은 없지만, 제작자가 설치하라 하니까 설치합시다.

sudo apt-get install php-json


(옵션) 접속 시 로그인 설정하기

 주소만 안다고 아무나 접근해서 파일을 가져가면 안 되겠죠? .htpasswd를 이용해 접근 제어를 해봅시다.

 먼저 암호화된 패스워드를 얻기 위해 apache2-utils 를 설치하겠습니다.

sudo apt-get install apache2-utils

 그리고 아래 명령어를 통해 /etc/nginx/.htpasswd 파일을 생성합니다.

sudo htpasswd -c /etc/nginx/.htpasswd {사용자이름}

 잘 생성됐나 확인합니다.

cat /etc/nginx/.htpasswd

 됐을 겁니다. 그리고 이제 해당 파일을 적용시킬 페이지 설정 파일을 수정해야 합니다. NAS 접근 페이지니, nginx/sites-available/nas 를 수정합니다.

sudo vi /etc/nginx/sites-available/nas

 root 밑에 블록 안에 아래 두 문장을 추가합니다.

auth_basic "{로그인 프롬프트에 나올 말}";
auth_basic_user_file /etc/nginx/.htpasswd;
nginx

 마지막으로 Nginx를 다시 로드해줍니다.

sudo service nginx reload

 확인해봅니다. 접속 시 아래 프롬프트와 유사하게 나오면 정상입니다.

 로그인 해 접속해봅니다.

 안전하지 않은 연결을 통해 전송된다고 하는데, 이 부분에 관해선 추후 도메인 + SSL 적용으로 해결하겠습니다. 다른 일들에 치여 서버 구축의 진도가 느리네요.. 




 h5ai 설치를 마쳤습니다. 다 좋지만, txt 등 문서 프리뷰에선 한글이 항상 깨져 나오네요. 코드를 분석해 고쳐보려 했지만 코드에선 UTF-8만 사용하니 깨질 이유가 없는데.. CSS의 설정이나 뭐 다른 문제가 있는 것 같습니다. 해결법을 아시는 분이나 짐작이 가는 게 있으시다면 댓글로 알려주세요 :)

 

참고 사이트:
a. 본문 내 링크
b. https://www.digitalocean.com/community/tutorials/how-to-set-up-basic-http-authentication-with-nginx-on-ubuntu-14-04




출처 : http://awesometic.tistory.com/19?category=964086

Posted by 타카스 류지
|

 PHP로 동적 페이지 구현과, Nginx로 웹 서버를 열 준비를 해봅시다. 그리고 DBMS로는 무료인 MariaDB를 사용합니다. 이 조합은 APM(Apache-PHP-MySQL) 조합과 같이 웹 서비스를 위한 기반으로 많이 사용됩니다.

 해당 작업은 HTTP 웹 서버 인덱스를 모던하게 해주는 h5ai와 개인 블로그, 사이트를 구축하기 위한 Wordpress 등을 사용하기 위해 꼭 필요합니다.

 아래 설정은 https://blog.lael.be/post/2600 블로그 포스트를 참고했습니다. 해당 포스트는 설명이 너무 잘 나와 있네요.




1. PHP 설치

1.1 저장소 추가 및 설치

 PHP 7 버전에 대한 업데이트를 제공하는 저장소를 추가해줍시다.

sudo add-apt-repository ppa:ondrej/php

 그리고 fetch 후 php7.1-fpm 을 설치해줍니다.

sudo apt-get update && sudo apt-get install php7.1-fpm


1.2 설정

 기본 시간대를 설정해줘야 합니다. 

sudo vi /etc/php/7.1/fpm/php.ini

 두 파일에서 timezone 부분을 찾아

date.timezone = Asia/Seoul
Bash

 로 바꿔 저장합니다.


2. Nginx 설치

 웹 서버로 Nginx를 사용할 것입니다. Apache가 더 좋으신 분들은 그걸 사용하세요. 여기선 Nginx를 기준으로 진행하겠습니다.

2.1 저장소 추가 및 설치

 오드로이드 우분투 기본 저장소에서도 받으실 수 있지만, 최신 Nginx를 항상 유지하기 위해 저장소를 추가해 줍시다.

sudo add-apt-repository ppa:nginx/stable

 그리고 fetch 후 설치합니다.

sudo apt-get update && sudo apt-get install nginx


2.2 PHP-FPM과 연결 설정

 기본 페이지에서 PHP 확장자에 대한 요청을 PHP-FPM(FastCGI Process Manager)으로 전달하기 위한 설정입니다.

sudo mv /etc/nginx/sites-available/default /etc/nginx/sites-available/default.backup
sudo vi /etc/nginx/sites-available/default

 아래 내용으로 바꿔줍시다.

server {
    listen       80 default_server;
    server_name  localhost;
    root   /var/www/html;
 
    location / {
        index  index.php index.html;
    }
 
    location ~ [^/]\.php(/|$) {
        fastcgi_split_path_info ^(.+?\.php)(/.*)$;
        if (!-f $document_root$fastcgi_script_name) {
            return 404;
        }
 
        fastcgi_pass unix:/run/php/php7.1-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
    }
}
nginx

 fastcgi_params 설정파일을 백업한 후 열어 다음과 같이 변경해줍니다.

sudo mv /etc/nginx/fastcgi_params /etc/nginx/fastcgi_params.backup
sudo vi /etc/nginx/fastcgi_params

fastcgi_param   QUERY_STRING            $query_string;
fastcgi_param   REQUEST_METHOD          $request_method;
fastcgi_param   CONTENT_TYPE            $content_type;
fastcgi_param   CONTENT_LENGTH          $content_length;
 
fastcgi_param   SCRIPT_FILENAME         $document_root$fastcgi_script_name;
fastcgi_param   SCRIPT_NAME             $fastcgi_script_name;
fastcgi_param   PATH_INFO               $fastcgi_path_info;
fastcgi_param   PATH_TRANSLATED         $document_root$fastcgi_path_info;
fastcgi_param   REQUEST_URI             $request_uri;
fastcgi_param   DOCUMENT_URI            $document_uri;
fastcgi_param   DOCUMENT_ROOT           $document_root;
fastcgi_param   SERVER_PROTOCOL         $server_protocol;
 
fastcgi_param   GATEWAY_INTERFACE       CGI/1.1;
fastcgi_param   SERVER_SOFTWARE         nginx/$nginx_version;
 
fastcgi_param   REMOTE_ADDR             $remote_addr;
fastcgi_param   REMOTE_PORT             $remote_port;
fastcgi_param   SERVER_ADDR             $server_addr;
fastcgi_param   SERVER_PORT             $server_port;
fastcgi_param   SERVER_NAME             $server_name;
 
fastcgi_param   HTTPS                   $https;
 
# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param   REDIRECT_STATUS         200;
Bash

 그리고 nginx 서비스를 재시작해줍니다.

sudo service nginx restart

 마지막으로 확인을 위해, 다음 파일을 하나 생성해줍니다.

sudo vi /var/www/html/index.php

 내용은

<?php phpinfo();
PHP

 그리고

http://{오드로이드IP}/index.php

 로 확인해봅시다. 아래와 같은 화면이 나오면 정상입니다.



3. MariaDB 설치

3.1 설치

 MariaDB는 ARM 기반 프로세서를 위한 패키지를 제공하지 않습니다. 따라서 오드로이드 기본 우분투 저장소로부터 받아옵시다.

sudo apt-get install mariadb-server mariadb-client

 그리고 PHP와 연동하기 위해 다음 패키지를 추가 설치 해줍니다.

sudo apt-get install php-mysql


3.2 설정

 기본 언어셋을 범용(UTF-8)으로 설정해줘야 합니다.

 다음 설정파일을 연 후, 

sudo vi /etc/mysql/conf.d/mysql.cnf

 있던 [mysql]을 지우고 아래와 같이 변경합니다.

# MariaDB-specific config file.
# Read by /etc/mysql/my.cnf
 
[client]
# Default is Latin1, if you need UTF-8 set this (also in server section)
default-character-set = utf8mb4
 
[mysqld]
#
# * Character sets
#
# Default is Latin1, if you need UTF-8 set all this (also in client section)
#
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
character_set_server = utf8mb4
collation_server = utf8mb4_unicode_ci
Bash

 그리고 서비스를 재시작합니다.

sudo service mysql restart 




참고사이트:
본문 내 링크





출처 : http://awesometic.tistory.com/19?category=964086

Posted by 타카스 류지
|

 Plex Media Server는 개인 모바일 기기 등 외부에서 자신의 동영상과 음악을 쉽고 빠르고 간편하게 관리, 스트리밍할 수 있게 해줍니다. 게다가 트랜스코딩을 지원해 원본이 고화질이라도 화질을 낮춰 스트리밍할 수 있어 데이터 또한 아낄 수 있어요.

 돈을 내면 여러 사용자가 내 서버에 접속해 스트리밍이 가능하다던가 하지만, 무료로도 여러 기기에서 볼 수 있습니다. 전 제 스마트폰, 태블릿, 노트북에서 접속해서 봅니다. 하지만.. 1분단위로 끊기므로, 노트북이 아닌 모바일 OS에서 제대로 활용하시려면 활성화 코드를 구매해야 합니다. 6천원 정도 합니다.

 설치하러 갑시다.




1. Plex Media Server 설치

1.1 저장소 추가 및 설치

 Plex Media Server는 armhf(ARM 프로세서)에 대한 패키지를 제공하지 않습니다. 따라서 비공식적인 루트로 받아야 하는데, 나름 굉장히 잘 업데이트 해주는 곳이 있습니다. dev2day 저장소 입니다.

참고: https://www.dev2day.de/typo3/projects/plex-media-server/

 이 곳의 저장소를 가져옵시다.

wget -O - https://dev2day.de/pms/dev2day-pms.gpg.key | sudo apt-key add -
sudo echo "deb https://dev2day.de/pms/ jessie main" >> /etc/apt/sources.list.d/pms.list

 그리고 fetch 후 설치합니다.

sudo apt-get update && sudo apt-get install plexmediaserver-installer


1.2 국내 메타 데이터 설정

 Plex Media Server는 해외 서비스입니다. 국내 예능이나 영화, 음악에 대해 데이터가 아주 없는 건 아니지만, 기본적으로 해외 서비스니 국내 방송, 음악 정보에 대해선 약합니다. 그리고 나중에 보시면 설명이 영어로 떠요. 이걸 방지하기 위해 hojel 님이 만드신 설정 파일로 국내 메타 데이터를 설정해 줍시다. 영화, 드라마는 다음 무비에서 받고, 음악은 네이버 뮤직에서 받습니다.

참고: https://forums.plex.tv/discussion/75675

 먼저 메타 데이터 설정을 위한 파일을 받습니다.

wget https://github.com/hojel/DaumMovie.bundle/archive/master.zip
wget https://github.com/hojel/NaverMusic.bundle/archive/master.zip

 압축을 /var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Plug-ins 에 풀어 줍니다.

 전 두 개를 한 번에 다운로드 했기 때문에, DaumMovie.bundle은 master.zip, NaverMusic.bundle은 master.zip.1 파일로 저장됐습니다. 정확히 따라오신다면 저와 같을 겁니다.

sudo unzip master.zip -d /var/lib/plexmediaserver/Library/Application\ Support/Plex\ Media\ Server/Plug-ins/
sudo unzip master.zip.1 -d /var/lib/plexmediaserver/Library/Application\ Support/Plex\ Media\ Server/Plug-ins/

 그리고 확인해보시면

ll /var/lib/plexmediaserver/Library/Application\ Support/Plex\ Media\ Server/Plug-ins/

 DaumMovie.bundle-master, NaverMusic.bundle-master 처럼 뒤에 "-master"가 붙어 있습니다. PMS에서 인식을 못할테니, 뒤의 -master를 지워줍시다.

 이름 변경의 용이성을 위해 먼저 이동합니다.

cd /var/lib/plexmediaserver/Library/Application\ Support/Plex\ Media\ Server/Plug-ins/

 그리고 각각의 이름을 변경해줍니다.

sudo mv DaumMovie.bundle-master DaumMovie.bundle
sudo mv NaverMusic.bundle-master NaverMusic.bundle

 마지막으로 소유권을 적절히 설정해줍니다.

sudo chown -R plex:nogroup DaumMovie.bundle
sudo chown -R plex:nogroup NaverMusic.bundle


2. Plex Media Server 설정

2.1 접속

 정상적으로 설치가 되었다면, 32400 포트를 통해 접속할 수 있습니다. 뒤에 manage 를 꼭 붙여주세요.

http://{오드로이드IP}:32400/manage

 회원제인데, 회원 가입을 해야 사용하실 수 있습니다. 한글이며 간단하니 회원가입 진행해 주시구요,

 로그인을 하시면 서버를 찾았다고 합니다.


2.2 설정

 설정 페이지로 오시면 다음과 같은 페이지가 뜹니다. 서버의 이름을 적절히 설정해줍니다.

 그리고 미디어 라이브러리를 설정합니다. 찾아보기를 누르셨을 때 일전에 autofs로 자동 마운팅한 외장하드가 뜨면 정상입니다. 적절히 설정 후 완료하세요. 그러면 자동으로 미디어 목록을 PMS로 가져올 겁니다.

 중요한 건 이 부분입니다.

 "외부에서 완전히 접근 가능" 이라는 말이 떠야 합니다. 안 뜬다면, 오드로이드 우분투의 방화벽 규칙과 공유기 사용 시 공유기의 포트포워딩 설정을 확인해주세요. 내부 오드로이드 IP에 대한 32400 포트가 외부에서 접근이 가능해야 합니다.

 그리고, TV 드라마나 예능, 영화를 미디어로 설정하셨다면 다음 무비 에이전트로 바꿉시다.

 대시보드의 왼쪽, 라이브러리에서 자신이 추가한 TV 드라마, 예능, 영화 등등에 마우스를 올리면, 옵션 아이콘이 있습니다.

 여기서 편집을 누릅니다. 그리고 고급을 눌러, 에이전트를 바꿔줍니다.

 아래와 같이 하시면 됩니다.

 다른 새로 추가할 라이브러리에 대해서도 동일하게 적용하시면 됩니다.

 음악에 대한 라이브러리라면 Naver Music을 선택하시면 됩니다.


(옵션) 안드로이드 기기에서 접속

 마켓에서 Plex for Android 를 받아 설치하시면 됩니다. 그리고 만들어둔 ID로 로그인만 하시면 자동으로 연결됩니다. 모바일에서 데이터를 아끼고 싶으시다면 설정을 통해 데이터 사용 시 화질을 조절하셔야 합니다. 그럼 자동으로 트랜스코딩해 스트리밍되므로 데이터를 아끼실 수 있습니다.

 활성화 코드를 구매하시지 않으시면 1분단위로 끊깁니다. 필요에 따라 구매하셔서 사용하실 수 있고, 만약 태블릿에도 보고 싶거나 스마트폰이 바뀌는 경우 새로운 기기에서 Plex에 로그인할 때 "이미 활성화 코드를 구매했다, 활성해달라 요청" 뭐 이런 거 누르면 간단하게 해결해주더라구요. 정확한 말은 기억이 나지 않네요 ㅎㅎ




참고 사이트:
본문 내 링크




출처 : http://awesometic.tistory.com/19?category=964086


Posted by 타카스 류지
|

연결한 외장하드는 Samba로 관리하는 게 가장 편하더군요




1. Samba 설정

(옵션) Samba 패키지 설치

sudo apt-get install samba

이미 설치되어 있다고 하네요. 하지만 혹시 모르니 한 번 타이핑 해줍시다.


1.1. Samba 계정 추가

Samba 로 공유하는 디렉토리에 접근하기 위해선, 따로 계정을 추가해 줘야 합니다. 편의상 기존 오드로이드 접속 계정(root가 아닌)과 같은 이름으로 추가해줍니다.

sudo smbpasswd -a {계정이름}


1.2 Samba 설정

sudo vi /etc/samba/smb.conf

 파일을 열고, 마지막에 다음 형식으로 추가해줍니다. 제 경우엔,

[ODROID NAS - 3.0TB]
comment = Awesometic's NAS
path = /media/externalHdd/ext1
valid users = awesometic
writable = yes
create mask = 0755
directory mask = 0755

[ODROID NAS - 1.5TB]
comment = Awesometic's NAS
path = /media/externalHdd/ext2
valid users = awesometic
writable = yes
create mask = 0755
directory mask = 0755
Xxx

 와 같이 추가해줬습니다. 참고하시고 자신의 시스템에 맞게 적절히 수정해서 적용하세요.


1.3 Samba 재시작

sudo service smbd restart


1.4 내 컴퓨터에 등록

 네트워크 위치에 ODROID(hostname)가 뜰테니 그리로 찾아가거나, 경로에 \\{오드로이드IP주소}\ 를 입력해 찾아갈 수도 있지만,

 역시 내 컴퓨터에 연결해 마치 자신의 하드 디스크인냥 사용하는 게 제일 편합니다.

 완료 스크린샷입니다.


(옵션) 삼바 설정을 통한 성능 최적화

매월 해외에서 출간되는 오드로이드 매거진 4월호를 보시면, 성능 최적화를 위한 삼바 설정이 포함되어 있습니다.

캐시 등 기능 활성화를 위해 적용하시려면 smb.conf에 아래 설정을 추가해주세요.

write cache size 부터가 추가되는 설정입니다.

[ODROID NAS - 3.0TB]
comment = Awesometic's NAS
path = /media/externalHdd/ext1
valid users = awesometic
writable = yes
create mask = 0755
directory mask = 0755
write cache size = 524288
getwd cache = yes
use sendfile = yes
min receivefile size = 16384
socket options = TCP_NODELAY IPTOS_LOWDELAY
Xxx




마지막 업데이트: 170626



출처 : http://awesometic.tistory.com/19?category=964086


Posted by 타카스 류지
|