Nextcloud 는 오픈 소스 파일 동기화 및 공유 플랫폼으로, 데이터에 대한 완벽한 제어권을 제공합니다. Dropbox나 Google Drive와 같은 클라우드 스토리지 서비스와 달리, Nextcloud 는 자체 인프라에서 실행되므로 개인 정보 보호, 보안은 물론 파일 스토리지 솔루션의 모든 측면을 맞춤 설정할 수 있습니다.
이 튜토리얼에서는 WSL(Windows Subsystem for Linux) 환경의 Ubuntu 22.04 LTS 서버에 Apache, MariaDB, PHP를 이용해 Nextcloud를 설치하는 방법을 다룹니다.
사전 준비 (Prerequisites)
이 가이드를 따라하기 전에 다음 환경이 준비되어 있어야 합니다.
OS: Windows 환경의 WSL2에 설치된 Ubuntu 22.04 LTS
Nextcloud 공식 설치 파일은 zip 형태로 제공됩니다. 우분투 환경에서 이 파일의 압축을 풀기 위해 먼저 unzip 패키지를 설치해 줍니다.

Nextcloud 최신 버전은 PHP 8.2 이상을 강력히 요구합니다. 하지만 Ubuntu 22.04의 기본 저장소에는 구버전이 들어있으므로, 외부 PPA 저장소를 추가해야 합니다.

PPA 저장소를 추가했다면, 이제 새로 추가된 저장소의 패키지 정보를 시스템에 업데이트해 주어야 합니다.

Nextcloud 최신 버전이 요구하는 환경에 딱 맞춰 필수 패키지들을 설치해 보겠습니다. 웹 서버(Apache), 데이터베이스(MariaDB), 그리고 가장 중요한 PHP 8.2를 한 번에 설치합니다.

기본 웹 서버와 DB가 준비되었다면, 이제 Nextcloud가 요구하는 필수 PHP 확장 모듈들을 설치해 주어야 합니다. 파일 압축, 이미지 처리, 데이터베이스 연동 등을 담당하는 핵심 부품들입니다.

Nextcloud는 사용자의 설정, 파일 메타데이터, 게시판 정보 등을 저장하기 위해 데이터베이스가 필요합니다. 보안을 위해 root 계정을 직접 쓰지 않고, Nextcloud 전용 DB와 계정을 만들어 줍니다.
터미널에서 sudo mysql을 입력하여 MariaDB에 접속한 뒤 아래 명령어들을 한 줄씩 입력합니다.
CREATE DATABASE nextcloud;
CREATE USER ‘nextclouduser’@’localhost’ IDENTIFIED BY ‘실제_사용할_비밀번호’;
GRANT ALL PRIVILEGES ON nextcloud.* TO ‘nextclouduser’@’localhost’;
FLUSH PRIVILEGES;
EXIT;

데이터베이스까지 준비되었다면, 이제 Nextcloud 공식 설치 파일을 서버에 다운로드하고 웹 서비스 경로로 배치합니다. 터미널에 아래 명령어들을 순서대로 입력합니다.
# 1. 최신 버전 다운로드 및 압축 해제 (임시 폴더 사용)
cd /tmp
wget https://download.nextcloud.com/server/releases/latest.zip
unzip latest.zip

앞선 명령어를 실행한 후, ls 명령어를 쳐보면 다운로드한 latest.zip 파일과 압축이 풀려 생성된 파란색 nextcloud 폴더를 확인할 수 있습니다.
폴더가 정상적으로 생성된 것을 확인했다면, mv 명령어를 통해 아파치 웹 서버의 기본 문서 경로인 /var/www/로 해당 폴더를 통째로 옮겨줍니다.
앞서 다운로드 및 압축 해제 명령어를 입력했다면, 위 캡처 화면처럼 진행이 됩니다.
- ls 명령어로 nextcloud 폴더가 잘 생성되었는지 확인합니다.
- mv 명령어를 사용해 폴더를 웹 서버 경로(/var/www/)로 이동시킵니다.
- chown 명령어로 폴더의 소유권을 www-data(우분투의 Apache 웹 서버 계정)로 변경합니다.

