2026년 3월 20일 금요일

Ubuntu Server에 Nextcloud와 홈페이지 함께 구축하기

 

Ubuntu Server에 Nextcloud와 홈페이지 함께 구축하기

들어가며

클라우드 스토리지와 개인 홈페이지를 하나의 서버에서 운영하고 싶다면? Ubuntu Server에 Nextcloud와 웹사이트를 함께 설치하는 방법을 단계별로 알아보겠습니다.


0부: 테스트 환경

이 가이드는 다음 하드웨어에서 테스트되었습니다.

하드웨어 스펙

  • 모델: 2019 Apple MacBook Pro

  • CPU: Intel Core i5

  • 저장공간: 512GB SSD

  • OS: Ubuntu Server 24.04 LTS (또는 22.04 LTS)

💡 참고: MacBook Pro에 Ubuntu Server를 설치하면 조용하고 전력 효율이 좋은 홈 서버로 활용할 수 있습니다. 다만 WiFi 드라이버 등 일부 하드웨어는 추가 설정이 필요할 수 있습니다.

필요한 최소 사양

Nextcloud와 웹사이트를 함께 운영하기 위한 권장 사양:

  • CPU: 듀얼 코어 이상

  • RAM: 최소 2GB (4GB 이상 권장)

  • 저장공간: 최소 20GB (데이터 용량에 따라 추가)

  • 네트워크: 유선 또는 무선 연결


1부: 기본 환경 준비

시스템 업데이트

서버 설치 후 가장 먼저 할 일은 시스템 업데이트입니다.

sudo apt update
sudo apt upgrade -y

필수 패키지 설치

웹 서버 운영에 필요한 기본 패키지들을 설치합니다.

sudo apt install -y apache2 mariadb-server php php-mysql \
  php-gd php-curl php-zip php-xml php-mbstring php-intl \
  php-imagick php-bcmath php-gmp unzip wget

주요 패키지 설명:

  • apache2: 웹 서버

  • mariadb-server: 데이터베이스

  • php: PHP 런타임 및 Nextcloud 필수 모듈들


2부: 데이터베이스 설정

MariaDB 보안 설정

MariaDB를 처음 설치하면 보안 설정을 해야 합니다.

sudo mysql_secure_installation

설정 중 물어보는 질문들:

  • root 비밀번호 설정: Y (새 비밀번호 입력)

  • 익명 사용자 제거: Y

  • 원격 root 로그인 차단: Y

  • test 데이터베이스 제거: Y

  • 권한 테이블 재로드: Y

Nextcloud용 데이터베이스 생성

sudo mysql -u root -p

MariaDB 프롬프트에서 다음 명령어를 실행합니다:

CREATE DATABASE nextcloud;
CREATE USER 'nextclouduser'@'localhost' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextclouduser'@'localhost';
FLUSH PRIVILEGES;
EXIT;

💡 Tip: your_password 부분은 강력한 비밀번호로 변경하세요!


3부: Nextcloud 설치

Nextcloud 다운로드 및 압축 해제

cd /tmp
wget https://download.nextcloud.com/server/releases/latest.zip
sudo unzip latest.zip -d /var/www/html/

권한 설정

Apache가 Nextcloud 파일에 접근할 수 있도록 권한을 설정합니다.

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

Apache 설정 파일 생성

Nextcloud용 가상 호스트 설정을 만듭니다.

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

다음 내용을 입력합니다:

<VirtualHost *:80>
    ServerName your-domain.com
    DocumentRoot /var/www/html/nextcloud

    <Directory /var/www/html/nextcloud>
        Options +FollowSymlinks
        AllowOverride All
        Require all granted
    </Directory>

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

📝 참고: your-domain.com을 실제 도메인으로 변경하세요.

Apache 모듈 활성화 및 재시작

sudo a2ensite nextcloud.conf
sudo a2enmod rewrite headers env dir mime
sudo systemctl restart apache2

4부: Nextcloud 웹 설치 완료

브라우저에서 http://your-domain.com으로 접속하면 Nextcloud 설치 페이지가 나타납니다.

입력할 정보:

  1. 관리자 계정명과 비밀번호 생성

  2. 데이터 폴더: /var/www/html/nextcloud/data (기본값 사용)

  3. 데이터베이스 정보:

    • 데이터베이스 사용자: nextclouduser

    • 데이터베이스 비밀번호: 앞서 설정한 비밀번호

    • 데이터베이스 이름: nextcloud

    • 데이터베이스 호스트: localhost

