본문 바로가기
Home-NAS 구축

[nextcloud]사진자동업로드 서버 구축하기 -2- (nextcloud 설치하기)

by 반니루니 2022. 7. 21.
반응형

앞 포스팅에서 vm서버를 설치 및 설정했고

https://toentoi.tistory.com/128

 

[nextcloud]사진자동업로드 서버 구축하기 -1- (virtualbox를 이용한 vm서버 설치)

요즘 개인NAS를 구축하여 개인서버용도로 사용하고 계신분들이 많습니다. 쉽게는 시놀로지서버를 구매하여 사용하시는데요. 저는 구글포토(유료-https://www.google.com/intl/ko/photos/about/) 를 사용했었

toentoi.tistory.com

 

ubuntu 서버에서 

먼저 root 권한의 패스워드를 설정해줍니다.

 

su passwd root

입력하시고 root의 패스워드를 설정해줍니다.

 

로그인이 잘되나 확인 후 root권한에서 빠져나옵니다.

 

 

[apache 웹서버 설치]

sudo apt-get install apache2

 

서비스가 잘 시작되었는지 확인

sudo service apache2 status

우분투 방화벽 설정 /

- 80 포트 : http 

- 443 포트 : https

sudo ufw allow 80
sudo ufw allow 443

당장 https 는 사용할 일이 없지만 설정해둡니다.

 

그럼 http://vm서버IP 입력하시면

(제 경우 NAT IP 설정하여 서버PC와 IP가 동일 합니다. 192.168.219.105 | 사용자마다다름)

-->혹 서버에 직접 ubuntu를 설치하셨거나 virtualbox 어댑터에 브릿지를 설정하셨습니다. vm머신 고유IP가 할당되어있습니다.) ifconfig명령어를 입력하셔서 확인해주세요.

 

당연히 안됩니다. (NAT IP의 경우)

 

NAT IP로 설정하신분은 서버PC와 vm간의 포트 매핑이 필요합니다.

 

vm의 설정 > 네트워크 > 포트포워딩

 

포트 포워딩 규칙을 생성합니다.

이름 : nc-apache

호스트 IP : 서버의IP

호스트 포트 : 9980

게스트 IP : vm(ubuntu)-서버의 NAT IP 

게스트 포트 : 80

게스트IP가 vm의 IP 주소이고 vm-서버에서 apache 설치했을시 웹포트는 80포트입니다.

 

저뜻은 "서버PC(win10) 9980번 포트를 vm-서버 80번 포트를 매칭시키겠습니다." 라는 뜻입니다.

 

이렇게 설정하게되면 서버PC IP :9980을 입력하게 되면 실제로는 vm-서버의 80번 포트를 바라보게 되는것 입니다.

 

아래의 페이지가 뜨면 성공입니다.

 

[DB 설치 및 설정하기]

이제 maria db를 설치해 줍니다.

mysql대신 mariadb를 사용하는 이유는 nextcloud의 가이드라인 이지만 아무래도 mysql이 상용버전이 생기면서 무료 라이선스인 mariadb를 사용하는 것 같네요.

 

sudo apt-get install mariadb-server mariadb-client php-mysql

명령어를 사용하여 설치 합니다.

 

여기에 보안을 더한 설정을 해줍니다.

sudo mysql_secure_installation

입력하시면 처음 질문시 그냥 엔터 후 root패스워드 설정 및 기타 기본설정들을 삭제할건지 물어봅니다.

필요없기에 모두 Y를 눌러  삭제합니다.

위 설정이 끝났다면, mariadb 서비스를 재시작 하고, mariadb 서비스가 잘 실행되는지 확인해 봅니다.

 

sudo service mariadb restart
sudo service mariadb status

앞서 설정한 maria db root 계정 패스워드를 입력해서 mariadb에 접속해봅니다.

mariadb 이지만 mysql에서 파생된것으로 같은 명령어를 씁니다.

sudo mysql -u root -p

 

이후 데이터베이스를 생성, 유저생성, 데이터베이스 접근설정, 적용 명령어를 입력합니다.

 

A. DB 생성

create database nextcloud;

B. 계정 생성 및 패스워드 설정. 여기에서 계정도 ncuser가 아닌 다른것을 생성하셔도 됩니다.

create user ncuser@localhost identified by '패스워드';

C. DB에 user 권한 부여

grant all privileges on nextcloud.* to ncuser@localhost identified by '패스워드';

D. 변경사항 적용

flush privileges;

E. 나가기

exit;

DB설정은 끝났습니다.

 

[PHP설치하기]

php는 버전 7.4버전을 설치해 줍니다. 아래 코드블럭을 복사해서 붙여넣기 해줍니다.

sudo apt install php-imagick libapache2-mod-php7.4 php7.4-common php7.4-mysql php7.4-fpm php7.4-gd php7.4-json php7.4-curl php7.4-zip php7.4-xml php7.4-mbstring php7.4-bz2 php7.4-intl php7.4-bcmath php7.4-gmp

 

설치하는데는 어렵지 않으나 시간이 좀 걸릴 수 있습니다.

 

PHP 설치 완료 후 몇가지 설정을 변경해줘야 합니다.

 

저는 주로 입력기를 vim을 사용하기에, vi나 nano를 사용하셔도 무방합니다.

sudo vim /etc/php/7.4/apache2/php.ini

 