파일 준비가 모두 끝났으니, 아파치 웹 서버가 Nextcloud를 서비스할 수 있도록 전용 설정 파일을 만들어 줍니다. 터미널에 아래 명령어를 입력하여 nano 편집기를 엽니다.
sudo nano /etc/apache2/sites-available/nextcloud.conf
<VirtualHost *:80>
DocumentRoot /var/www/nextcloud/
ServerName localhost
<Directory /var/www/nextcloud/>
Require all granted
AllowOverride All
Options FollowSymLinks MultiViews
<IfModule mod_dav.c>
Dav off
</IfModule>

설정 파일 작성이 끝났다면, Nextcloud가 제대로 돌아가기 위해 필요한 아파치 모듈들을 켜주고 웹 서버를 재시작해야 합니다. 터미널에 아래 명령어들을 한 줄씩 입력합니다.
# 1. Nextcloud 필수 아파치 모듈 활성화
sudo a2enmod rewrite headers env dir mime
2. Nextcloud 사이트 설정 활성화
sudo a2ensite nextcloud.conf
3. 아파치 기본 사이트 비활성화 (충돌 방지)
sudo a2dissite 000-default.conf
4. 아파치 웹 서버 재시작하여 설정 적용
sudo systemctl restart apache2

터미널에서의 모든 인프라 셋팅이 끝났습니다! 이제 웹 브라우저를 열고 서버의 IP 주소(또는 http://localhost)로 접속해 봅니다.
여기서 관리자 계정과 데이터베이스를 연결해 줍니다.
- 상단의 ‘관리자 계정 생성’ 에는 앞으로 사용할 본인만의 아이디와 비밀번호를 입력합니다. (비밀번호는 영문/숫자/기호를 섞어 ‘강한 암호’가 뜨도록 설정하는 것을 권장합니다.)
- 하단의 ‘데이터베이스 구성’ 에는 앞선 단계에서 MariaDB에 만들었던 전용 계정 정보를 그대로 적어줍니다.
- 사용자: nextclouduser
- 암호: (DB 생성 시 지정한 비밀번호)
- 이름: nextcloud
모든 항목을 빈틈없이 채웠다면, 가장 아래에 있는 파란색 [설치 ->] 버튼을 클릭합니다. 시스템이 데이터베이스 테이블을 구성하느라 약 1~2분 정도의 로딩 시간이 소요될 수 있으니 여유롭게 기다려 주세요.

데이터베이스 연동 로딩이 끝나면 마지막으로 위 캡처와 같은 ‘추천되는 앱’ 설치 화면이 나타납니다.
Nextcloud의 진가는 단순한 파일 저장을 넘어, 이 확장 앱들을 통한 강력한 ‘협업’ 에 있습니다.
Nextcloud Office를 통한 실시간 문서 공동 편집, Talk를 통한 보안 메신저, 일정/연락처 동기화 기능이 모두 이 앱들을 통해 이루어집니다.
망설이지 말고 우측 하단의 [추천 앱 설치] 버튼을 눌러주세요! 앱 설치가 모두 끝나면 드디어 기다리고 기다리던 Nextcloud의 메인 대시보드 화면이 열리며 나만의 프라이빗 클라우드 구축이 완벽하게 끝납니다.

추천 앱 설치까지 모두 마치고 나면, 드디어 위 캡처와 같은 깔끔한 Nextcloud 메인 대시보드를 만나게 됩니다!
화면 상단 메뉴와 중앙 위젯을 보면 아시겠지만, 이제 이 서버는 단순한 ‘웹하드’가 아닙니다. 이곳에서 파일(Nextcloud Office)을 팀원들과 실시간으로 공동 편집하고, 사내망 전용 메신저(Talk)로 소통하며, 부서 일정을 캘린더로 공유하는 ‘우리 회사만의 완벽한 프라이빗 워크스페이스’가 구축된 것입니다.
