RaspberryPi3 및 NextCloud로 미디어 서버 구축

12647 단어 RaspberryPinextcloud

입문


Raspberry Pi3와 Next Cloud로 전용 미디어 서버를 구축해 보았습니다. 본 기사는 당시 단계의 노트입니다.
또한 본 기사에서 OS는 Raspbian을 사용하고 데이터의 저장 장소는 RaspberryPi3 USB와 연결된 외장 HDD를 사용합니다.
참고로 라즈파에서 Nextcloud를 사용하기 위해 NextCloudPi라는 OS도 발표했습니다. 마음에 드는 사람은 조사해 주십시오. ->https://ownyourbits.com/2017/02/13/nextcloud-ready-raspberry-pi-image/

준비물

  • Raspberry Pi 3 Model B
  • micro SD 카드 16GB
  • Raspberry Pi용 전원 코드
  • TOSHIBA 외장 HDD3TB
  • USB 연결 키보드 및 마우스
  • NextCloud 정보


    NextCloud는 온라인 스토리지를 구축할 수 있는 Open Source 소프트웨어입니다.
    ownCloud라는 서비스는 포크를 통해 개발되었다.
    NextCloud HP - https://nextcloud.com

    이번 편 - 랩스베리Pi3에서 Nextcloud 사용


    초기 설정


    우선 라즈베리피에 라즈비안을 설치합니다.
    Raspbian 설치에 관해서는 과거에 다른 기사를 썼기 때문에 생략했습니다. Raspbian의 설치 절차를 모르는 분들은 꼭 보세요! ->Raspbian 설치 및 초기화
    Raspbian을 설치하면 패키지도 업데이트됩니다.
    $ sudo apt-get update
    $ sudo apt-get upgrade
    

    Apache 설치


    웹 서버 소프트웨어를 설치하는 Apache
    $ sudo apt-get install apache2
    
    PHP7.0을 설치합니다.
    $ sudo apt-get install php7.0
    
    설치가 완료되면 Apache를 다시 시작합니다.
    $ sudo service apache2 restart
    

    NextCloud 설치


    디렉토리를 이동합니다.
    $ cd /var/www/html
    
    인터넷에서 NextCloud를 다운로드하여 압축을 풀다.
    $ curl https://download.nextcloud.com/server/releases/nextcloud-13.0.1.tar.bz2 | sudo tar -jxv
    
    해동이 끝나면 이 디렉터리로 이동하여 데이터 폴더를 만듭니다. 기본적으로 미디어 서버의 데이터를 저장합니다.
    $ cd nextcloud
    $ sudo mkdir data
    

    마지막으로 다양한 파일과 폴더에 대한 액세스 권한을 편집합니다.www-data는 Apache의 기본 사용자(및 그룹)입니다.
    NextCloud 설치는 여기서 끝납니다.
    $ sudo chown www-data:www-data /var/www/html/nextcloud/data
    $ sudo chmod 750 /var/www/html/nextcloud/data
    $ sudo chown www-data:www-data config apps
    

    MariaDB 설치


    MariaDB를 설치합니다.
    $ sudo apt-get install mariadb-client mariadb-server
    
    설치가 완료되면 DB의 초기 설정을 수행합니다.
    마리아 DB에 들어가는 CCTV 화면.
    $ sudo mysql -u root -p
    
    그런 다음 NextCloud에 대한 DB를 생성합니다.
    CREATE DATABASE <db-name>;
    
    데이터베이스를 사용하는 사용자와 비밀번호를 만듭니다.
    CREATE USER '<db-username>'@'localhost' IDENTIFIED BY '<db-userpass>';
    
    생성된 사용자에게 DB 관리 권한을 부여합니다.
    GRANT ALL PRIVILEGES ON <db-name>.* to '<db-username>'@'localhost';
    
    콘솔에서 권한을 새로 고치고 MariaDB를 종료합니다.
    FLUSH PRIVILEGES;
    
    quit
    

    외장 하드 드라이브 설정


    기본적으로 미디어 서버의 데이터는 RaspberryPi 호스트에 삽입된 Micro SD에 저장되므로 외부 HDD로 변경됩니다.
    우선 Linux의 파일 시스템 ext4로 외장 HDD를 포맷하면 HDD에 저장된 데이터가 삭제되기 때문에 미리 백업하는 것을 권장합니다.
    HDD 포맷은 fdiskparted 으로 할 수 있으며, fdisk 2TB 미만의 파티션만 만들 수 있는데, 이번에는 3TB HDD를 충분히 활용하고 싶어서 parted 사용했습니다.
    먼저 RaspberryPi에 HDD를 연결하여 df 명령 등을 통해 연결된 HDD의 디바이스 이름을 확인합니다.
    $ df
    
    HDD의 초기 설치 위치가 /dev/sda, /dev/sdb 등 설치 위치가 다른 사람은 매번 교체해 주십시오.
    그럼 하드디스크를 포맷하세요.
    우선 GNU parted를 사용하여 기존 파티션을 삭제하고 새 파티션을 만듭니다. 아래 내용을 참고하십시오.
    $ sudo parted /dev/sda
    
    GNU Parted 3.2
    Using /dev/sda
    Welcome to GNU Parted! Type 'help' to view a list of commands.
    
    (parted) mklabel
    New disk label type? gpt
    Warning: The existing disk label on /dev/sda will be destroyed and all data on this disk will be lost. Do you want to continue?
    Yes/No? y
    
    (parted) mkpart
    Partition name?  []? nextcloud
    File system type?  [ext2]? ext4
    Start? 0%
    End? 100%
    
    (parted) print
    Model: TOSHIBA External USB 3.0 (scsi)
    Disk /dev/sda: 3001GB
    Sector size (logical/physical): 512B/4096B
    Partition Table: gpt
    Disk Flags: 
    Number  Start   End     Size    File system  Name       Flags
     1      1049kB  3001GB  3001GB  ext4         nextcloud
    
    (parted) quit
    
    이어서 ext4로 하드디스크를 포맷합니다.
    $ sudo mkfs.ext4 /dev/sda
    
    다음은 HDD를 마운트하는 폴더를 만듭니다. 일반적으로 /media 또는 /mnt 에서 만듭니다.
    $ sudo mkdir /media/hdd0
    
    적재 목적지를 변경하다.
    $ sudo mount /dev/sda /media/hdd0
    
    디스크 용량을 확인할 때 적절한 위치에 설치되었는지 확인하십시오.
    $ df
    
    그런 다음 하드 드라이브를 자동으로 마운트하도록 설정합니다.
    $ sudo blkid /dev/sda
    
    표시된 UUID를 복사하십시오.
    백업을 먼저 작성한 후 편집합니다/etc/fstab.
    $ sudo cp /etc/fstab /etc/fstab_backup
    $ sudo vi /etc/fstab
    
    마지막 줄에 다음과 같이 보충하여 저장하십시오.
    # HDD for NextCloud
    UUID=******** /media/hdd0 ext4 defaults,noatime 0 0
    
    HDD를 연결한 상태에서 RaspberryPi를 다시 시작하면 HDD가 정해진 위치에 설치되기만 하면 됩니다.
    sudo shutdown -r now
    
    $ df
    
    마지막으로 설치된 HDD에 데이터를 저장할 수 있는 환경을 구축합니다.
    제작.ocdata, 액세스 권한 편집.
    $ sudo chown www-data:www-data /media/hdd0
    $ sudo touch /media/hdd0/.ocdata
    $ sudo chown www-data:www-data /media/hdd0/.ocdata
    

    NextCloud 설정


    Chromium 등의 브라우저 액세스http://localhost/nextcloud를 통해 NextCloud의 초기 설정을 수행합니다.
    PHP 관계가 부족하면 혼난다. 필요한 것을 넣고 아파치를 다시 시작하자.
    $ sudo apt-get install php7.0-mysql php7.0-pgsql php7.0-zip php7.0-dev php7.0-mbstring php7.0-gd php7.0-curl
    $ sudo service apache2 restart
    
    NextCloud 시작. 처음 시작할 때 관리자 계정의 사용자 이름과 암호를 설정해야 합니다.
    데이터 폴더에 외장 HDD가 마운트된 위치를 입력하고 데이터베이스의 사용자 이름, 비밀번호, 데이터베이스 이름에 각각 MariaDB 설정을 입력할 때 만든 내용을 입력합니다.

    설정 완료를 클릭하면 NextCloud 설정이 종료됩니다.

    NextCloud 사용 시도


    NextCloud의 미디어 서버에 액세스하는 경우http://<ラズパイのIPアドレス>/nextcloud.
    Raspberry Pi의 IP 주소는
    $ ifconfig
    
    $ ip route
    
    확인해 보겠습니다.
    또한 처음에 IP 주소를 통해 직접 액세스할 경우 다음과 같은 오류가 발생할 수 있습니다.
    Access through untrusted domain
    
    Please contact your administrator. If you are an administrator, edit the "trusted_domains" setting in config/config.php like the example in config.sample.php.
    Depending on your configuration, this button could also work to trust the domain:
    
    "192.xxx.xxx.xxx" を信頼するドメイン名に追加
    
    열기config.phpdomains 를 편집하십시오.
    $ sudo vi /var/www/html/nextcloud/config/config.php
    
    config.php
    
      'trusted_domains' =>
      array(
        0 => 'localhost',
        1 => '192.xxx.xxx.xxx',
      ),
    
    
    이제 NextCloud를 통해 하드 드라이브에 액세스할 수 있습니다. 수고하셨습니다.

    기타


    파일 검색


    포맷된 데이터 저장용 HDD에 대량의 데이터를 넣으려면 NextCloud를 통해 업로드하는 데 시간이 많이 걸리므로 미리 HDD에 데이터를 모두 넣은 후 파일을 총 스캔하여 DB에 로그인하는 방법을 추천합니다.
    이번에는 exFAT의 HDD에서 데이터를 복사하려고 하지만 Linux는 기본적으로 exFAT를 설치할 수 없기 때문에 처음에는 exFAT 주위의 패키지를 설치했습니다.
    $ sudo apt-get install exfat-fuse exfat-utils
    
    NextCloud의 데이터 저장 위치/media/hdd0/<nextcloud-username>/files로 데이터를 복사합니다.
    다음은 파일 소유자를 www.data로 편집합니다.
    $ sudo chown -R www-data:www-data /media/hdd0/<nextcloud-username>/files
    
    마지막으로 파일을 총 스캔합니다.
    cd /var/www/html/nextcloud/
    sudo -u www-data php occ files:scan <nextcloud-username>
    
    NextCloud에 다시 액세스할 때 파일이 추가되었습니다.

    고정 IP 주소


    RaspberryPi를 재부팅할 때마다 IP 주소가 변경될 때마다 미디어 서버에 액세스하기 어렵기 때문에 IP 주소를 고정합니다.
    먼저 라우터의 설정 화면에 액세스하여 DHCP 서버의 주소 범위를 확인합니다. 고정 IP 주소를 할당할 때 이 범위 밖으로 설정해야 합니다.
    고정 IP 주소를 설정하면 업데이트config.php합니다.

    끝날 때


    라스파에서 NextCloud를 시작하여 외장형 HDD를 사용하는 전용 미디어 서버를 구축했습니다. 라스파와 HDD는 항상 전원을 연결해야 하지만 그렇게 많은 전력을 소모하지 않기 때문에 여러 단말기에서 HDD에 접근할 수 있는 것은 상당히 편리합니다. 하지만,좀 늦은 것 같은데...
    이번에 설정한 것은 집에서만 사용하는 개인용입니다. 그 중에서 포트가 개방되고 도메인이 취득되며 SSL화되고 외부도 접근할 수 있습니다.
    본 보도와 관련하여 잘못된 지적, 개량 방안, 문제 등이 있으면 언제든지 논평해 주십시오. 열람해 주셔서 감사합니다.

    참고 자료

  • RaspberryPi로 NextCloud 구축
  • How to Setup a Raspberry Pi Nextcloud Server
  • ownCloud 명령행 도구를 사용하여 파일 검색
  • 고정 IP 주소를 Raspberry Pi(Raspbian Jessie)에 할당하는 방법
  • 좋은 웹페이지 즐겨찾기