프로그래밍/Linux

개인 Cloud Server 만들기(feat.NextCloud)

Beginner:) 2024. 10. 16.
320x100

며칠 전 Windows에 문제가 생겨 포맷을 했다.

 

그러다 생각난 것이 백업... 

 

사실 집 Desktop은 Youtube와 게임용이기에 상관없지만, 폰을 잃어버리면 나의 사진이 날라가는 것이다.

 

One Drive 용량도 찼다고 메일이 왔기에, 돈내기는 싫고 집에서 굴러다니는 라즈베리파이로 개인 Cloud 서버를 만들어 보자.

 

* NGINX로 진행하려 했으나 관리자계정생성에서 무한루프 돌고 로그인이 안되서 APACHE로 변경...


 

 

1. APACHE2 설치

sudo apt-get update && sudo apt-get upgrade -y
sudo apt-get install apache2 -y

 

이후 본인의 ip를 접속하여 APACHE가 설치되었는지 확인

2. MariaDB 설치/설정

MariaDB 설치와 보안설정을 하는데, 보안설정은 test DB를 삭제할거냐... root 계정 remote access를 허용할거냐...

이런거 물으니 읽어보고 선택하고, 모르면 다른 블로그를 참고하자.

sudo apt install mariadb-server -y
sudo mysql_secure_installation # root 비밀번호 / 보안 설정
sudo mysql -u root -p # db 접속

 

다음에는 NextCloud를 위한 계정을 생성

CREATE DATABASE nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
CREATE USER 'nextclouduser'@'localhost' IDENTIFIED BY '[PASS WORD]';
GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextclouduser'@'localhost';
FLUSH PRIVILEGES;
EXIT;

 

3. php 설치 

NextCloud는 php로 만들어졌기에 php를 설치해야 한다.

설치될때 버전을 잘 보고, 앞으로의 설정에 php 버전에 꼭 맞게 설정하자

 

sudo apt install php-fpm php-mysql php-gd php-json php-curl php-mbstring php-intl php-xml php-zip php-bz2 php-imagick php-gmp -y

 

4. NextCloud 설치

NextCloud를 특정 폴더에 설치한다.

cd /var/www/
sudo wget https://download.nextcloud.com/server/releases/nextcloud-27.0.2.zip
sudo unzip nextcloud-27.0.2.zip
sudo chown -R www-data:www-data nextcloud
sudo chmod -R 755 nextcloud

 

 

5. APACHE 구성 설정

앞서 설치한 nginx, php, nextcloud의 설정을 이용하여 nextcloud에 접속하는 nginx 설정을 추가한다.

파일 경로는 아래와 같다

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

 

참고로 나는 port를 8000번으로 변경할 것이다.

 

<VirtualHost *:8000>
    DocumentRoot /var/www/nextcloud/
    # ServerName [IP]

    <Directory /var/www/nextcloud/>
        Require all granted
        AllowOverride All
        Options FollowSymLinks MultiViews
    </Directory>

    <Directory /var/www/nextcloud/data/>
        Require all denied
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/nextcloud_error.log
    CustomLog ${APACHE_LOG_DIR}/nextcloud_access.log combined
</VirtualHost>

 

APACHE는 심볼릭 링크를 설정하는게 아니라 ports.conf 파일을 수정한다더라.

sudo vim /etc/apache2/ports.conf

 

Listen 80
Listen 8000
<IfModule ssl_module>
        Listen 443
</IfModule>

<IfModule mod_gnutls.c>
        Listen 443
</IfModule>

 

이후 아파치 재시작

sudo a2ensite nextcloud.conf
sudo systemctl restart apache2

 

6. nextCloud 관리자계정 만들기

데이터베이스 호스트에 포트도 적어랬지만, 안적어야 하는거같다... ?

 

 

이후 로그인하면 접속되는 것을 확인가능하다.

 

7. 포트포워딩하기(선택)

나는 외부IP:5000에서 내부IP:8000으로 포워딩할 것이다.

 

각자 게이트웨이로 들어가서 포트포워딩 설정

 

외부 IP로 접속해보면 신뢰하지 않은 도메인이라고 출력되는데, 

NextCloud에 외부 ip를 등록해줘야한다.

sudo vim /var/www/nextcloud/config/config.php
'trusted_domains' =>
array (
    0 => 'localhost',
    1 => '192.168.1.100',  // 내부 IP 주소 예시
    2 => '외부IP:5000',  // 외부IP (포트 포함)
),

 

8. Windows 네트워크 연결(선택)

먼저 NextCloud 클라이언트를 설치해야한다.

https://nextcloud.com/install/

 

설치가 완료되고 로그인하면 아래와 같이 폴더를 지정할 수 있는데,

 

이렇게 폴더가 생성된다.

 

 

휴대폰에서도 nextCloud를 설치해야하는데, 설치후 사진 약 4000장을 업로드 했더니

 

100장쯤에서 뻗어버린다 ㅎ

 

라즈베리는... 그냥 놓아주어야겠다.

반응형

댓글