[[[[두 눈을 크게 뜨시고 옵션들을 찾으셔야 합니다ㅜㅜ!!]]]

 

output_buffering = Off

memory_limit = 512M

upload_max_filesize = 2048M

이제부터 [opcahe] 아래에 한곳에 모여있습니다.

opcache.enable = 1


opcache.enable_cli = 1

opcache.memory_consumption = 128

opcache.interned_strings_buffer = 8

opcache.max_accelerated_files = 10000

opcache.revalidate_freq = 1

opcache.save_comments = 1

 

파일을 저장하고, 아파치 서비스를 재시작합니다.

 

sudo service apache2 restart

 

혹시나 설정에 오타가 있어 재시작 후 정상적으로 서비스가 돌아가는지 확인하시려면

sudo service apache2 status

서비스 상태를 확인해보시고 초록색 active로 되어있다면 정상입니다.

 

이제 nextcloud를 설치할 차례입니다.

 

[NextCloud] 설치하기

 

대망의 NextCloud를 설치할 시간입니다. 외부접속 설정이 남았지만.........

 

아무튼

먼저 curl git을 사용하기 위한 패키지 설치부터

sudo apt install curl git

그다음

curl을 통한 컴포저 설치

curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer

설치 후 

 

아파치 웹서비스 폴더인 html 폴더로 이동합니다.

cd /var/www/html

이동 후 git clone 명령어를 통해 nextcloud를 설치합니다.

 

22.07.21 기준 최신버전은 Nextcloud24 버전입니다.

 

nextcloud server 버전은 아래 사이트에서 확인가능합니다.

현재 24,23 버전만 지원하고 하위버전은 (unsupported!)라고 뜨네요.

 

https://nextcloud.com/changelog/

 

Changelog - Nextcloud

 

nextcloud.com

 

물론 바로 설치 해도 되지만 git을 사용하여 설치하니 만큼 nextcloud github 사이트를 가보면

 

https://github.com/nextcloud/server

 

GitHub - nextcloud/server: ☁️ Nextcloud server, a safe home for all your data

☁️ Nextcloud server, a safe home for all your data - GitHub - nextcloud/server: ☁️ Nextcloud server, a safe home for all your data

github.com

공식사이트에서 확인한 최신버전 24를 검색해봅니다.

 

24만 검색하셔도 stable24라고 뜹니다. 안정된 버전이라는 거죠

 

 

이를 확인했다면

 

아래 명령어로 git clone 합니다.

sudo git clone --branch stable24 https://github.com/nextcloud/server.git nextcloud

위와 같이 설치되며 아래 명령어를 통해 컴포저 및 모듈들을 업데이트 합니다.

sudo composer install
sudo git submodule update --init

 

 

설정을 묻게 됩니다. root 혹은 슈퍼유저 권한으로 설치할거냐 묻습니다. 당연히 yes!

 

맨처음 설치하게되면 기본권한만 부여되어 웹 접근이 안됩니다.

 

아래 명령어를 통해 755 권한을 부여해줍니다.

sudo chown -R www-data:www-data /var/www/html/nextcloud
sudo chmod -R 775 /var/www/html/nextcloud

 

이제 웹서버인 apache 설정만 해주면 됩니다.

아마 nextcloud.conf 파일이 없을 겁니다.

아래명령어를 통해 파일 생성 후 

sudo vim /etc/apache2/sites-available/nextcloud.conf

아래의 설정을 붙여넣기 합니다.

 

<VirtualHost *:9980>
    ServerAdmin ****@gmail.com
    DocumentRoot /var/www/html/nextcloud/
    ServerName 192.168.219.105

        ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

    Alias /nextcloud "/var/www/html/nextcloud/"

    <Directory /var/www/html/nextcloud/>
        Options +FollowSymlinks
        AllowOverride All
        Require all granted
            <IfModule mod_dav.c>
                Dav off
            </IfModule>
        SetEnv HOME /var/www/html/nextcloud
        SetEnv HTTP_HOME /var/www/html/nextcloud
    </Directory>

</VirtualHost>

여기서 주의 할 점은

맨위 VirtualHost *:9980은 저랑 똑같이 설정하셨다면 9980이 맞고, 위에서 다른포트로 설정하셨다면 설정하신 포트로 

입력해주셔야 합니다. ex) 80 or 다른설정포트

 

ServerName의 경우도 현재 ubuntu 서버 IP로 설정하셔야합니다.

저는 현재 192.168.219.105:9980 IP 및 포트를 사용하고 있기에 위처럼 설정했습니다.

 

설정하셨다면 저장 한 뒤 아래 명령어를 통해 변경된 설정 파일을 활성화 해줍니다.

 

sudo a2ensite nextcloud.conf
sudo a2enmod rewrite headers env dir mime setenvif ssl

 

웹서버 아파치 서비스 재시작은  필수!

sudo service apache2 restart

 

그럼 설정하신 http://vm-ubuntu서버IP:PORT (ex http://192.168.219.105:9980) 으로 접속하시면

 

관리자 계정 만들기는 말그대로 앞으로 NextCloud에서 사용할 관리자를 새로 생성하는 것이고

 

아래 데이터베이스 설정은 앞서 mariaDB에서 생성한 (ncuser / 패스워드)를 입력하신 후 진행하시면 됩니다.

 

정상적으로 로그인 하셨다면 대쉬보드 창이 나오며

 

여기까지 하셨다면 내부(집안에서)는 접근할수 있는 환경이 완료되었습니다.

 

제가 작성하면서 명령어에 오타가 있을수 있으니 진행하시다가 안되시면 덧글남겨주세요!

반응형