설치 완료 버튼을 클릭하면 몇 분 후 Nextcloud가 실행됩니다!


5부: 홈페이지 추가하기

Nextcloud와 별도로 메인 홈페이지를 추가해봅시다.

기본 사이트 설정

sudo nano /etc/apache2/sites-available/000-default.conf

다음과 같이 수정합니다:

<VirtualHost *:80>
    ServerName xxx.xxx.xxx.xxx
    DocumentRoot /var/www/html/homepage

    <Directory /var/www/html/homepage>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>

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

홈페이지 디렉토리 생성 및 HTML 파일 작성

sudo mkdir -p /var/www/html/homepage
sudo nano /var/www/html/homepage/index.html

간단한 HTML 예제:

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>나의 홈페이지</title>
    <style>
        body {
            font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
            margin: 0;
            padding: 0;
            background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
            min-height: 100vh;
            display: flex;
            justify-content: center;
            align-items: center;
        }
        .container {
            background: white;
            padding: 3rem;
            border-radius: 15px;
            box-shadow: 0 10px 40px rgba(0,0,0,0.2);
            text-align: center;
            max-width: 600px;
        }
        h1 {
            color: #333;
            margin-bottom: 1rem;
        }
        p {
            color: #666;
            line-height: 1.6;
        }
        .links {
            margin-top: 2rem;
        }
        .links a {
            display: inline-block;
            margin: 0.5rem;
            padding: 0.75rem 1.5rem;
            background: #667eea;
            color: white;
            text-decoration: none;
            border-radius: 5px;
            transition: background 0.3s;
        }
        .links a:hover {
            background: #764ba2;
        }
    </style>
</head>
<body>
    <div class="container">
        <h1>🚀 나의 서버에 오신 것을 환영합니다!</h1>
        <p>이 서버는 Ubuntu Server에서 운영되고 있으며,<br>
           Nextcloud와 웹사이트를 함께 호스팅하고 있습니다.</p>
        <div class="links">
            <a href="/nextcloud">☁️ Nextcloud 접속</a>
            <a href="#">📧 연락하기</a>
        </div>
    </div>
</body>
</html>

권한 설정 및 Apache 재시작

sudo chown -R www-data:www-data /var/www/html/homepage
sudo chmod -R 755 /var/www/html/homepage
sudo systemctl restart apache2

6부: 접속 테스트

이제 다음과 같이 접속할 수 있습니다:

  • 메인 홈페이지: http://서버IP주소

  • Nextcloud: http://도메인주소 또는 http://서버IP주소/nextcloud


추가 팁

PHP 메모리 제한 늘리기

대용량 파일 업로드를 위해 PHP 설정을 조정합니다.

sudo nano /etc/php/8.1/apache2/php.ini

다음 항목들을 찾아 수정:

memory_limit = 512M
upload_max_filesize = 500M
post_max_size = 500M
max_execution_time = 300

⚠️ 주의: PHP 버전은 시스템에 따라 다를 수 있습니다. php -v로 확인하세요.

방화벽 설정

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable

SSL 인증서 설치 (Let's Encrypt)

무료 SSL 인증서로 보안을 강화할 수 있습니다.

sudo apt install certbot python3-certbot-apache
sudo certbot --apache -d your-domain.com

마무리

축하합니다! 🎉 이제 하나의 Ubuntu Server에서 Nextcloud와 개인 홈페이지를 동시에 운영할 수 있게 되었습니다.

이 구성의 장점:

  • 💰 비용 절감 (하나의 서버로 두 가지 서비스)

  • 🔒 데이터 소유권 확보

  • 🛠️ 높은 커스터마이징 자유도

  • 📚 시스템 관리 학습 기회

정기적인 백업과 업데이트를 잊지 마세요!


관련 글:

  • Nextcloud 최적화 가이드

  • Apache 성능 튜닝하기

  • 서버 보안 체크리스트


댓글 없음:

NextCloud 내부망 접속 문제 해결 가이드

 # NextCloud 내부망 접속 문제 해결 가이드 ## 문제 상황 - **증상**: 내부망에서 `http://192.168.55.90:9090/` 접속 불가 - **환경**:    - NextCloud: Docker 컨테이너로 실행   - 외부 도...